2015-05-04 117 views
0

我有一个背景和汽车精灵的游戏。加快精灵点击相位器

汽车现在从右向左驾驶。我试图做到这一点,以便当玩家点击汽车时,汽车加速并继续加速。

我迄今为止代码:

var game = new Phaser.Game(800, 500, Phaser.AUTO, '', { preload: preload, create: create, update: update }); 
var text; 
var counter = 0; 

function preload() { 
    game.load.image('background', 'images/backgrounds/bg_g1a.png'); 
    game.load.image('car', 'images/items/car.png'); 
} 

function create() { 
    // enable the Arcade Physics system 
    game.physics.startSystem(Phaser.Physics.ARCADE); 
    // Game background 
    game.add.sprite(0, 0, 'background'); 
    //add car 
    var sprite = game.add.sprite(700, 300, 'car'); 
    game.physics.arcade.enable(sprite); 
    // add movement from right to left 
    var demoTween = game.add.tween(sprite).to({x:-200,y:300},2000); 
    // start again when out of the game 
    demoTween.onComplete.add(function(){ 
     sprite.x = 700; sprite.y = 300; 
     demoTween.start(); 
    }); 
    demoTween.start(); 
    //enable input on car 
    sprite.inputEnabled = true; 
    //counter 
    text = game.add.text(250, 16, '', { fill: '#ffffff' }); 
    //start listener function on input 
    sprite.events.onInputDown.add(listener, this); 
} 

function update() { 
} 
// car has been clicked 
function listener (sprite) { 
    counter++; 
    text.text = "You clicked " + counter + " times!"; 
    sprite.body.acceleration = -2000; 
} 

我已经在最后一行尝试:

sprite.body.acceleration = -2000; 

我从速度尝试了不同的方法来改变补间的数据,但他们没有工作。计数器很重要,但汽车像以前一样继续前进。 我在做什么错?

回答

1

好吧,我明白了。

问题是移动对象的不同方法。它可以通过补间来完成,通过自己或通过物理移动对象。

但你不能混合它们!这是造成这个问题的原因。所以在我的情况下,我现在用moveToXY移动精灵,然后加速。就像这样:

game.physics.arcade.moveToXY(policecar, 100, streetHeight); 

然后单击时,监听功能大火这样的:

sprite.body.acceleration.x = -1000; 

效果很好!