2010-03-11 67 views
0

我有一堆as3遊戲。 在我的遊戲中,當newCrag點擊egg_mc時,分數被添加。as3跟蹤變量數值

// Add the score 
var newScore:score_mc; 
newScore = new score_mc(); 
addChild(newScore); 
newScore.x = 20; 
newScore.y = 20; 
newScore.score_txt.text='0/15'; 
var score:Number=0; 

function getEggs(event:Event):void { 

    if(event.target.hitTestObject(MovieClip(root).newCrag) && event.target is egg_mc) { 

     sndEgg.play(); 

     if(event.target.stage) { 
      event.target.parent.removeChild(event.target); 
     } 

     // Increase score 
     score++; 
     newScore.score_txt.text = "" + score + '/15'; 

    } 

} 

我想用if語句引用分數的數值。我需要根據分數框內的數字來改變速度變量。

var speed:Number 

if(score > 10 || score == 10) { 
    speed=20; 
    trace("speed3"); 
} else if(score > 5 || score == 5 && score < 10) { 
    speed=18; 
    trace("speed2"); 
} else { 
    speed=14; 
    trace("speed1"); 
} 

但是,這部分代碼無法正常工作。任何幫助將非常感激。

感謝,

韋德

+0

在同一範圍內得分定義作爲您發佈的第二個代碼塊?我有一段時間沒有與as3一起工作 – Warty 2010-03-11 06:25:00

+0

雅,所有在根時間軸,相同的框架,而不是在一個函數內。 – 2010-03-11 06:32:06

+0

你的分數檢查是如何執行的?如果它全部在一個框架上,它將只運行一次(第一次)或者如果它是'輸入框架',它將每次迭代將分數重置爲0。 – Les 2010-03-11 07:52:17

回答

0

試試這個:

var speed:Number; //you missed a semicolon here 
if (score>=10) { 
    speed=20; 
    trace("speed3"); 
} else if (score>=5) {//no need to test twice for <10 
    speed=18; 
    trace("speed2"); 
} else { 
    speed=14; 
    trace("speed1"); 
} 

或(利息只),全部在一行:

speed = (score>=10)?20:((score>=5)?18:14);// no points for readability!