标题不是很清楚,但我不知道如何制定它。所以随时建议一个新的标题。
我目前正在使用Slick2D库在Java中制作游戏。首先,我正在处理主类的render()
函数中的所有渲染。但即使只有几个物体,我发现它变得非常混乱。
简短的示例,虽然原始代码有更多要渲染:
g.setBackground(Color.darkGray);
g.setColor(Color.black);
g.fillRect(0, 0, gc.getScreenWidth(), 128); //draw top UI
g.fillRect(0, 128, gc.getScreenWidth(), 512, sky, 8, 512); //draw background
g.fillRect(0, 720 - 128, gc.getScreenWidth(), 128, ground, 128, 128); //draw ground
g.drawImage(charSprite, charX, charY); //draw character
g.drawImage(weaponSprite, weaponX, weaponY); //draw weapon
for (firedArrows arrow : Arrow) {
g.drawImage(arrowSprite, arrow.getPosX(), arrow.getPosY) //draw all arrows
}
所以,我现在已经切换到让每个对象呈现自己。
在主render()
函数中,我将调用render()
的{{1}}方法,该方法将呈现关卡并调用关卡中对象的level
函数。
Main.render()=> level.render()=>渲染级别
render()
依旧等等。
这两种方法中哪一种更受欢迎,为什么? 或者是否可能有第三种方法?
答案 0 :(得分:0)
“正确”OO设计恕我直言将域模型对象与渲染器分离。 Bridge和/或Visitor模式可能适用于此处。