Actionscript 3 as3-当你接触一个物体时,如何停止移动?
我怎样才能让玩家在与物体碰撞时停止,但当它接触物体的x面时,它仍然可以上下滑动,当它接触物体的y面时,它仍然可以在碰撞时左右滑动 这是我的玩家移动代码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
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保存到变量中 计算新位置 检查玩家是否在新位置重叠任何物体或关卡边界。这可以通过多种方式实现;如果不知道你的关卡结构、球员的形状、障碍物的形状以及你如何存储有关它们的信息,就不可能详细阐述。 对于每个重叠对象,计算玩家与对象重叠的程度,并通过将玩家移回其轨迹以避免碰撞来解决碰撞问题。你有上一个和下一个坐标,所以,你有一个向量,沿着它移动玩家。 这些步骤的难度很大程度上取决于所讨论对象的形状、碰撞对象的最大相对速度以及碰撞求解所需的精度。如果您处理的基本体(如矩形和圆形)相对容易实现,尽管仍有一些困难的情况,如与多个对象的碰撞。以下是一些您可能需要了解的基本工具: 检测和解决冲突是游戏开发中最常见的问题之一,因此您可以在网上轻松找到大量关于该主题的资料。例如: 你试过了还是?