2015-10-02 34 views
-2

這是代碼,它是100%運行。我試圖研究答案,但我找不到/解決它。這兩個精靈不會相互碰撞。我想要碰撞功能運行。我的編碼有什麼問題?它不會碰撞

var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create, update: update, render: render }); 

功能預載(){

game.load.spritesheet('mummy', 'metalslug_mummy37x45.png', 37, 45, 18); 
game.load.spritesheet('sprite', 'sprite.png', 39, 40); 
game.load.image('background', 'cemetery.jpg'); 

} 
var sprites; 
var rip = 0; 
var s; 

函數創建(){

game.add.sprite(0, 0, 'background'); 

    sprites = game.add.group(); 
    game.time.events.loop(80, createSprite, this); 
    game.physics.enable(sprites, Phaser.Physics.ARCADE); 

    s = game.add.sprite(game.world.centerX, game.world.centerY, 'sprite'); 
    s.anchor.setTo(0.5, 0.5); 
    s.scale.setTo(2, 2); 

    s.animations.add('run'); 
    s.animations.play('run', 10, true); 
    game.physics.enable(s, Phaser.Physics.ARCADE); 



} 

功能createSprite(){

var mummy = sprites.create(0, game.world.randomY, 'mummy'); 

    mummy.animations.add('walk'); 

    mummy.play('walk', 10, true); 

} 

功能更新(){

sprites.setAll('x', 10, true, true, 1); 

    sprites.forEach(checkSprite, this, true); 

    game.physics.arcade.collide(s, sprites, collisionHandler, null, this); 

    if (game.input.keyboard.isDown(Phaser.Keyboard.LEFT)) 
    { 
     s.x -= 5; 
    } 
    else if (game.input.keyboard.isDown(Phaser.Keyboard.RIGHT)) 
    { 
     s.x += 5; 
    } 

    if (game.input.keyboard.isDown(Phaser.Keyboard.UP)) 
    { 
     s.y -= 5; 
    } 
    else if (game.input.keyboard.isDown(Phaser.Keyboard.DOWN)) 
    { 
     s.y += 5; 
    } 


} 

功能collisionHandler(OBJ1,OBJ2){

game.stage.backgroundColor = '#992d2d'; 

} 

功能checkSprite(子畫面){

try { 
     if (sprite.x > game.width) 
     { 
      rip++; 
      sprites.remove(sprite, true); 
     } 
    } 
    catch (e) 
    { 
     console.log(sprite); 
    } 

} 

函數渲染(){

game.debug.text("Score: " + rip, 32, 64); 

} 
+1

你必須更好地解釋你的問題:什麼是預期的,發生了什麼,有什麼錯誤,...... – hoijui

+0

*「沒有明確問題陳述的問題對其他讀者沒有用。」* –

回答

0

這是問題所在 -

` sprites.setAll('x', 10, true, true, 1); 

    sprites.forEach(checkSprite, this, true);` 

你應該寫這些內部創建功能不更新功能,確保您撥打game.physics.arcade.collide(//.....//);在您的更新功能的開始。

+0

我試試,但是一組木乃伊沒有動,只停留在左側。碰撞功能也不起作用。 –

+0

如果您使用jsbin/jsfiddle將代碼上傳到一些資源,它將更容易進行調試。 –