如何在as3闪存中检测碰撞和堆栈坠落物体?

时间:2016-05-29 14:38:54

标签: actionscript-3 flash

当我试图让sqares堆叠时,我有点问题,就像在俄罗斯方块中一样。 我不知道如何控制不同的方块,以便我可以检查碰撞。我用as3连接名称Square制作了一个正方形。

    var timer:Timer = new Timer(12);

    timer.addEventListener(TimerEvent.TIMER, doStuff);

    timer.start();

    var newSquare= new Square();
    nyFirkant.y = 0;
    nyFirkant.x = Math.floor( Math.random() * 4) * 100;
    addChild(newSquare);

    stage.addEventListener(KeyboardEvent.KEY_DOWN, tastLytter);

    function keyListener(evt:KeyboardEvent)
    {
    var key:int = evt.keyCode;

    if (key== Keyboard.RIGHT && newSquare.x < 400)
      {
        newSquare.x +=  100;
    }
   if (key== Keyboard.LEFT && newSquare.x > 0)
    {
        newSquare.x -=  100;
    }

    }


    function doStuff(evt:TimerEvent)
    {
    if (newSquare.y <= 400 - newSquare.height)
    {
        newSquare.y = newSquare.y + 2;
    }
    if (newSquare.y == 350)
    {
        newSquare= new Square();
        newSquare.y = 0;
        newSquare.x = Math.floor( Math.random() * 4) * 100;;

        addChild(newSquare);

    }



    }

1 个答案:

答案 0 :(得分:0)

使用hitTestObject,它是MovieClip类中的一个方法。

if (firstBlock.hitTestObject(secondBlock)) {
    trace("This block hit the other block");
    //Do stuff
}

显然,这不是&#34;插入&#34;解决方案 - 使用物理引擎(例如Box2D)会好得多,但hitTestObject应该可以满足您的需要。