首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >平台游戏人物直接登顶

平台游戏人物直接登顶
EN

Stack Overflow用户
提问于 2014-09-06 10:55:55
回答 1查看 55关注 0票数 0

正如我问题的标题所暗示的,我正在构建一个2d平台游戏。我有我的代码设置,以便当字符击中地面重力停止拉字符。现在,虽然这将防止角色从地面坠落,但这并不能阻止角色完全站在平台的顶端。因为我尝试使用这个解决方案:

代码语言:javascript
运行
AI代码解释
复制
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;
        }
    }
}

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-06 14:45:33

若要输入for循环,此条件必须为真:

代码语言:javascript
运行
AI代码解释
复制
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个像素。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25703680

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档