平台游戏角色直接降落在顶部



正如我问题的标题所暗示的,我正在构建一个2d平台游戏。我已经设置了我的代码,这样当角色撞到地面时,重力就会停止拉动角色。现在,尽管这可以防止角色从地上掉下来,但这并不能阻止角色完全站在平台的顶部。在那里,我尝试使用这个解决方案:

if(ground.hitTestPoint(left_foot_point.x,left_foot_point.y,true)||ground.hitTestPoint(right_foot_point.x,right_foot_point.y,true)){
    Loop: for(var i:int=0;i<1000;i++){
        if(ground.hitTestPoint(left_foot_point.x,left_foot_point.y,true)||ground.hitTestPoint(right_foot_point.x,right_foot_point.y,true)){
            char.y-=1;
        }else{
            char.y+=1;
            break Loop;
        }
    }
}

这个代码的目标是把角色从地上拉出来,然后把他放下来,这样他就几乎没有碰到地面。不幸的是,这段代码不起作用,导致角色飞向天空。当角色不再接触地面时,代码似乎拒绝承认。有人知道我在这里做错了什么吗?

要进入for循环,此条件必须为true:

ground.hitTestPoint(left_foot_point.x,left_foot_point.y,true) || 
ground.hitTestPoint(right_foot_point.x,right_foot_point.y,true)

在for循环中,只有当相同的条件不成立时,才会中断。正如以前的情况一样,我们不会在任何地方修改left_foot_pointright_foot_pointground,在整个循环中都是如此。因此,循环将运行所有1000次迭代,每次角色将向上移动1000个像素。

最新更新