看板 Flash 關於我們 聯絡資訊
※ 引述《KawasumiMai (魔物を討つ者)》之銘言: : 這次要問的是洛克人的動作樹 : 洛克人X中,有站,走,衝,跳,空衝,攀牆下滑,彈璧,撞天花板等動作
etrexetrex:如果你會增加動作樹的節點 應該考慮一下 state pattern 09/23 13:10
這個動作樹看起來跟 之前我與Etrex參加巴哈姆特遊戲設計大賽的作品有像 http://prj.gamer.com.tw/bcgc_vote/play_01.html 我的作法基本上就如同Etrex建議的一樣,是用類似State Pattern的作法 另外搭配Box2D來做碰撞偵測與模擬 不太一樣的是,我的state不是每一種input對應到一個method 而是在一個abstract method裡面偵測input 然後決定是否變換state 每一個class定義一種state 這是我的State部分的原始碼,你可以參考看看 http://bit.ly/aUQwxr base class為PlayerState class PlayerState.setState()為設定新state的method PlayerState.onTick()每一個frame都會被呼叫 按鍵偵測就是在這個method中執行 各state會依照不同input而有不同行為 我已經忘記當時的動作樹是怎麼設計的了(因為手稿不見啦...) 但是觀察各state偵測input而呼叫setState()的時機 把原本的動作樹重新畫出來應該不會很難 StandingState是一開始的state 剩下的state名稱也取得很白話了 有velocity字眼的code,就是跟Box2D模擬的物件速度有關係 變數名稱取得很明白了,應該是看看就知道在做什麼 至於有movie clip字眼的code可以忽略 那是跟控制角色view有關的code而已 理論上這種view的code應該要跟model分開 不過當時因為在趕工,所以不管那麼多了... -- CJ Cat = Croa'J Cat = Cockroach Cat = 西街凱特 = 蜚蠊貓 = 蟑螂貓 Blog http://cjcat.blogspot.com Gallery http://cjcat2266.deviantart.com ptt2 Board CJWorkshop - 阿多比閃光(Adobe Flash)研討區 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.168.21.249 ※ 編輯: cjcat2266 來自: 118.168.21.249 (09/25 03:05)
KawasumiMai:先感謝指教,有空我會多研究這篇 09/25 14:33
dsmwang:必推 09/25 22:32