2017-11-22 1 views
0

So habe ich gerade herausgefunden, wie man eine Tilemap, die ich im Programm erstellt habe, geladen und es funktioniert wie erwartet, dann versuche ich, einen Player mit einer grundlegenden Follow-Kamera mit etwas Code hinzuzufügen aus dem Beispiel, aber ich habe nichts, außer das geschieht in der Mitte des tilemap sehen ist hier nun der Code, den ich versucht habe:Kamera folgen in 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); 

     } 

ich mit Phaser bin hier und ich bin nicht sicher, warum dies nicht funktioniert jede Zeiger?

Antwort

0

versuchen, den Charakter der Funktionalität und Nachbereitung der Kamera zu erstellen, nachdem die Erstellung der Karte auf diese Weise umgesetzt haben:

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); 

} 

ich diese example als Grundlage haben: