Posted on 2010-11-22 16:20
點點滴滴 閱讀(341)
評論(0) 編輯 收藏 引用 所屬分類:
08 游戲SDK
動作切換序列思路模擬:
人物的動作分為上半身,下半身動作
上半身動作:休閑、走路(向前、向后、向左、向右)、跑步(向前、向后、向左、向右)、準(zhǔn)備戰(zhàn)斗、跳(開始跳,跳循環(huán)、結(jié)束跳)
下半身動作:休閑、走路(向前、向后、向左、向右)、跑步(向前、向后、向左、向右)、準(zhǔn)備戰(zhàn)斗、跳(開始跳,跳循環(huán)、結(jié)束跳)
控制邏輯:

*******************************************************悲傷的分割線****************************************************************
隊列命令問題:
1.走路的時候隊列創(chuàng)建太頻繁,進(jìn)行解決(使用隊列池)
2.上面一個隊列執(zhí)行完畢后執(zhí)行下一個隊列。
3.隊列要能夠同時處理兩個命令,因為在運(yùn)動的時候是一個命令,戰(zhàn)斗的時候是另外一個命令。
4.初步?jīng)Q定使用兩個隊列,分別控制上半身和下班身動作。
第一種解決方案思路整理(走路+攻擊):
1.命令分類,外部根據(jù)命令往隊列里面插入命令
2.命令開始執(zhí)行,成員變量記住命令的參數(shù),并在渲染的每一幀執(zhí)行命令。
3.執(zhí)行的每一幀插值,處理命令
舉例:
1.往命令隊列中插入走路命令。 1
2.在每一幀中執(zhí)行走路命令,保存目標(biāo)位置和源位置,并進(jìn)行插值。
3.往命令隊列中插入準(zhǔn)備攻擊命令 2 有一幀不走動了。解決思路:執(zhí)行攻擊的時候也執(zhí)行走路插值。??有可能沒有問題,因為速度過快
4.開始執(zhí)行準(zhǔn)備攻擊命令
5.在每一幀中執(zhí)行準(zhǔn)備攻擊命令 3
6.往命令隊列中插入走路命令。
7.在每一幀中執(zhí)行走路命令,保存目標(biāo)位置和源位置,并進(jìn)行插值 4
想法:
1.上半身和下半身無任何影響(戰(zhàn)斗:如果下半身進(jìn)行休閑動作才改變,否則只改變動作。移動:如果上半身休閑才改變,否則不改變)
2.上半身動作影響下半身.(施法:直接修改上下半身動作為施法)
3.動作播放結(jié)束后處理為
隊列影響:
第二種情況直接用隊列一個一個處理。
第一種情況比較難處理(在處理戰(zhàn)斗時候,處理換動作命令,然后處理移動命令)
//StartAction分為全身和上半身。。。。。
動作分組:
休閑動作,不打斷動作,進(jìn)度條動作, 動作播放完畢。
不可行:因為只有一個隊列,所以執(zhí)行走路命令的時候不能處理戰(zhàn)斗的命令。 此方法拋棄。
*******************************************************希望的分割線****************************************************************
麻煩:
解決方案:
對外接口:外部參數(shù)不管上半身,下半身動作,根據(jù)命令類型分配到上半身和下半身隊列中去,控制上半身和下半身休閑,戰(zhàn)斗。//全身動作或者上半身動作。
1.分為上半身,下半身動作兩個命令隊列分別處理上半身和下半身動作。
舉例:
走路+戰(zhàn)斗:
1.命令隊列中插入走路命令
2.向上半身,下半身隊列中分發(fā)各分發(fā)一個走路命令。
3.會同時處理走路命令。
4.命令隊列中增加戰(zhàn)斗命令。
5.判斷下半身時候休閑,不是的話分發(fā)戰(zhàn)斗命令,向上半身隊列中分發(fā)戰(zhàn)斗命令。
6.處理上半身,下半身動畫播放過程中的處理。
注意:
1.上半身的動作和下半身一樣的時候。根據(jù)下半身的動作幀數(shù)控制。
2.分發(fā)器,根據(jù)不同的游戲有不同的分發(fā)原則。
*******************************************************希望的分割線****************************************************************