Advertisement
jmp909

Phaser Mini Map

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