簡體   English   中英

每個對象應該處理自己的渲染,還是應該由單獨的類處理所有渲染?

[英]Should each object handle its own rendering, or should a seperate class handle all rendering?

標題不是很清楚,但是我不知道該怎么寫。 因此,隨時建議一個新標題。

我目前正在使用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()函數中,我將調用levelrender()方法,而該方法將渲染關卡並調用關卡中的對象的render()函數。

Main.render()=> level.render()=>渲染級別

  => character.render() => render character => weapon.render() => render weapon => monsters.render() => render monsters 

等等等等。

這兩種方法中的哪一種是首選,為什么? 還是有第三種方法更可取?

“正確的” OO設計恕我直言將使域模型對象與渲染器分離。 橋和/或訪客模式可能在這里適用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM