0

我正在创建一个使用 C# 模拟 Breakout Game 的程序。

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

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

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

有没有办法让所有这些组件在游戏中同时运行而不会完全丢失任何一个?

4

1 回答 1

0

在最简单的情况下,您需要更改方法以集中控制“布局”或“绘画”,大概是在计时器或类似设备上,并执行一次“清除”操作,然后重绘所有组件。换句话说,不要让每个组件都清除画布,它们应该只关心自己的渲染。

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

于 2014-11-13T16:50:06.310 回答