2015-04-28 5 views
1

Вот мой код относительно tilesprite & Игрок, игрок не должен проходить через chipsprite, но, к сожалению, мой код не работает, я пробовал все пути, но не смог достичь желаемого результата, я не делаю знаете почему tile2.body.immovable=true; флаг не работает.Недвижимость не работает в phaser

var main = { 

    preload: function() { 
     this.game.load.image('ground', 'images/ground.jpg'); 
     this.game.load.image('bg', 'images/gabg.jpg'); 
     this.game.load.atlasJSONHash('mover', 'images/sheet.png', 'images/sprites.json'); 

    }, 

    create: function() { 
     this.game.physics.startSystem(Phaser.Physics.ARCADE); 

     cursor = this.game.input.keyboard.createCursorKeys(); 
     tile1 = game.add.tileSprite(0, 10, 1365, 582, 'bg'); 
     tile2 = game.add.tileSprite(0, 590, 1366, 91, 'ground'); 

     player = this.game.add.sprite(50, 550, 'mover'); 
     player.frame = 0; 
     player.anchor.setTo(0.5, 0.5); 
     while (i < 11) { 
      anim.push(i) 
      i++; 
     } 
     player.animations.add('move', anim, 20, true); 

     this.game.physics.arcade.enable(player); 
     this.game.physics.arcade.enable(tile2); 
     tile2.body.immovable = true; 
     tile2.body.allowGravity = false; 
     player.body.gravity.y = 800; 
    }, 

    update: function() { 
     this.game.physics.arcade.collide(tile2, player); 
     tile1.tilePosition.x += -1; 
     tile2.tilePosition.x += -4; 
     this.move(); 
    }, 

    move: function() { 
     if (cursor.up.isDown) { 
      player.body.velocity.y = -200; 
      player.animations.stop('move'); 
     } 

     else { 
      player.animations.play('move'); 
     } 
    }, 

}; 

var game = new Phaser.Game(1366, 768, Phaser.CANVAS, 'gamediv'); 
this.game.state.add('main', main); 
this.game.state.start('main'); 

var anim = []; 
var cursor, i=0; 
var tile1; 
var tile2; 
var player; 

ответ

Смежные вопросы