我正在创建一个程序,以模拟突破游戏使用C#。
我一直在学习如何为游戏创建砖块、桨和球的各种技术,但无法解决如何将它们添加到Visual中的一个图片框中。
我面临的主要问题是,例如,为了移动球,我必须使用以下代码清除“画布”:paper.Clear(Color.White); --它基本上将图片框清除为白色,以便新的坐标(例如,球的坐标)在画框中成为黎明,这就是我的问题开始的地方。
突破游戏中的每个组件(我已经练习过)都使用paper.Clear(Color.White);代码。这意味着,例如,如果我想移动桨,显示砖块,同时弹跳球,程序决定一次只做一个功能。如果我将paper.Clear(Color.White);从我的一个资产中删除,那么程序就不会以我想要的方式工作。
有没有办法让所有这些组件在游戏中同时运行,而不完全忽略其中的任何一个?
发布于 2014-11-13 16:50:06
最简单的是,您需要改变您的方法,使‘布局’或‘绘画’集中控制,大概是在一个计时器或类似的,并做一个单一的‘清除’操作,然后重新绘制您的所有组件。换句话说,不要让每个组件都清除画布,他们应该只关心自己的渲染。
以上是最简单的方法。除此之外,您可以采取一种方法,即只重绘已从一帧更改到另一帧的内容。这可以提高更优化的性能,特别是当游戏画布很大或有许多组件时。然而,它需要一个完全不同的,在某些方面更复杂的设计。您需要从先前的框架中确定对其进行“移动”或其他修改的矩形/矩形,只清除这些矩形,并要求那些完全或部分位于这些矩形中的组件重新绘制自己。
https://stackoverflow.com/questions/26913949
复制相似问题