ecv Posted July 1, 2016 Share Posted July 1, 2016 Can I use different sprite sheets in one sprite? Looks like a sprite will only use one, then you'd define your animations by setting the frame range within that sprite sheet. But that's not very comfortable, so can I define different animations that use different sprite sheets? Thanks Link to comment Share on other sites More sharing options...
drhayes Posted July 1, 2016 Share Posted July 1, 2016 Not currently, no. You could investigate using a sprite atlas instead of sprite sheet for more efficient packing/better memory use. ecv 1 Link to comment Share on other sites More sharing options...
rich Posted July 1, 2016 Share Posted July 1, 2016 This isn't possible, no. It's under discussion as a feature request here: https://github.com/photonstorm/phaser/issues/2598#issuecomment-229136339 ecv 1 Link to comment Share on other sites More sharing options...
ecv Posted July 1, 2016 Author Share Posted July 1, 2016 (edited) Thanks for all the answers. I guess I'll do it the uncomfortable way then I still have no idea what atlas are exactly so... Also, is using different sprites for a given character a good idea? I haven't given it much thought, but maybe it's a pretty common thing to do. To be honest, aside from fiddling a little with the provided examples, I have hardly coded anything with Phaser yet... Thanks for the link. I'm tempted to add to such request, but it stands to reason one should first understand what the concept of a sprite and its extents really involves, so I guess I'll refrain from asking for something I don't genuinely understand to start with For the time being I'm for the most part considering a sprite as a character, and maybe that's not a good idea... Edited July 1, 2016 by ecv typo Link to comment Share on other sites More sharing options...
mattstyles Posted July 1, 2016 Share Posted July 1, 2016 A sprite atlas maps the individual sprites within a sprite sheet to some meta, usually to define the name of a frame and its bounds. Whereas a sprite sheet is a rigid, ordered collection an atlas is defined by its meta-data. A sprite sheet can be iterated over as it is consistent i.e. it contains only 32x32 sprites so you know there is a new one every 32px, you'd have to add another system on top for picking specific ones. An atlas contains lots of arbitrarily sized sprites (or can contain, you can use regular squares or rectangles if you want) and you reference them by name. For example, A sprite sheet is imperative, you might assign a sprite the graphic at 1, 1, given a 32x32px sprite sheet you'd grab the graphic at 32, 32 to 64, 64 (32 x 1, 32 x 1, 32 x 2, 32 x 2). An atlas is a little more declarative, each frame is named so you might assign a sprite the frame labelled 'run', the meta-data describes the 'run' frame to be at 32,32 to 64,64. The beauty of the atlas is that each sprite can have different characteristics. It's like the difference between an array and a tuple in structured languages, the sprite sheet contains only 1 type, whereas the atlas can contain any type. There are other advantages of an atlas such as minimising dead-space in a texture, known as packaging. It's not a Phaser specific term, have a read up on texture atlases. Link to comment Share on other sites More sharing options...
symof Posted July 2, 2016 Share Posted July 2, 2016 http://phaser.io/examples/v2/loader/load-texture-atlas http://phaser.io/examples/v2/loader/load-starling-atlas http://doc.starling-framework.org/current/ http://www.joshmorony.com/how-to-create-animations-in-phaser-with-a-texture-atlas/ These are pretty good starting resources. The last link for the tutorial is pretty well explained also, and it should help you on what direction to take. BUT. Inflating and deflating files takes resources. Having one huge compressed file might not be the best choice in a mobile game for instance. I personally like the "normal" spritesheet, but atlas do use space efficiently. Basically if you're using different sized sprites you should atlas, but you could also use different spritesheets for different sizes and chars/items/objects. Link to comment Share on other sites More sharing options...
Recommended Posts