我该如何实现多个动态图像

时间:2014-07-03 23:24:43

标签: c# winforms graphics

由于我的另一个问题困扰了人们,他们无法修复我的错误。我正在改写它,以便我问我应该如何实现这一点。我是C#和图形的新手,我的Java和C / C ++背景严重偏向于我对C#的学习。

我现在有7个对象,当程序执行时,这7个对象可以增加到数百个。他们需要能够绘制相关图像,并根据鼠标输入移动图像。因此,如果鼠标左键单击其中一个鼠标,则会开始跟随鼠标。

我的旧实现试图使用图片框,我会将事件处理程序添加到图片框和图片框到我的表单。但由于某些原因,只有一个事件处理程序被调用。如果你使用这个实现,请包括一个代码示例,因为我已经尝试了所有我能想到的...

Only one Paint event is being called

是我的另一个问题,我试图让人们修复这个错误。我这是在问这个问题,因为我对自己如何做到这一点没有想法。

1 个答案:

答案 0 :(得分:1)

我建议使用单个屏幕控制并覆盖它的绘图功能。 (http://msdn.microsoft.com/en-us/library/b818z6z6(v=vs.71).aspx

在绘图功能中,您可以绘制所有游戏对象。

上次我做了这样的事情,它在一台普通的机器上没有太多麻烦就可以扩展到几千张图像。

这种方法的一个缺点是,您需要编写代码以便自己将鼠标点击与游戏对象相匹配。

如果您发现自己超出了这种方法的限制,那么现在是时候转向上述建议之一,如XNA,SharpDX Toolkit,DirectX等。

哦,你之所以收到一个绘画请求的原因可能是因为Windows没有意识到你想要重新绘制你的控件。为了让Windows知道,我建议创建一个每秒触发约30次并在控件上调用Invalidate()方法的计时器