Advertisement
Guest User

Phaser Minimap 2.4 (examples)

a guest
Oct 22nd, 2015
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // paste this code into http://phaser.io/examples/v2/tilemaps/csv-map-with-p2
  2.  
  3. var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'phaser-example', { preload: preload, create: create, update: update, render: render });
  4.  
  5. function preload() {
  6.  
  7.     game.load.baseURL = 'http://examples.phaser.io/';
  8.     game.load.crossOrigin = 'anonymous';
  9.  
  10.     game.load.image('phaser', 'assets/sprites/phaser-dude.png');
  11.     game.load.tilemap('map', 'assets/tilemaps/csv/catastrophi_level2.csv', null, Phaser.Tilemap.CSV);
  12.     game.load.image('tiles', 'assets/tilemaps/tiles/catastrophi_tiles_16.png');
  13.     game.load.image('player', 'assets/sprites/tinycar.png');
  14. }
  15.  
  16.  
  17. var map;
  18. var layer;
  19. var cursors;
  20. var player;
  21. var renderTexture;
  22. var renderSprite;
  23. var help;
  24. var zoom;
  25. var mapSize = 400;
  26.  
  27. function create() {
  28.  
  29.     game.physics.startSystem(Phaser.Physics.P2JS);
  30.  
  31.    
  32.  
  33.     //  Because we're loading CSV map data we have to specify the tile size here or we can't render it
  34.     map = game.add.tilemap('map', 16, 16);
  35.  
  36.     //  Now add in the tileset
  37.     map.addTilesetImage('tiles');
  38.    
  39.     //  Create our layer
  40.     layer = map.createLayer(0);
  41.  
  42.     //  Resize the world
  43.     layer.resizeWorld();
  44.  
  45.     //  This isn't totally accurate, but it'll do for now
  46.     map.setCollisionBetween(54, 83);
  47.  
  48.     //  Convert the tilemap layer into bodies. Only tiles that collide (see above) are created.
  49.     //  This call returns an array of body objects which you can perform addition actions on if
  50.     //  required. There is also a parameter to control optimising the map build.
  51.     game.physics.p2.convertTilemap(map, layer);
  52.  
  53.     //  Player
  54.     player = game.add.sprite(48, 48, 'player');
  55.  
  56.     game.physics.p2.enable(player);
  57.  
  58.     game.physics.p2.setBoundsToWorld(true, true, true, true, false);
  59.  
  60.     game.camera.follow(player);
  61.  
  62.     //  Allow cursors to scroll around the map
  63.     cursors = game.input.keyboard.createCursorKeys();
  64.  
  65.     help = game.add.text(16, 16, 'Arrows to move', { font: '14px Arial', fill: '#ffffff' });
  66.     help.fixedToCamera = true;
  67.    
  68.     zoom = 0.5
  69.    
  70.     //renderTexture=game.add.renderTexture(200,200,"rt")
  71.     //renderTexture.resolution=0.5
  72.     renderTexture=game.add.renderTexture(mapSize,mapSize,"rt") // render()ing seems to have changed
  73.    
  74.     renderGroup = game.add.group()
  75.    
  76.    
  77.    
  78.    
  79.     var bg = game.add.graphics(0,0)
  80.     bg.beginFill(0,1)
  81.     bg.lineStyle(2, 0xFF0000, 1);
  82.     bg.drawCircle(0,0,mapSize/2,mapSize/2)
  83.     bg.endFill();
  84.     renderGroup.add(bg)
  85.    
  86.     renderSprite=game.add.sprite(0,0,renderTexture)
  87.    //renderSprite.scale.set(0.25) // render()ing seems to have changed
  88.     renderSprite.width=mapSize * zoom
  89.     renderSprite.height=mapSize * zoom
  90.  
  91.    
  92.     renderSprite.anchor.set(0.5)
  93.    
  94.    
  95.     renderGroup.add(renderSprite)
  96.    
  97.     var mask = game.add.graphics(0, 0);
  98.     //mask.lineStyle(2, 0xFF0000, 1);
  99.     mask.beginFill(0xFF0000,0.1)
  100.     mask.drawCircle(0,0,mapSize/2,mapSize/2);    
  101.     mask.endFill()
  102.     //mask.cacheAsBitmap=true // !!!! breaks mask
  103.     renderGroup.add(mask)
  104.     renderSprite.mask=mask;
  105.  
  106.     var outline = game.add.graphics(0, 0);
  107.     outline.lineStyle(2, 0xFF0000, 1);
  108.     outline.drawCircle(0,0,mapSize/2,mapSize/2);    
  109.     outline.endFill()
  110.     renderGroup.add(outline)
  111.  
  112.     // renderGroup.x=650 /// !!!! needs camera offset now since fixed to camera
  113.     // renderGroup.y=150
  114.     renderGroup.cameraOffset.x=650
  115.     renderGroup.cameraOffset.y=150
  116.     renderGroup.fixedToCamera=true
  117.     renderTexture.render(layer, 0,0,true)
  118.  
  119.  
  120. }
  121.  
  122. function update() {
  123.  
  124.     if (cursors.left.isDown)
  125.     {
  126.         player.body.rotateLeft(100);
  127.     }
  128.     else if (cursors.right.isDown)
  129.     {
  130.         player.body.rotateRight(100);
  131.     }
  132.     else
  133.     {
  134.         player.body.setZeroRotation();
  135.     }
  136.  
  137.     if (cursors.up.isDown)
  138.     {
  139.         player.body.thrust(400);
  140.     }
  141.     else if (cursors.down.isDown)
  142.     {
  143.         player.body.reverse(400);
  144.     }
  145.  
  146.  
  147.     w = layer.width
  148.     h = layer.height
  149.    
  150.     // crop layer for render
  151.     layer.setFrame({x:Math.max(0,player.x-game.camera.x)-mapSize/2,y:Math.max(0,player.y-game.camera.y)-mapSize/2,width:mapSize,height:mapSize})
  152.     //layer.setFrame({x:player.x, y:player.y, width:400, height:400})
  153.     m = new PIXI.Matrix()
  154.     renderSprite.angle=-player.angle
  155.     // reset layer to original dimensions
  156.     renderTexture.render(layer, m, true)
  157.     layer.setFrame({x:0, y:0, width:w, height:h})
  158.  
  159. }
  160.  
  161. function render() {}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement