2016-04-28 34 views
0

好的我需要幫助來弄清楚如何在特技人員與箍相撞時增加一個點,但是它會多次檢測到碰撞並增加5個點。感謝您的幫助。 這是我的代碼:做Flash命中測試對象as3

stop(); 

// Variables to increase money 

var totalmoney = 0; 

var moneygain:int = 1; 

var moneylimit:int = 100000; 


//on collision with hoop add 1 point to money 

addEventListener(Event.ENTER_FRAME, HoopCollision); 

function HoopCollision(event:Event):void 
{ 
    if(startstuntman.hitTestObject(starthoop)) 
    { 
    totalmoney += moneygain; 
    } 
    Total.text = totalmoney; 
    trace("HIT"); 
} 
+0

在第一次擊中時,我會設置一個標誌,不允許再次擊中x秒或毫秒的時間,然後重置該標誌的超時。如果該標記爲真,那麼您將測試命中&& – Ronnie

+0

另一種選擇是如果代碼允許,則在命中後移動startstuntman。 –

+0

你能澄清一下你有什麼困難嗎?如果所有你想要的是'totalmoney + = 5',你可以簡單地把'var moneygain:int = 1'改成'var moneygain:int = 5'。我一定誤解你的問題,相信這樣的事情可能是問題。 – Atriace

回答

0

最好的辦法是動態添加屬性通過增加

stop(); 

var totalmoney = 0; 

var moneygain:int = 1; 

var moneylimit:int = 100000; 

starthoop["hit"] = new Boolean(false); // *** initial is not hit by startstuntman *** 


addEventListener(Event.ENTER_FRAME, HoopCollision); 

function HoopCollision(event:Event):void 
{ 
    if(startstuntman.hitTestObject(starthoop) && starthoop.hit == false) // *** checking additional expression *** 
    { 
    totalmoney += moneygain; 
    starthoop.hit = true; // *** starthoop is now hit, so next time it checks, it wont increase totalmoney because of additional expression*** 
    } 
    Total.text = totalmoney; 
    trace("HIT"); 
} 

我希望這有助於,乾杯! 亞歷山大。

+0

感謝您的幫助,但我不知道代碼是否會被重複多次重複,但我需要每次重複我的代碼。如果我迷惑了你,我很抱歉,我會盡力詳細說明。我有這個代碼在重複自身的補間動畫上工作,我想要它做的是,當補間動畫與箍碰撞時,我希望它每次穿過箍時都能檢測到碰撞。雖然此代碼很有用,但不會每次都重複該代碼。如果它有助於我的代碼到第32幀。謝謝。 – User35