2016-08-01 14 views
0

Ich fange mit Phaser, und ich brauche die folgen Animationen machen: Ein Sprit Auto von jeder Seite des Bildschirms angezeigt werden, so dass in einem bestimmten Punkt ein anderes Auto bewegt sich in derselben Richtung, und noch einer und noch immer mit dem gleichen Intervall und wenn diese Autos nicht mehr auf dem Bildschirm sind, werden sie zerstört.Wie macht ein Sprite in der Gruppe andere Objekte und zerstört sich selbst?

Für den Versuch, ich setze Sprite, aber wenn Auto mit ihnen kollidieren, starten Sie ein anderes Auto die Bewegung. Geben Sie den Code:

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); 
} 

Aber nicht, weil, mit collision, das Auto aus seinem Weg und ohne sie, er nicht collision oder overlap Rückruf nennen. Schauen Sie:

enter image description here

Wie ich diese Arbeit gemacht kann?

Antwort

0

Ich habe Ihre Frage und Ihr Problem nicht ganz verstanden ... die Kollision macht im Moment keinen Sinn, soweit ich das beurteilen kann. Sie sollten sich die Beispiele auf der phaser Website anschauen. Sie finden gute Codebeispiele für Ihren Fall.

Um zu überprüfen, Kollisionen der Welt/Bildschirm Sie

checkWorldBounds and set it to true. 
verwenden können