动作脚本3.人物跳过天花板。如何添加碰撞?

时间:2013-09-16 12:35:29

标签: actionscript-3 flash collision-detection flash-cs6

我正在制作简单的Flash游戏。现在我正在编码角色的控制权。我添加了与地面和角色的角色碰撞。墙壁,但不能成功地添加与天花板的碰撞,字符跳过天花板。请问你能帮帮我吗?谢谢。

这是代码的一部分,我尝试过:

      if(space){
                            if(myCollisionsList.checkCollisions().length > 0) {
                                if (hitTestPoint(hero.x + 28, hero.y, true)){
/////////////////////////////////////////////////////////////////////////////////////
                            //here I need to add any code for character's collision with the ceiling.
/////////////////////////////////////////////////////////////////////////////////////

Hero.y_speed = 0; //这对我没有帮助

                        }else{
                            Hero.y_speed = -jumpspeed;
   }

我创建了myCollisionsList,我保留了所有阶段,墙壁与角色碰撞。当角色向右或向左移动时,此方法适用于碰撞,因为我只是在碰到墙壁时将角色的x_speed设置为“0”。但是当我触摸天花板时怎么能阻止它呢?将字符的y_speed设置为“0”对我没有帮助。

图片解释了现在发生了什么: jumping

1 个答案:

答案 0 :(得分:0)

对于碰撞,用矩形替换角色并测试此矩形与myCollisionsList中的所有矩形之间的距离。这是非常简单的解决方案,但对于矩形形状,它是完美的。如果你的速度很低,你可以使用像素完美碰撞:例如http://www.freeactionscript.com/2011/08/as3-pixel-perfect-collision-detection/