我正在开发Java中的一个公平的大小医院模拟游戏。 现在,我的疼痛的方法开始看起来有点大,我需要一种方法来把它分解成不同的部分... 我有一个想法,但我不知道这是最好的方式。 它首先画草,然后住院大楼,那么任何建筑物,那么多人,那么任何建筑物预览建设时。草和医院的建设将不会改变,所以我只需要一次绘制此。建筑物本身不会改变,很多时候,只有当新的内置

我想,使用布尔值来确定哪些部分需要重画? 理想的,ID希望能够分裂paint方法,然后调用每一个需要的时候,但我不能确定如何物理分裂它。

我还是很新的Java和学习在旅途中。

预先感谢。

相对

有帮助吗?

解决方案

另一个想法是创建一个超类或接口必须在屏幕上绘制的所有项目。让cvall该类ScreenObject。然后可以有平局(Graphics2D的克)在ScreenObject类指定的方法。接着,必须绘制的每个对象实现draw()方法和只关心绘图本身。你甚至可以考虑创建确定是否这场平局方法应该是在所有运行的变量。

在该油漆的屏幕中,可以具有在一个ArrayList所有ScreenObjects基准和您的油漆主类()方法将只是遍历这个呼叫平局()的每个对象上。

其他提示

我是从你的描述,你的场景分成砖假设。保持布尔数组是要跟踪哪些瓷砖需要在下次更新时重绘的好方法。一个LinkedList可能在某些情况下表现得更好一点。 (我想生活模拟的游戏,其中有吨瓷砖重绘的,你需要检查每一个邻居,所以你可能不需要走这条路线。)

没有看到你的代码,我不能分裂你的paint方法给出非常具体的建议。我可以告诉你,在精灵动画,每个精灵对象通常都有自己的抽签方法,它主要Graphics对象(或者更可能的缓冲区)作为参数。由于精灵应该知道自己的形象和位置,它就可以自己绘制到主图像。你的绘制方法可以再通过你们需要重画,并呼吁他们的抽签方法。精灵列表循环

您可能看的杀手游戏编程在Java中获得更详细的信息。

好吧,我不是真正的编程,但分裂我的paint方法我总是刚做,需要一个图形对象,然后调用,从油漆,它一直帮助我保持我的代码组织的,但我有一个新的方法专家从来没有一个大项目就像它听起来你工作,因此可能不适合您的情况的工作。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top