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

2014-05-27 3:23 am
我的想法是,三角型(me)隨著滑鼠指標走,按滑鼠鍵指彈(bullet)便會發射。當三角型(me)接觸到敵機(enemy),life便會減10分。當三角型(me)接觸到道具(tool),life便會加10分。
就像以下網頁的情況:
http://www.mycreativezone.herobo.com/finish3Q.html

我的問題是,如何把life固定在100分,當life到了100分,即使再接觸到道具(tool)也不會加分

究竟如何改寫以下程式碼?
http://www.mycreativezone.herobo.com/3Q.html

回答 (2)

2014-06-03 6:23 am
✔ 最佳答案
一、先修改 tool 的宣告,如下
https://tw.knowledge.yahoo.com/question/question?qid=1514052605911

二、在一開始、第一行加上這句
var life:int = 0;

三、修改 hitTest2 如下
function hitTest2(event:Event):void
{
var a:uint = 0;
var b:uint = 0;
var c:uint = 0;//■

var me:memc = null;
var enemy:enemymc = null;
var tool:toolmc = null;//■

for (a = 0; a < meArea.numChildren; a++)
{
me = meArea.getChildAt(a) as memc;

for (b = 0; b < enemyArea.numChildren; b++)
{
enemy = enemyArea.getChildAt(b) as enemymc;


if (enemy.hitTestObject(me))
{
//meArea.removeChild(me);
if(life-10>=0){life-=10;}//■減分
}
}
for (c = 0; c < toolArea.numChildren; c++)
{
tool = toolArea.getChildAt(c) as toolmc;//■

if (tool.hitTestObject(me))
{
if(life+10<=100){life+=10;}//■加分
}
}
}trace(life)//■
}
2014-05-30 2:57 am
sorry 因為最近忙無法細看程式碼
不過我的想法是,你的 life 碰到道具就會+10
所以裡面一定有 life += 10; 這行吧
前面加個 if 變成 if(life<90) { life += 10; } 這樣不行嗎?

2014-05-29 18:59:55 補充:
或者最後寫一行 if(life>100) life=100; 這樣也可以


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

檢視 Wayback Machine 備份