如何让群体中的精灵创建另一个对象并摧毁自己?
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
的情况下,汽车偏离了他的路径并且没有她,他不会调用 collision
或 overlap
回调。看:
我怎样才能完成这项工作?
我没有完全理解你的问题……据我所知,目前碰撞没有多大意义。您应该查看 Phaser 网站上的示例。您会找到适合您案例的代码示例。
要检查 world/screen 的碰撞,您可以使用
checkWorldBounds and set it to true.
我从 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
的情况下,汽车偏离了他的路径并且没有她,他不会调用 collision
或 overlap
回调。看:
我怎样才能完成这项工作?
我没有完全理解你的问题……据我所知,目前碰撞没有多大意义。您应该查看 Phaser 网站上的示例。您会找到适合您案例的代码示例。
要检查 world/screen 的碰撞,您可以使用
checkWorldBounds and set it to true.