rich Posted July 17, 2015 Share Posted July 17, 2015 Hi all, Just wanted to say that RC2 of Phaser 2.4 is now available for download. More details here: http://phaser.io/news/2015/07/phaser24-rc2 Even since RC1 there have been some truly significant updates - the rewritten Cache, the new DeviceButton class, etc. The change log seems to scroll on even further now As before please give it a test - pay attention to the "deprecated" list in the change log too, as some things have now been removed. But it'd be great if you could drop it into your games. You'll find loads of new examples in the examples repo too, showing off things like video playback and Text tabs. Feel free to post issues here or on github. Cheers, Rich Rudrabhoj Bhati and Oscar Abraham 2 Link to comment Share on other sites More sharing options...
Tom Atom Posted July 18, 2015 Share Posted July 18, 2015 Hi, as we started making new game, I decided to go with Phaser 2.4.0 RC2 (I was also looking forward to try it ). I changed from Phaser 2.3.0 and got some errors related to Typescript defs. First - there is difference between commented defs and uncommented. The uncommented seems to be older, as for example BitmapText does not have anchor defined. Also for example getFrameByIndex is defined as: getFrameByIndex(key: string, frame: string): Phaser.Frame; instead of getFrameByIndex(key: string, frame: number): Phaser.Frame; (which is corrected in uncommented version), In both versions I found missing "inputEnabled" for Phaser.Graphics, as well as "events" for it. Link to comment Share on other sites More sharing options...
wayfinder Posted July 18, 2015 Share Posted July 18, 2015 Phaser.Mouse.LEFT_BUTTON/RIGHT_BUTTON/MIDDLE_BUTTON were removed? They'd still be useful when evaluating which button triggered an event (and the values are different than for the buttons bitmask). Link to comment Share on other sites More sharing options...
clark Posted July 18, 2015 Share Posted July 18, 2015 Phaser.Mouse.LEFT_BUTTON/RIGHT_BUTTON/MIDDLE_BUTTON were removed? They'd still be useful when evaluating which button triggered an event (and the values are different than for the buttons bitmask). I think you find them on the Phaser.Pointer class now. Ahh thanks for correcting me @wayfinder Link to comment Share on other sites More sharing options...
wayfinder Posted July 18, 2015 Share Posted July 18, 2015 No, those are the constants for the "buttons" property that I mentioned clark 1 Link to comment Share on other sites More sharing options...
clark Posted July 19, 2015 Share Posted July 19, 2015 Hi, as we started making new game, I decided to go with Phaser 2.4.0 RC2 (I was also looking forward to try it ). I changed from Phaser 2.3.0 and got some errors related to Typescript defs. First - there is difference between commented defs and uncommented. The uncommented seems to be older, as for example BitmapText does not have anchor defined. Also for example getFrameByIndex is defined as: getFrameByIndex(key: string, frame: string): Phaser.Frame; instead of getFrameByIndex(key: string, frame: number): Phaser.Frame; (which is corrected in uncommented version), In both versions I found missing "inputEnabled" for Phaser.Graphics, as well as "events" for it. The Uncommented one is always the most up to date. Things started getting a bit out of hand when the Component System was added. I do not for example use BitmapText anywhere so finding mistakes is hard. I have implemented the component system here *edit: back to drawing board* Link to comment Share on other sites More sharing options...
jim716 Posted July 19, 2015 Share Posted July 19, 2015 With RC2, I ran into an issue with load.pack and relative paths. I received an 404 error when loading because it inserted the word undefined in my path. This error does not occur with RC1. Link to comment Share on other sites More sharing options...
_o0o_ Posted July 19, 2015 Share Posted July 19, 2015 Nevermind, this was my fault lol I have a problem with RetroFont. Using 2.4.0rc1 and rc2 RetroFont seems to render all characters in the same position at the start of the image. The same code in 2.3.0 works as expected. I am using it in a fashion similar to below. var text="A LINE OF TEXT"; var titlefont = new Phaser.RetroFont(this.game, 'knightHawks', 31, 25, Phaser.RetroFont.TEXT_SET6, 10, 1, 1); titlefont.setText(text, true, null, 10, Phaser.RetroFont.ALIGN_CENTER, false); var i: Phaser.Image = this.game.add.image(x, y, titlefont, null, group); Link to comment Share on other sites More sharing options...
Tom Atom Posted July 19, 2015 Share Posted July 19, 2015 I found issue with mouse input in IE10. Here is minimal example - it just creates clickable square. Problem is that on IE10 (or when set IE Edge, which should be IE10 in my case) the game fails in Pointer class in updateButtons method (leftButton = null). It works with IE9 or Firefox (not tried Chrome): <html><head> <title>Test</title> <meta charset="utf-8"> <script src="js/phaser.js"></script></head><body> <div id="content"></div> <script> var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'content', { create: create }); function create() { // play button var g = this.add.graphics(0, 0); // draw a rectangle g.lineStyle(2, 0x0000FF, 0.5); g.beginFill(0xFF8080, 1); g.drawRect(this.world.centerX - 50, this.world.centerY - 50, 100, 100); g.endFill(); // input g.inputEnabled = true; g.events.onInputDown.add(function () { console.log("Pressed ..."); }, this); } </script> </body></html> Link to comment Share on other sites More sharing options...
Tom Atom Posted July 19, 2015 Share Posted July 19, 2015 I found another issue: if you create Sprite, let's say like this:var sprite = new Phaser.Sprite(this.game, 100, 100, "MyAtlas");then its key property is not set to "MyAtlas", but to undefined. I found, that it happens in Phaser.Component.LoadTexture.prototype where this.key is overwritten with img.key, which does not exist (shloud it be this.key = img.name? Or is it correct to overwirte it here at all, as you just got img through key and you are immediately overwriting this key with some property of image?): : else { var img = cache.getImage(key, true); this.key = img.key; this.setTexture(new PIXI.Texture(img.base)); setFrame = !this.animations.loadFrameData(img.frameData, frame); } : : Problems are then with methods like: frame = this.game.cache.getFrameByName(this.key, aFrame);, which fail, as key is undefined. Link to comment Share on other sites More sharing options...
Tom Atom Posted July 19, 2015 Share Posted July 19, 2015 @clark: thanks. I tried new version from GitHub, but it seems there is something wrong:- my source now does not recognize Point.setTo() method for positions, anchors, ... In previous definition these properties were not only in pixi.d.ts, but also in phaser.d.ts with correct type Phaser.Point (instead of PIXI.Point). Now, as it is missing in phaser.d.ts, the definition is taken from pixi.d.ts, where type is PIXI.Point and it lacks setTo() and other methods,- next issue is that BitmapText is missing some methods like updateText(), updateTransform() in defs - these were originally in PIXI and in 2.4.0 they seems to be moved into Phaser (from changelog: "Phaser.BitmapText no longer extends PIXI.BitmapText but replaces it entirely.") ... aah, I understand: this method is now private and text should be set only through text property, as it now calls update() automatically... am I right? clark 1 Link to comment Share on other sites More sharing options...
rich Posted July 20, 2015 Author Share Posted July 20, 2015 The Uncommented one is always the most up to date. Things started getting a bit out of hand when the Component System was added. I do not for example use BitmapText anywhere so finding mistakes is hard. I have implemented the component system here https://github.com/clark-stevenson/phaser/tree/dev and removed a bunch of old stuff. There is tons of changes and I have only been able to test it on a single game (ill try others next week). With 2.4.0 around the corner, I am concerned about massive scale breaking. I wouldn't do this right now if I were you - easier to just add in the few properties that things like Graphics needs for input events. There's very little wrong with the defs as they stand right now, I really wouldn't make such a big change this close to release imho. Link to comment Share on other sites More sharing options...
rich Posted July 20, 2015 Author Share Posted July 20, 2015 I found another issue: if you create Sprite, let's say like this:var sprite = new Phaser.Sprite(this.game, 100, 100, "MyAtlas");then its key property is not set to "MyAtlas", but to undefined. I found, that it happens in Phaser.Component.LoadTexture.prototype where this.key is overwritten with img.key, which does not exist (shloud it be this.key = img.name? Or is it correct to overwirte it here at all, as you just got img through key and you are immediately overwriting this key with some property of image?): : else { var img = cache.getImage(key, true); this.key = img.key; this.setTexture(new PIXI.Texture(img.base)); setFrame = !this.animations.loadFrameData(img.frameData, frame); } : : Problems are then with methods like: frame = this.game.cache.getFrameByName(this.key, aFrame);, which fail, as key is undefined. Yes this is now fixed in the dev branch. It was fine for images, but the key wasn't set correctly in the cache for atlas or sprite sheets, but it now is. The way it's overwritten is correct, and the property is correct. Link to comment Share on other sites More sharing options...
rich Posted July 20, 2015 Author Share Posted July 20, 2015 Nevermind, this was my fault lol I have a problem with RetroFont. Using 2.4.0rc1 and rc2 RetroFont seems to render all characters in the same position at the start of the image. The same code in 2.3.0 works as expected. I am using it in a fashion similar to below. var text="A LINE OF TEXT"; var titlefont = new Phaser.RetroFont(this.game, 'knightHawks', 31, 25, Phaser.RetroFont.TEXT_SET6, 10, 1, 1); titlefont.setText(text, true, null, 10, Phaser.RetroFont.ALIGN_CENTER, false); var i: Phaser.Image = this.game.add.image(x, y, titlefont, null, group); The Retro Font examples in the examples repo look fine to me - do they for you? I.e. is it just your code that doesn't display correctly, or do the examples break as well? Link to comment Share on other sites More sharing options...
_o0o_ Posted July 20, 2015 Share Posted July 20, 2015 The Retro Font examples in the examples repo look fine to me - do they for you? I.e. is it just your code that doesn't display correctly, or do the examples break as well?It was my fault Rich, everything is A OK with 2.4.0rc2 and RetroFonts. Also everything else I am working on works well in 2.4.0rc2. Link to comment Share on other sites More sharing options...
clark Posted July 20, 2015 Share Posted July 20, 2015 I wouldn't do this right now if I were you - easier to just add in the few properties that things like Graphics needs for input events. There's very little wrong with the defs as they stand right now, I really wouldn't make such a big change this close to release imho.Yeah exactly! I abandoned it, the restructure just jacked the whole file. However, the experiment was successfully implementing the component structure, so I should be able to compare my experiment to each of the respective classes that use them, and then from there boil it down to a handful of missing properties (ie: Graphics missing input) which can be added without ill effect. I will take a look tonight should not be too bad. Link to comment Share on other sites More sharing options...
rich Posted July 20, 2015 Author Share Posted July 20, 2015 I found issue with mouse input in IE10. Here is minimal example - it just creates clickable square. Problem is that on IE10 (or when set IE Edge, which should be IE10 in my case) the game fails in Pointer class in updateButtons method (leftButton = null). It works with IE9 or Firefox (not tried Chrome): Error.jpg<html><head> <title>Test</title> <meta charset="utf-8"> <script src="js/phaser.js"></script></head><body> <div id="content"></div> <script> var game = new Phaser.Game(800, 600, Phaser.CANVAS, 'content', { create: create }); function create() { // play button var g = this.add.graphics(0, 0); // draw a rectangle g.lineStyle(2, 0x0000FF, 0.5); g.beginFill(0xFF8080, 1); g.drawRect(this.world.centerX - 50, this.world.centerY - 50, 100, 100); g.endFill(); // input g.inputEnabled = true; g.events.onInputDown.add(function () { console.log("Pressed ..."); }, this); } </script> </body></html> This is now fixed in the dev branch too. Link to comment Share on other sites More sharing options...
mwatt Posted July 21, 2015 Share Posted July 21, 2015 Hi Rich, I'm seeing two problems in the latest Canary: The first is with sound caching, here are some example errors:Phaser.Cache.isSoundDecoded: Key "initialize" not found in Cache.phaser.js:16 Phaser.Cache.isSoundDecoded: Key "click" not found in Cache.phaser.js:16 Phaser.Cache.isSoundDecoded: Key "start_game" not found in Cache.phaser.js:16 Phaser.Cache.isSoundDecoded: Key "start_ball" not found in Cache.phaser.js:16 Phaser.Cache.isSoundDecoded: Key "attach" not found in Cache.phaser.js:16 Phaser.Cache.isSoundDecoded: Key "collide_balls" not found in Cache.phaser.js:16 Phaser.Cache.isSoundDecoded: Key "explode_bomb" not found in Cache. The second I reported during RC1, still happening now:[.WebGLRenderingContext-000000285071EDA0]RENDER WARNING: texture bound to texture unit 0 is not renderable. It maybe non-power-of-2 and have incompatible texture filtering.I see this error a lot, in fact it hits the error limit pretty quickly. Two things to bear in mind:1. This does not happen in 2.3.2. The game seems to play correctly, at least in the eyes of the user. Link to comment Share on other sites More sharing options...
rich Posted July 21, 2015 Author Share Posted July 21, 2015 @mwatt - is the render warning coming from a TileSprite or just a normal image? Do you have the minimum possible test case for it? As I don't see it at all on Canary (latest update) I'll look in to the sound cache issues now. Link to comment Share on other sites More sharing options...
rich Posted July 21, 2015 Author Share Posted July 21, 2015 @mwatt actually sorry but I can't replicate any of the sound cache issues either. I've run every audio example and a couple of test games and they all work - do you have some code you could share please? Link to comment Share on other sites More sharing options...
rich Posted July 21, 2015 Author Share Posted July 21, 2015 Ok I've fixed the WebGL issue with TileSprites and it's in the dev branch. Unless anyone comes up with any real show stoppers I'm considering this good to go. @mwatt - if you could please send me some code I'd love to know what is causing your issues above, thanks. Link to comment Share on other sites More sharing options...
JakeCake Posted July 21, 2015 Share Posted July 21, 2015 Only crashing problem I had since upgrading was this line "game.scale.setScreenSize();", but I don't even remember why I have that line, and my game seems unchanged when removing it, so no big props there. Link to comment Share on other sites More sharing options...
rich Posted July 21, 2015 Author Share Posted July 21, 2015 Yeah that method was deprecated several versions ago, so is now removed Link to comment Share on other sites More sharing options...
mwatt Posted July 21, 2015 Share Posted July 21, 2015 Rich, I don't use any TileSprites - mostly regular image sprites and some spritesheets for buttons and a couple of spritesheets for explosion animations. I haven't had time to create a minimal test case - my day job is intruding right now. As for sharing the code, I would be more than happy to do that, but the project is fairly big. Should I zip it up and send it to you? Link to comment Share on other sites More sharing options...
rich Posted July 21, 2015 Author Share Posted July 21, 2015 All I'd really need is one of the images known to be causing the problem. Or the bit of code that loads the audio. I'm suspicious this (the webgl error) is just a canary burp, quite GPU specific, as I've not seen it happen across multiple machines - does it actually happen in Chrome stable release? If not then I would put good money on it clearing itself up in due course. Link to comment Share on other sites More sharing options...
Recommended Posts