https://libgdx.badlogicgames.com/tools.html
Texture Packer
https://code.google.com/archive/p/libgdx-texturepacker-gui/downloads
Génère un fichier d’image et un fichier d’index (pack) pour retrouver les coordonnées des fichiers images.
Dans LibGdx pour utiliser les images :
private TextureAtlas atlas;
Dans le constructeur :
atlas=new TextureAtlas("Boat.pack");
Puis ajouter une fonction :
public TextureAtlas getAtlas(){ return atlas; }
Appelez la classe affichant le Spirite avec
player = new Classe_Spirite(world, this);
Et pour retrouver un Sprite dans le fichier :
public ClassSprite (World world, PlayScreen screen){ super(screen.getAtlas().findRegion("ImageSprite")); this.world=world; defineSprite(); SpriteStop=new TextureRegion(getTexture(),0,0,32,22); setBounds(0,0,32/PPM,22/PPM); setregion(SpriteStop); }
où SpriteStop => private TextureRegion SpriteStop;
Dans render
game.batch.setProjectionMatrix((gamecam.combined)); game.batch.begin(); player.draw(game.batch); game.batch.end()
Afin d’associer Box2D au Spirite on positionne le sprite sur les coordonnées de Box2D
public void update(float dt){ setPosition(b2body.getPosition().x-getWidth()/2, b2body.getPosition().y-getHeight()/2); }
Pour gérer l’animation du Sprite :
public enum State {FALLING, JUMPING, STANDING, RUNNING}; public State currentState; public State previousState; private Animation spriteRun; private Animation spriteJump; private boolean runningRight; private float stateTimer;
Dans le constructeur
currentState=State.STANDING; previousState=State.STANDING; stateTimer=0; runningRight=true; Array<TextureRegion> frames = new Array<TextureRegion>(); for(int i=1; i<6;i++) frames.add(new TextureRegion(getTexture(),i*28,0,28,22)); spriteRun=new Animation(0.1f,frames); frames.clear();
Dans Update :
xxxx