[英]AS3.0 Hittest not registering
我遇到未注冊的hittest問題。 我有兩個對象數組,梯形列表和塊列表。 我正在檢查我的主角mainchar是否使用嵌套循環命中了enterframe事件上的任何對象。 我有一個布爾變量MCFall,如果它碰到任何一個對象,則應該更改。 如果MCFall為false,即mainchar碰到梯子或塊,則循環將中斷。 我目前遇到的問題是我的代碼無法檢測到mainchar是否達到目標。 相關代碼如下。
addEventListener(Event.ENTER_FRAME, fl_EnterFrameHandler);
function fl_EnterFrameHandler(event:Event):void{
//check if touching ANY ground
blockCheckLoop: for (var i: int=0; i<=blocklist.length; i++){
if (blocklist[i].target.hitTestObject(mainchar.target)){
MCFall = false;
MCmovespeed = 4;
}//endif
else{
ladderCheckLoop: for (var j: int=0; j<=ladderlist.length;j++){
if (ladderlist[j].target.hitTestObject(mainchar.target)){
MCFall = false;
MCmovespeed = 4;
}//endif
else{
MCFall = true;
MCmovespeed = 0;
}//endelseif
if(MCFall == false) break ladderCheckLoop;
}//endforj*/
}//endelseif
if(MCFall == false) break blockCheckLoop;
}//endfori
}//endenterframe
我已經用blocklist測試了hittest,而沒有循環檢查mainchar是否達到要求,這是可行的。 MCmovespeed只是我使用的一個變量,因此mainchar在跌落時不能側向移動。 任何幫助,將不勝感激,謝謝。
您最好使用以下代碼:
for(var b:int = 0; b
var currentBlockList:blockList_class = new blocklistArray[b];
for(var m:int = 0; m
var currentMainChar:mainChar_class = new maincharArray[m];
if(currentBlockList.target).hitTestObject(currentMainChar.target)){
trace("hit");
}
}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.