ianmcgregor

Members
  • Content Count

    21
  • Joined

  • Last visited

About ianmcgregor

  • Rank
    Member

Contact Methods

  • Twitter
    imcg

Recent Profile Visitors

1034 profile views
  1. Really enjoyed playing all the entries in this thread Here is mine: http://ludumdare.com/compo/ludum-dare-31/?action=preview&uid=9420 It all went a bit wrong and ended up being very short and missing a lot of features, but I'm happy with the seed of a game that I've ended up with.
  2. Just thought of another: Some more input helpers for devices. Probably the most useful are swipe and tilt (deviceorientation).
  3. You can already use data URIs like this: var dataURI = 'data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD//...'; var data = new Image(); data.src = dataURI; game.cache.addImage('image-key', dataURI, data);
  4. An easy, built in way to handle different asset resolutions for different devices would be amazing. WebAudio API goodness such as room ambience (reverb), delay and panning would be nice. I think it's on the roadmap, but some way of bringing in Flash animations for cut scenes would be cool. Phaser3D would be fantastic, especially in the new modular set up so we could reuse a lot of things across 2d and 3d games, but understand it would be a massive undertaking! I quite like entity component because, for me, it makes some things really easy such as multiplayer games and code reuse across games. However, I think conceptually it's not as easy to grasp as the current set up and I like that Phaser is so accessible.
  5. We had this code for scaling tilemaps in a recent game using Phaser 2.04 and it did work with Arcade physics. Map.prototype.scaleTilemapData = function(name, scale) { var tilemapData = this.game.cache.getTilemapData(name); if(tilemapData.isScaled) { return; } this.scaleTileWidthAndHeight(tilemapData, scale); this.scaleTilesets(tilemapData, scale); this.scaleObjectLayers(tilemapData, scale); tilemapData.isScaled = true;};Map.prototype.scaleTileWidthAndHeight = function(tilemapData, scale) { tilemapData.data.tilewidth *= scale; tilemapData.data.tileheight *= scale;};Map.prototype.scaleTilesets = function(tilemapData, scale) { var tilesets = tilemapData.data.tilesets, l = tilesets.length, tileset; for(var i = 0; i < l; i++) { tileset = tilesets[i]; tileset.imageheight *= scale; tileset.imagewidth *= scale; tileset.tileheight *= scale; tileset.tilewidth *= scale; }};Map.prototype.scaleObjectLayers = function(tilemapData, scale) { var layers = tilemapData.data.layers, l = layers.length, layer; for(var i = 0; i < l; i++) { layer = layers[i]; if(Object.prototype.toString.call(layer.objects) === '[object Array]') { layer.objects = this.scaleObjects(layer.objects, scale); } }};Map.prototype.scaleObjects = function(objects, scale) { var l = objects.length, object; for(var i = 0; i < l; i++) { object = objects[i]; object.x *= scale; object.y *= scale; } return objects;};
  6. I can recommend TexturePacker to pack images into sprite sheets and TinyPNG to crunch down the file size. The code changes *should* be minimal as you'll be using the same image keys on your sprites. If you don't want to change any code you could still do the TinyPNG part, which can give you huge file size savings.
  7. I have a snippet for catching when the mouse leaves the browser. I don't know if it solves your specific problem, but here goes: function mouseLeftWindow(fn, context) { document.addEventListener('mouseout', function(e) { var from = e.relatedTarget || e.toElement; if (!from || from.nodeName === 'HTML') { fn.call(context || this); } }); }
  8. Wow. This is going to be such a useful tool for adapting or testing out variations of the examples before putting the code into the game itself. Thanks Rich!
  9. We just launched this game at work (Stinkdigital) You have to connect with Facebook, but it doesn't post anything (the game is saving your FB friends from an evil middle-manager villain). It works on desktops and recent gen tablets/mobiles. MADE by Ray-Ban: http://game.ray-ban.com/ html5gamedevs user brejep worked it too
  10. That is weird! Post more code if you feel like it and I'll have a look.
  11. If your foreground has the same parent group (the default world group?) as your enemies group then you should be able to move the whole layer to the top: enemies.parent.bringToTop(enemies);
  12. FYI this bug has made it to the Chrome beta version too (http://www.google.com/intl/en/chrome/browser/beta.html).
  13. Here's my entry: http://www.ludumdare.com/compo/ludum-dare-29/?action=preview&uid=9420 Must say I think Phaser is great for game jams. So quick to get going and hack something together. Looking forward to going through this thread later trying all your entries
  14. PM sent. Yes, the hero does extend Phaser.Sprite.