0

我正在创建简单的 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”对我没有帮助。

图片解释了现在发生的事情: 跳跃

4

1 回答 1

0

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

于 2013-09-16T15:31:25.020 回答