Actionscript 3 ActionScript 3-hitTestObject错误

Actionscript 3 ActionScript 3-hitTestObject错误,actionscript-3,flash,game-physics,Actionscript 3,Flash,Game Physics,起初,当我运行这部电影时,我认为hitTestObject完全不起作用。然而,当我稍加修改时,我发现只有当电影开始播放时,播放器(mcMain)碰壁时,代码才起作用 我希望“是”可以在玩家每次触摸墙壁时进行跟踪,但如果玩家从一开始就没有触摸墙壁,那么进入墙壁将不会产生任何效果 有人请帮忙 源代码(hitTestObject方法调用位于最底部。) //主要人物是否在跳跃 var:Boolean=false; //跳转应该多快开始 var jumpSpeedLimit:int=15; //跳跃的当前

起初,当我运行这部电影时,我认为hitTestObject完全不起作用。然而,当我稍加修改时,我发现只有当电影开始播放时,播放器(mcMain)碰壁时,代码才起作用

我希望“是”可以在玩家每次触摸墙壁时进行跟踪,但如果玩家从一开始就没有触摸墙壁,那么进入墙壁将不会产生任何效果

有人请帮忙

源代码(hitTestObject方法调用位于最底部。)

//主要人物是否在跳跃
var:Boolean=false;
//跳转应该多快开始
var jumpSpeedLimit:int=15;
//跳跃的当前速度;
var jumpSpeed:数字=jumpSpeedLimit;
//跳跃函数
函数mainJump():void{
//如果main还没有跳转
如果(!main跳跃){
//然后开始跳
main=true;
jumpSpeed=jumpSpeedLimit*-1;
mcMain.y+=跳跃速度;
}否则{
//如果已经在空中,继续跳跃
//疯狂的数学,我不会解释
如果(跳跃速度<0){
jumpSpeed*=1-jumpSpeedLimit/75;
如果(jumpSpeed>-jumpSpeedLimit/5){
跳跃速度*=-1;
}
}

如果(jumpSpeed>0&&jumpSpeed出现在您发布的代码中,则您的hitTest代码似乎不在任何类型的函数中。它可能应该出现在玩家每次移动时都会检查的函数中。例如:

function checkHitWall():void{
    if(mcMain.hitTestObject(wall1)){
        trace("yes");
    }
}
.....
function moveChar(event:Event):void{
    //if certain keys are down then move the character
    if(leftKeyDown){
        mcMain.x -= mainSpeed;
    }
    if(rightKeyDown){
        mcMain.x += mainSpeed;
    }
    if(upKeyDown || mainJumping){
        mainJump();
    }
    checkHitWall();
}
function checkHitWall():void{
    if(mcMain.hitTestObject(wall1)){
        trace("yes");
    }
}
.....
function moveChar(event:Event):void{
    //if certain keys are down then move the character
    if(leftKeyDown){
        mcMain.x -= mainSpeed;
    }
    if(rightKeyDown){
        mcMain.x += mainSpeed;
    }
    if(upKeyDown || mainJumping){
        mainJump();
    }
    checkHitWall();
}