2017-11-22 10 views
0

私はちょうど私がプログラムで作成したタイルマップを読み込む方法を考え出しました。それは期待どおりに動作します。そのため、基本的なフォローカメラをいくつかのコードを使って追加しようとしています例からではなく、私は何も今ここタイルマップの中央を見ている以外出来事を持っていないが、私が試してみましたコードです:私はフェイザーを使用して新しいですphaser.jsのカメラに従います

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

function preload() { 

    // Tilemaps are split into two parts: The actual map data (usually stored in a CSV or JSON file) 
    // and the tileset/s used to render the map. 

    // Here we'll load the tilemap data. The first parameter is a unique key for the map data. 

    // The second is a URL to the JSON file the map data is stored in. This is actually optional, you can pass the JSON object as the 3rd 
    // parameter if you already have it loaded (maybe via a 3rd party source or pre-generated). In which case pass 'null' as the URL and 
    // the JSON object as the 3rd parameter. 

    // The final one tells Phaser the foramt of the map data, in this case it's a JSON file exported from the Tiled map editor. 
    // This could be Phaser.Tilemap.CSV too. 

    game.load.tilemap('gameMap', 'assets/tilemaps/gameMap2.json', null, Phaser.Tilemap.TILED_JSON); 

    // Next we load the tileset. This is just an image, loaded in via the normal way we load images: 

    game.load.image('tiles', 'assets/tilemaps/gameMap.png'); 
    game.load.image('player','assets/img/player.gif'); 
} 

var map; 
var layer; 
var player; 
var cursors; 

function create() { 

    game.stage.backgroundColor = '#787878'; 
    game.world.setBounds(0, 0, 3200, 3200); 
    game.physics.startSystem(Phaser.Physics.P2JS); 
    player = game.add.sprite(game.world.centerX, game.world.centerY, 'player'); 


     game.physics.p2.enable(player); 

     cursors = game.input.keyboard.createCursorKeys(); 

     game.camera.follow(player); 

    // The 'mario' key here is the Loader key given in game.load.tilemap 
    map = game.add.tilemap('gameMap'); 

    // The first parameter is the tileset name, as specified in the Tiled map editor (and in the tilemap json file) 
    // The second parameter maps this name to the Phaser.Cache key 'tiles' 
    map.addTilesetImage('spritesheet', 'tiles'); 

    // Creates a layer from the World1 layer in the map data. 
    // A Layer is effectively like a Phaser.Sprite, so is added to the display list. 
    layer = map.createLayer('Tile Layer 1'); 

    // This resizes the game world to match the layer dimensions 
    layer.resizeWorld(); 

} 
function update() { 

     player.body.setZeroVelocity(); 

     if (cursors.up.isDown) 
     { 
      player.body.moveUp(300) 
     } 
     else if (cursors.down.isDown) 
     { 
      player.body.moveDown(300); 
     } 

     if (cursors.left.isDown) 
     { 
      player.body.velocity.x = -300; 
     } 
     else if (cursors.right.isDown) 
     { 
      player.body.moveRight(300); 
     } 

    } 
    function render() { 

      game.debug.cameraInfo(game.camera, 32, 32); 
      game.debug.spriteCoords(player, 32, 500); 

     } 

と私は、これはいずれも機能しない理由を確認していませんポインタ?

答えて

0

文字の機能を作成し、この方法でマップの作成を実施した後、カメラのフォローアップをしてください:

function create() { 

    //Configure physical engine 
    game.physics.startSystem(Phaser.Physics.P2JS); 

    //Creating the tilemap 
    game.stage.backgroundColor = '#787878'; 

    map = game.add.tilemap('mario'); 

    map.addTilesetImage('SuperMarioBros-World1-1', 'tiles'); 

    layer = map.createLayer('World1'); 

    layer.resizeWorld(); 

    //Configure player controls 
    cursors = game.input.keyboard.createCursorKeys(); 

    //Player creation 
    player = game.add.sprite(game.world.centerX, game.world.centerY, 'player'); 

    game.physics.p2.enable(player); 

    game.camera.follow(player); 

} 

私は基礎としてこのexampleを使用しています

関連する問題