對於愛好我正在做一個遊戲。遊戲中有一個追逐人類的怪物(吃豆子般的)。當吃豆子卡住時,可以吃人或做些動作;應該提出一個事件。這是因爲我的程序變得不合時宜,因爲所有的對象都必須知道彼此之間什麼內聚力不好。在這種情況下,我是否需要製作自定義事件?
有一個類似於對象的控件(稱爲遊戲),它應該響應事件;人爲移動,怪物移動,人爲食用,怪物卡住,並最終讓視圖知道發生了一些事情,因此重新繪製。還有一點重要,即觀點對演員的按鍵作出反應,並且這些事件應以某種方式(也與事件相關)到達人類。
有人可以幫我解決這個問題嗎?我在網上搜索了同樣的問題,但沒有遇到類似的問題。
在MVC中:控制器是否知道視圖?如果是這樣的話:整個程序是從控制器開始還是從視圖開始? (是什麼讓誰)
感謝關於MVC部分:-)這幫助了我,因爲我認識的一些人相信,控制器只會讓模型保持在一起,並且不知道視圖。 我在想像一個自定義事件,類GameEvent擴展了EventObject。用描述事件的ID(使用像GameEvent.EntityMoved,HumanEaten,SnapperStuck等常量)。 我唯一需要知道的是;如何捕捉像箭頭這樣的關鍵事件的視圖讓人知道他必須向上移動? – zondvloed 2011-12-21 20:43:31
你的想法是創建一個類GameEvent,並使用常量(如ENtityMoved等)引用每個事件是很好的。回到你的問題,你的觀點如何讓人知道可以通過這種方式實現。 ArrowUpEvent ---> Controller監聽事件併發送到查看---->查看生成另一個事件--->人類對象從視圖中接收事件。 – 2011-12-21 21:07:19
所以你建議我應該有另一個名爲MoveHuman的自定義事件(或者在GameEvent中使其成爲一個常量)並讓人類聽它?但是,並不是每個人都依賴於GameEvent類(例如,這是否會使凝聚力好)?感謝您的幫助和時間在這個問題btw! – zondvloed 2011-12-21 21:15:25