從開始做flash到現在,這中間發生過很多次非常愚蠢的錯誤,為了避免一直被同一顆石頭絆倒,蜻蜓寫指令時是越來越小心,不過到最後還是犯了一個愚蠢的錯誤。
來說說上面的程式碼大概是在做甚麼,基本上只是很簡單的移動指令罷了(另外還有一些牆壁的偵測指令)。
做flash要製作一面牆壁最簡單的方式就是"碰到牆後會將玩家往反方向推移",例如:
玩家移動是(假設玩家元件名稱是pla_mc)
_root.pla_mc._x+=8
那碰到牆壁後只要有這樣的指令就可以了
_root.pla_mc._x-=8
雖然說用8就可以達到效果,但為了以防外一通常還是會用較大的數字像是9或10,不過這樣測試會發現雖然目的達成不過很不精美(嚴重的"彈跳",蜻蜓只能想到這種詞形容.......)
這樣看來還是得用一樣的"反推"速度來做了,當然角色從頭到尾速度都一樣沒有甚麼,如果是速度變來變去呢?
蜻蜓想了一下才想到一個很簡單的解決方法,由於角色移動速度在不同的動作有不同的移動速度,所以蜻蜓直接在元件裡造了一個變數來偵測角色的移動情形(就是上圖中的變數"_parent.ase.speed"),到時後碰到牆壁時只要牆壁去讀取"_parent.ase.speed"這個變數就好了(當然應該用_root來寫,不過這只是說明就不用太講究了)
恩 蜻蜓時記測試過幾次,目前都還沒有甚麼嚴重的問題,不過之後稍微遊覽了一下程式碼時發現了一個愚蠢的錯誤,雖然這不影響實際運作但卻讓程式碼看起來很亂。
問題出在這:
上頭有一段指令
}else if(Key.isDown(Key.LEFT)){
_parent.ase.speed = 7
_root.pla_mc._x-=_parent.ase.speed
在還沒改造前是這樣
}else if(Key.isDown(Key.LEFT)){
_root.pla_mc._x-=7
恩 問題就是:既然_parent.ase.speed只是用來表示角色的移動情形,那"_root.pla_mc._x-=7"這一段根本不用動阿!!!!!
虧蜻蜓還很認真的把所有數字都改成了變數"_parent.ase.speed",浪費蜻蜓一堆時間.........
愚蠢的錯誤就到這,雖然這次不嚴重但蜻蜓希望不要再犯。話說最近好像常常分心呢,早上去台北市要去買一隻葉精靈布偶,結果要去的捷運站是公館,蜻蜓卻在前兩站古亭就下車,腦中還在想"阿 古亭到了,我要在這站下車",然後找了好半天找不到商店........
為什麼會一直分心阿? 真讓人不懂........
留言列表