每个对象应该处理自己的渲染,还是应该单独的类处理所有渲染?

时间:2013-04-18 21:08:06

标签: java oop rendering slick2d

标题不是很清楚,但我不知道如何制定它。所以随时建议一个新的标题。

我目前正在使用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()

依旧等等。

这两种方法中哪一种更受欢迎,为什么? 或者是否可能有第三种方法?

1 个答案:

答案 0 :(得分:0)

“正确”OO设计恕我直言将域模型对象与渲染器分离。 Bridge和/或Visitor模式可能适用于此处。