Sprite practical question...

Hello,

First at all, thanks to this forum to being there =)

I’m not new at all in Java Programming but totally new in Java Game Dev.
I just try to create a simple game with a Yoshi & a world with the libgdx lib (jogl)

But I’ve a problem.

So I’ve some sprites in a texture file to make an animation.
For ex, I use 6464 sprites in two 51264 textures for the walk animation. In each 64*64, I’ve a sprite with Yoshi in a certain position. Each time the game advance, we choose the next sprite… (as described into the libgdx game). I’ve a texture to Walk from left to right and a texture to Walk from right to left. Why ? Because I didn’t centered the sprites but aligned them at the bot-right position. So I can’t flip them. I think it’s not a good solution… but it works.

But my problem is that I want the Yoshi to “stuck out his tongue” (I call this “Slurp”) to right & to left. For the left slurp, it’s ok because the sprite is aligned at the bot-right corner. But to the right… It cause the Yoshi to go back.
I thought about putting the Yoshi in the middle of the sprite but Yoshi+tongue take more than 32pix… That I can’t get him in the middle to be able to use symmetry or…

I don’t know if I can be understood… Sorry ^^

And I don’t really want to expand all my sprites to 128*128 ? Its a bit dirty no? Please throw a light on that ^^

PS: I wanted to put an offset on the drawing method but Jogl have strange axis/scale… Failed to find how to put a PixelOffset.

=> imageshack.us/photo/my-images/577/yoshislurpleft.png
=> imageshack.us/photo/my-images/834/yoshislurpright.png

Here is my class if you want to but I think you won’t need it… And it’s a bit unclean cause it’s tests : pastebin.com/dHwhGha6
Thanks !

I would expand all your sprites to be large enough for all animations, then use libgdx’s TexturePacker to pack the sprites with whitespace stripping. This way the sprites are packed to take up as little space as possible, but will be drawn as if they still had their whitespace. Flipping the whitespace stripped images is supported.

Hello,

Thanks for your answer.
You mean, I should separate all my yoshi sprites into single files (ie yoshi_walk_1 yoshi_walk_2 etc…).
Then all this files to a folder (yoshi/) and use a texture packer?

That what I did manually but thanks, I now know that we can do that dynamically.

I’ll try that in few hours.

Hello,

Thanks. I used TexturePacker and adapted my code.
I divided all my sprites to single files (yoshi-slurp_1, yoshi-slurp-2… etc) then used TexturePacker.

I define only one the images (ie, slurp to the right img) and use .flip to get it to the left. flip makes a symmetry… Since I’ve centered the foots of my yoshi, that shouldn’t cause any problems. That doesn’t seems to cause problem with walk action but with tongue stuck action…

When WhitespaceStrip is False, That’s works, I can get my yoshi walks… stucks his tongue in both direction.
When WhitespaceStrip is True, That doesn’t work. My yoshi walks in both direction but he can’t stuck his tongue in a direction correctly…

I don’t know why…
Maybe because AtlasRegion store the whitespace informations but don’t apply it then the cast to TextureRegion can’t be done…
But Animation takes TextureRegion constructor parameter only.

Packed stripped: http://imageshack.us/photo/my-images/849/game1copie.png/
Packed nonstripped: http://imageshack.us/photo/my-images/836/game1le.png/
Source: http://pastebin.com/00CgtrC6

I can provide you the entire sources if needed…

Thanks!

That is correct. You must use sprites that you get from TextureAtlas to draw your yoshi. The Sprite you get will be an AtlasSprite, which handles drawing the whitespace stripped image. Animation is only a few lines of code, copy and paste it and adapt to use Sprite. Most games need their own Animation class anyway, so not much time has been spent on a fancy one for libgdx.

Thanks for all ;D

See you !