[英]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()
函數中,我將調用level
的render()
方法,而該方法將渲染關卡並調用關卡中的對象的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.