2014-09-13 9 views
5

Ho aggiunto un corpo che dovrebbe avere gravità nel mio gioco, quindi immagina un grande schermo vuoto con un cerchio per "Terra" nel mezzo.Phaser: gravità originata da un corpo

Quali metodi consentirebbero a qualsiasi altro organismo aggiunto al gioco di essere "accelerato" o "attratto" in questo cerchio? Fondamentalmente se appare un asteroide, dovrebbe mantenere la sua velocità iniziale, ma essere influenzato dalla gravità della Terra.

risposta

3

Credo di aver trovato questo metodo che stai cercando here.

Ho anche un esempio di questo metodo in action here.

Ecco il codice sorgente per il mio esempio:

// Global constants 
var GAME_WIDTH = 800; 
var GAME_HEIGHT = 600; 

var SHIP_X_POS = 100; 
var SHIP_Y_POS = 200; 

var PLANET_X_POS = 400; 
var PLANET_Y_POS = 300; 

var ACCELERATION_TOWARDS_PLANET = 500; 

var SHIP_VELOCITY_X = 150; 
var SHIP_VELOCITY_Y = 150; 

// Global variables 
var ship; 
var planet; 

var game = new Phaser.Game(GAME_WIDTH, GAME_HEIGHT, Phaser.AUTO, "game", {preload: preload, create: create, update: update}); 

function preload() { 
    game.load.image("ship", "sprites/phaser_ship.png"); 
    game.load.image("planet", "sprites/planet.png"); 
} 

function create() { 
    var ship = game.add.sprite(SHIP_X_POS, SHIP_Y_POS, "ship"); 
    game.physics.arcade.enable(ship); 
    ship.body.velocity.x = SHIP_VELOCITY_X; 
    ship.body.velocity.y = SHIP_VELOCITY_Y; 

    var planet = game.add.sprite(PLANET_X_POS, PLANET_Y_POS, "planet"); 
    game.physics.arcade.enable(planet); 
    planet.body.immovable = true; 
    game.physics.arcade.accelerateToObject(ship, planet, ACCELERATION_TOWARDS_PLANET); 
} 

function update() { 
    // nothing to update 
} 
+0

I tuoi link sono morti: primo sembra puntare a [questo] (https://photonstorm.github.io/phaser-ce/Phaser. Physics.Arcade.html # accelerateToObject), la seconda non è disponibile negli archivi – LarsW

+0

@LarsW Hmm, sì, hai ragione. Ciò sta accadendo perché Google ha annullato la possibilità di utilizzare Google Drive per l'hosting web: https://gsuite-developers.googleblog.com/2015/08/deprecating-web-hosting-support-in.html. Potrei ri-caricare l'esempio su un'altra piattaforma di hosting, ma la cartella è pubblicamente disponibile per il download qui: https://drive.google.com/drive/folders/0B-ZLnDJaPrIYeFZlT2NXUlRjQTA – GDP2