如何在java中拆分paint swing方法?
我正在用java开发一个相当大的医院模拟游戏。 现在,我的止痛方法看起来有点大了,我需要一种方法把它分成不同的部分。。。 我有个主意,但我不确定这是不是最好的办法。 它首先画草地,然后是医院大楼,然后是任何建筑物,然后是人,然后是任何建筑物在建筑时预览。草和医院大楼不会改变,所以我只需要画一次。建筑本身不会经常改变,只有在新建筑建成后才会改变 我在想,使用布尔值来确定哪些部分需要重新绘制? 理想的情况下,我希望能够拆分绘制方法,然后在需要时调用每个方法,但我不确定如何实际拆分它 我对java还是一个新手,正在不断学习 提前谢谢如何在java中拆分paint swing方法?,java,swing,paint,repaint,Java,Swing,Paint,Repaint,我正在用java开发一个相当大的医院模拟游戏。 现在,我的止痛方法看起来有点大了,我需要一种方法把它分成不同的部分。。。 我有个主意,但我不确定这是不是最好的办法。 它首先画草地,然后是医院大楼,然后是任何建筑物,然后是人,然后是任何建筑物在建筑时预览。草和医院大楼不会改变,所以我只需要画一次。建筑本身不会经常改变,只有在新建筑建成后才会改变 我在想,使用布尔值来确定哪些部分需要重新绘制? 理想的情况下,我希望能够拆分绘制方法,然后在需要时调用每个方法,但我不确定如何实际拆分它 我对java还是
Rel根据您的描述,我假设您的场景被分割为平铺。保持布尔数组是跟踪下一次更新时需要重新绘制哪些图块的好方法。在某些情况下,LinkedList的性能可能会稍好一些。(我正在考虑一个模拟生活的游戏,其中有大量的瓷砖需要重新绘制,您需要检查每个邻居,因此您可能不需要走这条路线。) 如果没有看到您的代码,我就无法给出关于拆分绘制方法的非常具体的建议。我可以告诉您,在精灵动画中,每个精灵对象通常都有自己的绘制方法,该方法将主图形对象(或者更可能是缓冲区)作为参数。因为精灵应该知道自己的图像和位置,所以它可以将自己绘制到主图像中。然后,您的绘制方法可以在需要重画的精灵列表中循环,并调用它们的绘制方法
您可以查看以获得更详细的信息。根据您的描述,我假设您的场景已拆分为平铺。保持布尔数组是跟踪下一次更新时需要重新绘制哪些图块的好方法。在某些情况下,LinkedList的性能可能会稍好一些。(我正在考虑一个模拟生活的游戏,其中有大量的瓷砖需要重新绘制,您需要检查每个邻居,因此您可能不需要走这条路线。) 如果没有看到您的代码,我就无法给出关于拆分绘制方法的非常具体的建议。我可以告诉您,在精灵动画中,每个精灵对象通常都有自己的绘制方法,该方法将主图形对象(或者更可能是缓冲区)作为参数。因为精灵应该知道自己的图像和位置,所以它可以将自己绘制到主图像中。然后,您的绘制方法可以在需要重画的精灵列表中循环,并调用它们的绘制方法
你可能会寻找更详细的信息。我不是一个真正的编程专家,但要分解我的绘画方法,我总是会创建一个新方法,它从绘画中获取图形对象并调用它,它一直帮助我保持代码的条理性,但我从未有过一个听起来像你在做的那样大的项目,因此它可能不适合你的情况。我不是真正的编程专家,但要分解我的绘画方法,我总是制作一个新方法,它采用一个图形对象,并从绘画中调用它,它一直帮助我保持代码的条理性,但我从未有过一个听起来像您正在处理的大型项目,因此它可能不适合您的情况。另一个想法是为必须在屏幕上绘制的所有项目创建一个超类或接口。允许cvall此类ScreenObject。然后可以在ScreenObject类中指定draw(Graphics2d g)方法。接下来,必须绘制的每个对象都实现draw()方法,并且只关心绘制本身。您甚至可以考虑创建一个变量,以确定该绘图方法是否应该运行。
在绘制屏幕的主类中,您可以引用ArrayList中的所有ScreenObject,并且您的paint()方法只需在每个对象上迭代调用draw()。另一个想法是为必须在屏幕上绘制的所有项目创建一个超类或接口。允许cvall此类ScreenObject。然后可以在ScreenObject类中指定draw(Graphics2d g)方法。接下来,必须绘制的每个对象都实现draw()方法,并且只关心绘制本身。您甚至可以考虑创建一个变量,以确定该绘图方法是否应该运行。
在绘制屏幕的主类中,您可以引用ArrayList中的所有ScreenObject,您的paint()方法只需在每个对象上迭代调用draw()。我本来打算这么做的,但我忘了!你的假设是正确的。每个精灵对象都应该有自己的绘制方法。我还不确定如何使用精灵和动画,我只是在努力获得游戏的基本知识,简单的摆动图形和简单的运动动画。这本书看起来棒极了,谢谢!:)就这样。我本来打算这么做的,但我忘了!你的假设是正确的。每个精灵对象都应该有自己的绘制方法。我还不确定如何使用精灵和动画,我只是在努力获得游戏的基本知识,简单的摆动图形和简单的运动动画。这本书看起来棒极了,谢谢!:)啊,讽刺的是,在医院应用止痛法。(对不起,我无法抗拒!)啊,在医院应用止痛法的讽刺。(对不起,无法抗拒!)