Actionscript 3 as3-当你接触一个物体时,如何停止移动?

Actionscript 3 as3-当你接触一个物体时,如何停止移动?,actionscript-3,Actionscript 3,我怎样才能让玩家在与物体碰撞时停止,但当它接触物体的x面时,它仍然可以上下滑动,当它接触物体的y面时,它仍然可以在碰撞时左右滑动 这是我的玩家移动代码 public function onKeyDown(event: KeyboardEvent): void { if (event.keyCode == Keyboard.D) { isRight = true; } if (event.keyCode

我怎样才能让玩家在与物体碰撞时停止,但当它接触物体的x面时,它仍然可以上下滑动,当它接触物体的y面时,它仍然可以在碰撞时左右滑动

这是我的玩家移动代码

public function onKeyDown(event: KeyboardEvent): void
    {
        if (event.keyCode == Keyboard.D)
        {
            isRight = true;
        }
        if (event.keyCode == Keyboard.A)
        {
            isLeft = true;
        }
        if (event.keyCode == Keyboard.W)
        {
            isUp = true;
        }
        if (event.keyCode == Keyboard.S)
        {
            isDown = true;
        }
    }

public function onEnterFrame(event: Event): void
    {
        if (isRight)
        {
            x += 5;
        }
        if (isLeft)
        {
            x -= 5;
        }
        if (isUp)
        {
            y -= 5;
        }
        if (isDown)
        {
            y += 5;
        }
    }

在您的案例中,在帧间移动的每个勾号上,您应该执行以下基本步骤:

将玩家的x和y保存到变量中 计算新位置 检查玩家是否在新位置重叠任何物体或关卡边界。这可以通过多种方式实现;如果不知道你的关卡结构、球员的形状、障碍物的形状以及你如何存储有关它们的信息,就不可能详细阐述。 对于每个重叠对象,计算玩家与对象重叠的程度,并通过将玩家移回其轨迹以避免碰撞来解决碰撞问题。你有上一个和下一个坐标,所以,你有一个向量,沿着它移动玩家。 这些步骤的难度很大程度上取决于所讨论对象的形状、碰撞对象的最大相对速度以及碰撞求解所需的精度。如果您处理的基本体(如矩形和圆形)相对容易实现,尽管仍有一些困难的情况,如与多个对象的碰撞。以下是一些您可能需要了解的基本工具:

检测和解决冲突是游戏开发中最常见的问题之一,因此您可以在网上轻松找到大量关于该主题的资料。例如:

你试过了还是?