https://www.leshylabs.com/apps/sstool/https://www.leshylabs.com/apps/sstool/
I) GRAPHISME :
Un éditeur de niveaux 2D est nécessaire : Tiled Map Editor
Cet éditeur permet de créer des fichiers TMX
Un fichier TMX est constitué de tuiles (tile) regroupées dans une feuille (tile sheet)
Pour créer des tuiles (exemple 32 pixels par 32 pixels) créez un fichier de dimension ntuiles (exemple 32 tuiles par 32 = définition 1024 x 1024 pixels) à l’aide de GIMP. GIMP permet de définir une grille de 32×32 pixels (Image/Guide pour définir la grille puis Affichage/Afficher Grille pour l’afficher)
Créez une nouvelle carte « tile sheet » et choisissez soit ajoutez un tileset externe (fichier tsx) soit créez le fichier tsx à partir d’une image : fichier nouveau -> nouveau tileset puis « basé sur l’image, allez chercher l’image et définir la couleur de transparence grâce à la pipette.
Les calques permettent de juxtaposer au fond des images…
- Utilisation de la carte :
2) Déplacement sur la carte :
The InputProcessor is the interface that allows you to define what to do when some action (like for example touching screen) is being performed.
So the first thing is to implement the interface in your class:
public class CameraTestMain extends ApplicationAdapter implements InputProcessor
then in create() method set the class as InputProcessor by calling:
//create() method
Gdx.input.setInputProcessor(this);
The second one is to implement touchDragged method. Notice that it’s x and y parameters are just relative to last pointer position so to get actual position of pointer you should save it in some global variable in touchDown method. Of course you do not need here the absolute pointer position since you can just modify camera position instead of setting this.
@Override
public boolean touchDragged(int screenX, int screenY, int pointer) {
float x = Gdx.input.getDeltaX();
float y = Gdx.input.getDeltaY();
camera.translate(-x,y);
return true;
}
To get more information take a look at this tutorialRemember to call camera.update()
at the beginning of render() method!
a) Spirite :
Création :
Définir
SpriteBatch sb; Texture texture; Sprite sprite;
Dans create :
sb = new SpriteBatch(); texture = new Texture(Gdx.files.internal("pik.png")); sprite = new Sprite(texture);
Dans render :
sb.setProjectionMatrix(camera.combined);//Le spirite reste là où il est clické sb.begin(); sprite.draw(sb); sb.end();
Positionnement sur click :
@Override public boolean touchDown(int screenX, int screenY, int pointer, int button) { Vector3 clickCoordinates = new Vector3(screenX,screenY,0); Vector3 position = camera.unproject(clickCoordinates); sprite.setPosition(position.x, position.y); return true; }
Code source pour cet exemple : https://app.box.com/s/ewyycbmi2cg5oimxqr7htx7y2vpnkeca
Ressources (tuiles et images) :
http://www.heroscribe.org/theferret1/tilez.html
https://xtreme1992.deviantart.com/favourites/44194111/Tilesets
https://www.gamedeveloperstudio.com/index.php?orderby=priceup&resultsperpage=25
Manipulation des images :
II) ANIMATIONS :
Utilisation de Box2D, GitHub: here.
Ce moteur d’effets « physiques » fonctionne selon le processus suivant :
- Description de tous les éléments « physiques » de votre jeux incluant les volumes, la vitesse, la masse etc…
- Indication au moteur de la période d’actualisation de l’action
- Le moteur calcule les effets
- Mise à jour du jeux en fonction des paramètres calculés.
Pour utiliser le moteur Box2D il faut lors de la création du jeux cocher la case Box2D
Code source jusqu’à part3 = testanim