第一次小弟用String(字串物件)作漂浮數字,也就是把減少HP的數字變成字串的方法。其實這個方法是成功的,可是因為String只能套用一種顏色,沒有黑框或是漸層的顏色變化,也沒有Alternative Number可以用,不能作String的淡入淡出效果或是其他功能,所以結果就跟上圖看到的數字一樣醜,而且飄上去後就突然消失了,破壞遊戲美感,所以就不採用了。
第二次小弟用Active(動態物件)作漂浮數字。Active有Alternative Number、Alternative Flag等變數可以儲存數字跟開關,小弟都是用這個物件作人物跟面版等東西的。所以小弟的作法是用其中兩個Alternative Number,第一個存減少HP的數字,第二個存淡出、上升的時間數。接著是換位,看第一AltNum是否超過10,超過10就創造下一個Active,把原本Active的第一AltNum的個位數字留下(剩一位數),下一個Active的第一AltNum去掉個位,剩十位以上的數字。然後再檢查這個Active的第一AltNum是否超過10,繼續製造百、千、萬位的位數。最後再用第一AltNum判定應該顯示什麼數字(若AltNum=8則顯示"8"的圖格,依此類推)就大功告成了。但是這種作法有兩個缺點,第一個是有可能超過遊戲執行時同幅物件的上限(例如每個敵人有百位的傷害,那多擊的情況下就會需要創造上百個Active),第二個缺點如上圖,就是如果有超過兩個以上同樣的Active同時被創造,它存數字的那個步驟會影響所有相同的Active,換位也會跟著一起影響,所以多擊時,敵人頭上全部都會冒出一樣的數字。雖然淡入淡出很漂亮,可是最後也被迫放棄。
第三次小弟用Counter(計數物件)作漂浮數字。跟String很像,只要把減少HP的數字存到裡面去就好了,不會有互相影響的問題,也可以改變0~9+-.e等數字圖案。Counter的上升跟消除跟String一樣用內建的速度來解決。但是Counter也跟String一樣,沒有Alternative Number,沒辦法淡入淡出,那該怎麼辦呢?所以小弟就用偷吃步。Counter有Current/Max/min Number這三種,Current Number已經用去存減少HP了,小弟就拿Max Number來存淡入淡出要
用的變數(不過起點是從10000開始,之後持續加一)。因為減少的HP不會超過9999(主角HP上限9999,就算被一擊必殺也不會發現漂浮數字有誤),所以應該不會破功。如上圖(多擊時),終於成功了~\(╯▽╰)/
用的變數(不過起點是從10000開始,之後持續加一)。因為減少的HP不會超過9999(主角HP上限9999,就算被一擊必殺也不會發現漂浮數字有誤),所以應該不會破功。如上圖(多擊時),終於成功了~\(╯▽╰)/
這個寫法真的是偷吃步.... 若有更好的寫法,也請您不吝賜教~為了讓有使用MMF2使用者更瞭解怎麼編寫,小弟稍微作了個範例(MMF2.0 Build R247),連結如下--
果然,有了減少HP的漂浮數字,遊戲爽度又增加了<( ̄▽ ̄)>
1 則留言:
其實要乘么做出淡入淡出的效果?
持續加一 是什么意思?
能給個範例來看嗎?
版主回覆:(03/21/2009 08:51:50 AM)
好的,小弟稍微作了個範例。(MMF2.0 Build R247)
原始檔跟應用程式檔都有附在裡面:
http://www.badongo.com/file/13983589
ftp://c5g4f4c4up2k.no-ip.org/CounterFade.rar
不過這個真的是偷吃步....
有更好的寫法,也請您不吝賜教~
張貼留言