ヒットテストが登録されないという問題があります。オブジェクトの 2 つの配列、ladderlist と blocklist があります。メイン キャラクターの 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
mainchar がはしごにヒットするかどうかをループチェックせずに、ブロックリストでヒットテストをテストしました。MCmovespeed は、落下中に mainchar が横に移動できないようにするために使用する単なる変数です。どんな助けでも大歓迎です、ありがとう。