actionscript-3 - Adobe 动画碰撞

标签 actionscript-3 flash adobe collision

我正在使用 AS3 在 adobe animate 中制作游戏。我想在以下时间停止我的方 block 它与左边的障碍物发生碰撞而不让它通过。我的盒子的实例名称称为“盒子”,我的障碍物称为“左”和“右”。

这是我舞台的图片:image of stage

这是我到目前为止移动盒子的代码:

var upPressed:Boolean = false;
var downPressed:Boolean = false;
var leftPressed:Boolean = false;
var rightPressed:Boolean = false;

box.addEventListener(Event.ENTER_FRAME, fl_MoveInDirectionOfKey);
stage.addEventListener(KeyboardEvent.KEY_DOWN, fl_SetKeyPressed);
stage.addEventListener(KeyboardEvent.KEY_UP, fl_UnsetKeyPressed);

function fl_MoveInDirectionOfKey(event:Event)
{
  if (leftPressed)
  {
     box.x -= 5;
  }

  if (rightPressed)
  {
     box.x += 5;
  } 
}

function fl_SetKeyPressed(event:KeyboardEvent):void
{   
  switch (event.keyCode)
  {
    case Keyboard.LEFT:
    {
        leftPressed = true;
        break;
    }
    case Keyboard.RIGHT:
    {
        rightPressed = true;
        break;
    }
  }
}

function fl_UnsetKeyPressed(event:KeyboardEvent):void
{
 switch (event.keyCode)
 {  
    case Keyboard.LEFT:
    {
        leftPressed = false;
        break;
    }
    case Keyboard.RIGHT:
    {
        rightPressed = false;
        break;
    }
  }
}

非常非常感谢!

最佳答案

你需要类似的东西

if (box.hitTestObject(left)) box.x = left.x + left.width;
if (box.hitTestObject(right)) box.x = right.x  - box.width;

添加到fl_MoveInDirectionOfKey函数的末尾

关于actionscript-3 - Adobe 动画碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44861451/

相关文章:

actionscript-3 - Adobe Air mobile - 使用 SkinClass 允许滚动时,softKeyboardType 不起作用?

actionscript-3 - 在 Actionscript 3 中通过代码设置断点

actionscript-3 - 在AS3中播放声音

javascript - FlashDevelop - 已编译的 SWF/HTML 在 IE9 中不起作用

c++ - 在 swf 文件中使用来自 Blaze DS 的实时数据

actionscript-3 - 重新访问帧时仅将Child添加到舞台一次

apache-flex - 在 DisplayObjectContainer 上调用 addChild 或 removeChild 方法时会发生什么?

ios - EXC_BAD_ACCESS (SIGSEGV) 上的 KERN_INVALID_ADDRESS

Adobe Extendscript 工具包 : Illustrator and Intellisense

javascript - 使用 getTime 通过 If Else 语句计算多个日期