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

时间:2014-11-13 16:42:59

标签: c# graphics visual-studio-2013 picturebox breakout

我正在使用C#创建一个模拟突破游戏的程序。

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

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

Breakout游戏中的每个组件(我已经实践过)都使用paper.Clear(Color.White);代码。这意味着如果我想移动球拍,显示砖块并同时反弹球,程序就决定一次做一个功能。如果我从我的某个资产中删除paper.Clear(Color.White);,那么该程序将无法以我想要的方式运行。

是否有办法让所有这些组件在游戏中同时运行而不会完全错过任何组件?

1 个答案:

答案 0 :(得分:0)

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

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