→ 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