我用actionscript3.0了遊戲,遇到問題1

2014-05-27 3:15 am
我的想法是,三角型(me)隨著滑鼠指標走,按滑鼠鍵指彈(bullet)便會發射,當射中敵機(enemy),敵機(enemy)會變成道具(tool)落下。

第一次射中敵機(enemy)後,道具(tool)還會以正常速度落下。但為什麼第二次射中敵機(enemy)後,道具(tool)還會以高速落下,而且先前所射下的道具會消失不見?
就像以下網頁的情況:
http://www.mycreativezone.herobo.com/finish3Q.html

究竟個程式碼出了什麼問題?
http://www.mycreativezone.herobo.com/3Q.html

回答 (1)

2014-06-02 7:33 am
✔ 最佳答案
那是因為第二行這句,寫錯位置了
var tool:toolmc=new toolmc();
意思是:每次碰撞「全部只有一個共用的tool」在表演、接收指令。
註:因為整個過程只宣告一次,只會產生一個 tool,每次碰撞產生的
  新指令,都會加在它身上。
  一旦有新的碰撞產生,它就會移去新的碰撞位置,於是舊的tool
  就好像不見了。而且「移動位置」的指令逐次增加,就會讓它愈
  跑愈快了。

如果將上面這句刪除,改寫到103行,就沒問題了
if(bullet.hitTestObject(enemy))
{
enemyArea.removeChild(enemy);
bulletArea.removeChild(bullet);
var tool:toolmc = new toolmc();  //改寫到這裡,第103行
tool.x=enemy.x+25;
tool.y=enemy.y-100;
.......
意思是:每次碰撞「各有一個獨立的tool」在表演、接收指令。
註:因為改寫後,每次碰撞就會宣告 var tool:toolmc = new toolmc();
  產生一個獨立的 tool


收錄日期: 2021-05-01 19:11:00
原文連結 [永久失效]:
https://hk.answers.yahoo.com/question/index?qid=20140526000015KK05911

檢視 Wayback Machine 備份