1 / 36

Création projet Android

Création projet Android. Didacticiel. Plan de leçon. LibGdx Description Communauté et support Installation Configuration dans Eclipse Exécuter une application Texture TextureRegion Animation. Libgdx : Description. Plateforme de développement de jeux et visualisation multiplateforme

sylvia
Download Presentation

Création projet Android

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Création projet Android Didacticiel

  2. Plan de leçon • LibGdx • Description • Communauté et support • Installation • Configuration dans Eclipse • Exécuter une application • Texture • TextureRegion • Animation

  3. Libgdx : Description • Plateforme de développement de jeux et visualisation multiplateforme • Elle peut s’exécuter en Windows, Linux, OS X, Android, iOS et HTML5 • Permet de travailler sur le code d’un seul projet et de le déployer sur plusieurs plateformes • Permet d’accéder au code bas niveau tel que l’accès aux fichiers, aux périphériques, OpenGL, etc.

  4. Libgdx : Description • Plusieurs APIs qui aident au développement de jeux • Rendu de sprites ou textes • Interface utilisateur • Effets audio • Algèbre linéaire et trigonométrie • JSON et XML • Etc.

  5. libGdx : Communauté et support • Forum • http://badlogicgames.com/forum • IRC • irc://irc.freenode.net/libgdx • Liste de jeux développer avec LibGdx • http://code.google.com/p/libgdx/wiki/LibgdxGames

  6. LibGdx : prérequis • Java development kit (JDK) • Eclipse • Android SDK et Eclipse ADT pour Android • Google Web Toolkit pour HTML5 • Pour faciliter le développement de projet, utiliser l’outil gdx-setup-ui.jar

  7. LibGdx : Configuration du projet • Exécutez l’outil gdx-setup-ui.jar • Sélectionnez « Create » • Name : Nom de votre jeu • Package name : Nom du package, il doit être unique • Game class : nom de votre sans espace avec majuscule au début • Destination : L’endroit où lesprojets seront enregistrés et générés • Faites un dossier pour enregistrer tous les projets • Ex : Eclipse\jeuMemoire

  8. LibGdx : Configuration du projet • Sélectionnez les projets à générer • Dans la deuxième section, assurez-vous que les librairies requises sont vertes • Sinon téléchargez en cliquant sur le bouton de téléchargement • Cliquez sur Open the generationscreen • Assurez-vous que Your configuration isvalid est indiqué • Cliquez sur Launch!

  9. LibGdx Setup UI

  10. LibGdx : Configuration du projet • À l’intérieur d’Eclipse, File  Import… • General  ExistingProjectsintoWorkspace • Aller dans le dossier qui englobe les projets • Terminer

  11. LibGdx : Les projets • 4 projets • Projet avec le code principal • Projet Android • Projet Desktop • Projet HTML

  12. LibGdx : Exécution • Android  Run as Android Project • Desktop  Run as Java Application • HTML  Run as Web Application • Ou Google  GWT Compile

  13. LibGdx : Backend • LibGdx est lié à plusieurs librairies tierces • Lwjgl : Lightweight java gaming library qui est une enveloppe (wrapper) pour les accès à OpenGL et OpenAL pour chacun des OS sauf Android • Android : APIs Android • HTML5 : Compile le code Java en javascript • Mpg123 pour la lecture MP3 • Box2D pour la physique • Etc.

  14. LibGdx : modules • Application : Exécute l’application • Files : Permet l’accès aux fichiers sur le clients • Input : Accès aux événements souris, clavier, tactile ou accéléromètre… • Audio : Fournit l’accès à l’audio en E/S • Graphics : Donne accès à OpenGL

  15. LibGdx : structure • Le flux de données d’uneapplication LibGdx est très similaireà celle de XNA • La principale différence est lafusion des méthodes Update() etDraw() qui sont représentées parrender()

  16. LibGdx : Ressource • Pour ajouter les ressources, il faut le faire dans le dossier assets du projet Android • De plus, il est préférable de séparer les types de ressource dans différents sous-dossiers • Par exemple : images, sons, …

  17. LibGdx : Configuration pour chaque projet • Même si l’on ne code principalement que dans un seul projet, chacun possède sa particularité • Desktop : Taille de la fenêtre, Titre de la fenêtre, … • Android : Désactivation de l’accéléromètre, compas, … • Dans le but d’économiser de la batterie • HTML5 : Taille de la fenêtre, …

  18. LibGdx : Le code • Trouvez une petite image PNG sur le web avec une puissance de 2 • Dans mon cas un bonhomme • Dans le projet cœur, ouvrez le fichier java • Ajoutez l’image dans le dossier assets/images du projet Android • Ajoutez un objet privé Texture pour représenter l’image téléchargée • private Texture druidTexture; • Supprimer toute occurrence de l’objet sprite

  19. LibGdx : Le code • Ajouter les méthodes privées update() et draw() • Modifiez render() pour qu’il appelle respectivement update et ensuite draw

  20. LibGdx : Type de projection • Dans tous les jeux libGdx, il y a une camera • OrthographicCamera pour le 2D • PerspectiveCamera pour le 3D

  21. Type de projection Perspective Projection orthogonale

  22. libGdx : Type de projection • Contrairement au système Windows, le point 0, 0 est situé dans le coin inférieur gauche de l’écran

  23. LibGdx : Le code • Dans Create(), instanciez l’image • cibleImage = new Texture(Gdx.files.internal("images/cible.png")); • Dans dispose(), détruire l’image • cibleImage.dispose();

  24. LibGdx : update() • On y insère le code de manipulation des objets • C’est à cet endroit que l’on gère aussi les événements tels que le clavier, la souris, le tactile, … • Lorsque la position d’un objet change, il faut rajouter camera.unproject(vector3) pour projeter les coordonnées dans le monde de la caméra

  25. LibGdx : draw() • On y insère le code d’affichage des éléments • Ajoutez le code pour afficher votre image à la position 100, 100 • batch.draw(druidTexture, 100, 100); publicvoidrender(){batch.begin();batch.draw(druidTexture, 100,100);batch.end();}

  26. Les spritessheet • Charger une texture dans un jeu est très demandant pour le système • Si le jeu devait charger 50 images pour la même animation, le jeu prendrait beaucoup de mémoire • Pour optimiser le chargement des images, on utilise une feuille d’images (spritesheet)

  27. Les spritessheet • Le système n’affichera qu’une portion de l’image pour donner diminuer la consommation des ressources • L’utilisation d’une feuille de puissance de deux est importante aussi

  28. TextureRegion • En libgdx l’équivalent du spritesheet est la classe TextureRegion

  29. TextureRegion : Code publicclassTextureFunimplementsApplicationListener{privateTexturetexture;// #1privateSpriteBatch             batch;privateTextureRegion[]regions=newTextureRegion[4];// #2@Overridepublicvoidcreate(){                texture =newTexture(Gdx.files.internal("sprite_sheet.png"));                batch =newSpriteBatch();regions[0]=newTextureRegion(texture,0,0, 32, 32);// #3regions[1]=newTextureRegion(texture,0.5f,0f,1f,0.5f);// #4regions[2]=newTextureRegion(texture,0,32, 32, 32);// #5regions[3]=newTextureRegion(texture,0.5f,0.5f,1f,1f);// #6}@Overridepublicvoidrender(){batch.begin();batch.draw(texture,0,0,64,64);// #7for(int i =0; i <regions.length; i++){batch.draw(regions[i],75*(i +1),100);// #8}batch.end();}// … le reste est omis... //} Méthodenormalisée

  30. TextureRegion • Si la feuille a des textures de dimension identique, il est possible de diviser automatique la feuille en utilisant la méthode « split » • Syntaxe TextureRegion [][] regions = TextureRegion.split (texture, 64, 64);

  31. Animation • Une animation n’est qu’une succession d’images fixe qui s’affiche à un rythme non-perceptible pour l’œil humain

  32. Animation • 30 ips 0,033 ms/image • Principe est qu’à chaque fois que l’intervalle est terminée, il faut afficher l’image suivante

  33. Animation 1 et 2 : Indique le nombre d’images horizontales et verticales 3 : Objet d’animation défini par libGdx 8 : Temps d’affichage de l’image courante 10 : Division de la feuille 13 : Initialisation du temps 14 : Efface l’écran à chaque boucle 15 : Calcule du temps d’écoulement 16 : On indique le temps actuel de l’animation et si l’on boucle

  34. Entrées • Gdx.input permet d’aller récupérer des informations tels que les touches de clavier ou encore la position XY du touché

  35. Exercice • À l’aide des flèches du clavier, faites déplacer un bonhomme animé dans l’écran • À l’aide de la rotation de la tablette, faites pivoter le bonhomme. • Quelle est la fonction pour trouver la rotation de la tablette?

  36. Référence • Toutes les références de cette présentation ont été prise sur le site officiel de LibGdx

More Related