Phaser:来自身体的重力

时间:2014-09-13 21:05:07

标签: phaser-framework

我已经为我的游戏添加了一个应该具有重力的身体,所以想象一个带有圆圈的大空屏幕,用于"地球"在中间。

让我在游戏中加入任何其他身体的方法是加速"或者"吸引了#34;到这个圈子?基本上如果小行星出现,它应该保持它的初始速度,但受到地球引力的影响。

1 个答案:

答案 0 :(得分:3)

我相信我找到了这种方法,您正在寻找here

我也有一个方法in action here的例子。

以下是我的示例的源代码:

// 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
}