如何让群体中的精灵创建另一个对象并摧毁自己?

How make a sprite in group create anothers objects and destroy himself?

我从 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 回调。看:

我怎样才能完成这项工作?

我没有完全理解你的问题……据我所知,目前碰撞没有多大意义。您应该查看 Phaser 网站上的示例。您会找到适合您案例的代码示例。

要检查 world/screen 的碰撞,您可以使用

checkWorldBounds and set it to true.