我从 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
。看:
我如何才能做到这一点?
答案 0 :(得分:0)
我没有完全理解你的问题和问题......就我所见,目前碰撞并没有多大意义。您应该查看移相器网站上的示例。您将找到适合您案例的良好代码示例。
要检查世界/屏幕的碰撞,您可以使用
checkWorldBounds and set it to true.