29
2010
[Tutoriel Andengine] Partie 1 – Mes premiers pas avec AndEngine
Après le développement d’application sur la plateforme Android, nous allons nous pencher sur la création des jeux pour notre plateforme favorite, depuis l’apparition du SDK 1.6 Google à intégrer l’Opengl ES (Opengl Embedded System) ; grâce à cela nous allons pouvoir créer des jeux 2D et 3D sur Android.
Andengine est un moteur de jeu, c’est une surcouche qui permet la création d’applications utilisant le module Opengl d’Android, ce qui nous permettra de créer des jeux sans travailler directement avec Opengl ES sans y toucher directement. Nous verrons à travers divers chapitres les méthodes pour créer un jeu et l’améliorer.
Pré-requis
Tout d’abord, nous devons télécharger la bibliothèque AndEngine disponible sur le site officiel, deux possibilités s’offrent à nous :
1) Télécharger les sources et les mettres dans un fichier .jar
http://code.google.com/p/andengine/
Suivre le tutoriel http://andenginefromscratch.blogspot.com/2011/06/off-topic-article-how-to-stay-up-to.html
Nos premiers pas
Nous allons créer tout d’abord un projet sous Android 1.6, puis nous allons modifier l’architecture du projet pour le rendre compatible avec notre moteur de jeu.
Dans notre projet, nous allons rajouter un répertoire nommé “Lib” et y placer notre bibliothèque :
Une fois ceci fait, faites un clic droit sur la bibliothèque puis “Build path” > “Add to build path“.
Désormais, le moteur AndEngine est lié à notre projet.
Nous allons ajouter un deuxième répertoire à notre architecture, celui-ci s’appellera “Gfx” et sera placé dans le répertoire “assets“, il contiendra toutes les images liées à notre jeu.
Une activité bien différente
Dans nos anciens projets, nous étions habitués à travailler avec des activités héritant du type Activity ou encore ListActivity. Dans un projet de type AndEngine, un autre type d’activité vient alors remplacer ce que nous avons connu, notre activité va donc hériter du type BaseGameActivity.
Ouvrez la classe MonJeuActivite et changez l’héritage en BaseGameActivity, il vous faudra supprimer la méthode surchargée onCreate et implémenter les méthodes obligatoires. Si vous oubliez de le faire, Eclipse soulignera en rouge MonJeuActivite, passez le curseur dessus et faites un “Add unimplemented methods“.
Eclipse se charge d’implémenter les méthodes manquantes sans que vous n’ayez rien à faire.
On se retrouve désormais avec une classe comme celle-ci :
public class MonJeuActivite extends BaseGameActivity {
@Override
public void onLoadComplete() {
// TODO Auto-generated method stub
}
@Override
public Engine onLoadEngine() {
// TODO Auto-generated method stub
return null;
}
@Override
public void onLoadResources() {
// TODO Auto-generated method stub
}
@Override
public Scene onLoadScene() {
// TODO Auto-generated method stub
return null;
}
}
Si vous êtes un temps soit peu familié avec la langue de Shakespeare, vous comprendrez rapidement l’utilité de ces méthodes :
• onLoadComplete : Une fois le chargement terminé
• onLoadEngine : Au chargement du moteur
• onLoadResources : Au chargement des ressources (images, sons, etc…)
• onLoadScene : Au chargement de notre scène de jeu
Pour le moment rien de très difficile à comprendre, le moteur du jeu se charge d’exécuter les méthodes réécrites que nous avons ci-dessus.
Nous allons avoir besoin de trois variables : la première sera notre camera, la seconde et la troisième seront la taille de la camera. La camera servira en quelques sorte à définir notre champ de vision dans le jeu.
private Camera camera; private static final int CAMERA_LARGEUR = 480; private static final int CAMERA_HAUTEUR = 320;
Ensuite, nous allons travailler dans notre méthode onLoadEngine qui permet de définir les paramètres pour le moteur : s’il est en plein écran, la taille, lui affecter une caméra, ….
@Override
public Engine onLoadEngine() {
camera = new Camera(0, 0, CAMERA_LARGEUR, CAMERA_HAUTEUR);
return new Engine(new EngineOptions(true,
ScreenOrientation.LANDSCAPE,
new RatioResolutionPolicy(CAMERA_LARGEUR, CAMERA_HAUTEUR),
camera));
}
On commence par initialiser notre caméra prenant en paramètres les coordonnées X et Y de départ et d’arrivée, ensuite nous allons retourner notre moteur, celui-ci prend en paramètres un OptionsEngine qui lui même à comme paramètres ceci :
EngineOptions(boolean pFullscreen, ScreenOrientation pScreenOrientation, IResolutionPolicy pResolutionPolicy, Camera pCamera)
Le premier sert à déterminer si le jeu est en plein écran ou non, le deuxième s’il est en mode portrait ou paysage, et le troisième, la résolution et enfin notre caméra.
Pour finir, nous allons rajouter une scène à afficher dans notre jeu, dans la méthode onLoadScene nous allons faire ceci :
@Override
public Scene onLoadScene() {
final Scene scene = new Scene(1);
return scene;
}
Une Scene prend en paramètre le nombre de calques, ici le nombre sera de un.
Lancez notre programme et vous devriez voir apparaitre un fond noir, mais ce n’est que le début.
Permissions
Ajoutez la permission WAKE_LOCK à votre android manisfest, sinon vous verrez une erreur se produire durant les phases de débogage (DDMS)
Dans le chapitre suivant, je vous apprendrez à dessiner une ligne, un carré et même afficher une image !
Sources de la formation : FormationAndEngine
A bientôt pour la suite
Articles relatifs
-
http://SiteWeb Alex R.
-
http://www.golemcreation.com vincent
-
http://www.lovelive.fr Lovelive
-
http://SiteWeb kevlemecsympa
-
ZackaruS
-
http://www.facebook.com/michel.guadeloupe Blixis Facultatif
Survie
Catégories
- Andengine (5)
- Android (20)
- Application (1)
- Articles (1)
- Non classé (2)
- Programmation (30)
Nuage
Commentaires récents
- Paumé dans [Tutoriel Honeycomb] Partie 1 – Les actions bars
- Acesyde dans [Tutoriel android] Partie 3 – Une petite intention ?
- paul dans [Tutoriel Honeycomb] Partie 1 – Les actions bars
- Sne dans [Tutoriel android] Partie 3 – Une petite intention ?
- Vivien-57 dans [Tutoriel Android] Partie 13 – L’appareil photo
Archives
- janvier 2012 (2)
- novembre 2011 (1)
- octobre 2011 (3)
- juillet 2011 (3)
- juin 2011 (1)
- décembre 2010 (4)
- octobre 2010 (3)
- septembre 2010 (5)
- juillet 2010 (8)
- avril 2010 (6)

Un article de








