单个图片框中的多个突出对象



我正在创建一个程序,该程序使用C#模拟突围游戏。

我一直在学习如何为游戏创建砖块、球拍和球的各种技术,但无法在Visual Studio中将它们全部添加到一个图片框中。

我面临的主要问题是,例如,为了移动球,我必须使用以下代码部分来清除"画布":paper.Clear(Color.White);这基本上将图片框清除为白色,以便在图片框内显示新坐标(例如球的坐标),这就是我的问题开始的地方。

突破游戏中的每个组件(我已经练习过)都使用paper.Clear(Color.White);代码。这意味着,例如,如果我想同时移动球拍、显示砖块和反弹球,程序只会决定一次执行一个功能。如果我从我的一个资产中删除paper.Clear(Color.White);,那么程序就不会按我希望的方式运行。

有没有一种方法可以让所有这些组件在游戏中同时运行,而不会完全错过其中的任何一个?

最简单的方法是,你需要改变你的方法,让"布局"或"绘画"受到集中控制,大概是在计时器或类似设备上,然后进行一次"清除"操作,然后重新绘制所有组件。换句话说,不要让每个组件都清除画布,它们应该只关心自己的渲染。

以上是最简单的方法。除此之外,你还可以采取一种方法,只重新绘制从一帧到另一帧的变化。这可以实现更优化的性能,尤其是当你的游戏画布很大或有很多组件时。然而,它需要一个完全不同的,在某些方面更复杂的设计。您需要确定上一帧中对其进行了"移动"或其他修改的矩形,只清除这些矩形,并要求完全或部分位于这些矩形中的组件重新绘制它们自己。

相关内容

  • 没有找到相关文章

最新更新