如何让小组中的精灵创建一个对象并摧毁自己?

时间:2016-08-01 19:14:02

标签: phaser-framework

我从 Phaser 开始,我需要制作以下动画: 从屏幕的任何一侧出现汽车精灵,因此,在特定点,另一辆汽车在同一方向上移动,而另一辆汽车以相同的间隔移动,当这辆汽车离开屏幕时,将被销毁。

试试看,我穿上雪碧,但当汽车与它们相撞时,另一辆车开始运动。看代码:

var x = 800
var y = 600


var game = new Phaser.Game(x, y, Phaser.AUTO, '', { preload: preload, create: create, update: update });
var cars;
var next;

function preload() {
  game.load.image('car', 'assets/images/car.png');
  game.load.image('next', 'assets/images/square.png');
  game.load.image('destroy', 'assets/images/square.png');
}


function create() {
  game.physics.startSystem(Phaser.Physics.ARCADE);
  game.stage.backgroundColor = "#4488AA";

  // call next car
  next = game.add.sprite(500, 200, 'next');
  game.physics.arcade.enable(next);
  // next.body.checkCollision.right = false;
  next.body.bounce.set(0);
  next.body.immovable = true;

  // destroy last car
  destroy = game.add.sprite(0, 550, 'destroy');
  game.physics.arcade.enable(destroy);
  destroy.body.immovable = true;


  cars = game.add.physicsGroup();

  createCar(null, null);
}

function update() {
  game.physics.arcade.collide(next, cars, createCar, processHandler, this);
}

function processHandler (pointer, car) {

    return true;

}
function createCar(pointer, car) {
  console.log('call next');
  car = cars.create(x, 0,'car');
  car.body.velocity.setTo(-150, 100 );
}

但是不行,因为,collision,汽车离开了他的道路,没有她,他不会打电话给collisionoverlap。看:

enter image description here

我如何才能做到这一点?

1 个答案:

答案 0 :(得分:0)

我没有完全理解你的问题和问题......就我所见,目前碰撞并没有多大意义。您应该查看移相器网站上的示例。您将找到适合您案例的良好代码示例。

要检查世界/屏幕的碰撞,您可以使用

checkWorldBounds and set it to true.