Pages: 1
Bonjour,
je suis archi débutant en Irrlicht, je développe mon premier projet actuellement: un pacman.
J'ai déjà un niveau constitué de plusieurs petits murs carrés et un pacman qui bouge à l'appui des touches directionnelles, seulement il traverse les murs et les pastilles.
Quelq'un peut-il me donner des orientations pour faire disparaitre les pastilles quand il les touche et l'empecher de traverser les murs?
En fait les murs sont un peu plus larges que le pacman et au départ il est à égale distance des deux murs qui l'entourent. Comment faire pour qu'il reste centré?
J'espère que je suis assez clair, et un grand merci à tous ceux qui me consacreront leur temps.^
Hors ligne
Si je devais créer un pacman avec plusieurs niveaux, je créerais mes map dans un fichier ascii avec des +, des - et des | pour représenter les murs, j'ajouterais un O pour noter l'endroit ou apparait le pacman, un F pour l'endroit ou apparaissent les fantômes, des . pour les pastilles, des * pour les pastilles spéciales et un S pour l'endroit où doit apparaître le spécial. Ensuite, gère les déplacements de ton pacman en lui faisant parcourir des lignes ou des colonnes. Plus exactement : Ne le fait pas déplacer par le joueur. Le joueur donne le sens du déplacement, tu fait bouger ton pacman dans le sens donné et il s'arrête s'il rencontre un obstacle.
Exemple de fichier texte :
+------------+----------------------+ |......O.....|.......*..............| |.+--------+.|.+------------------+.| |.|........|.|.|..................|.|
A partir de ça, une fois chargé dans un tableau 2d, tu construit ton niveau. Et tu te sert du tableau 2d pour gérer les déplacements. N'utilise pas les collisions.
Fait simple pour tes débuts. Tu pourras toujours donner une arme a ton pacman plus tard et tu pourras gérer les collisions entre les balles et les ennemis !
Hors ligne
Ok merci, c'est comme ça que je fait pour charger le niveau, c'est un tableau d'entier que je parcours puis avec un switch je dis quel élément placer. Dans un premier temps, j'aimerais que quand il touche une pastille elle disparaisse avec setVisible(false), j'ai essayé en comparant les "getPosition()" mais ça donne rien et avec les collisions je suis perdu. Tu pourrais m'éclairer un peu au sujet des collisions?
Dans ma tête c'est magique, ça fait if(collision) alors pastille->setVisible(false)
et je sais pas par où commencer.
Encore merci à ceux qui lisent ^^
Hors ligne
C'est presque ça.
Regarde l'un des exemple irrlicht, celui qui montre les collisions. En gros, tu lance un rayon depuis un node vers une direction. Si le rayon rencontre un objet, il renvoi le scenenode de l'objet en question (ou le pointeur du sceneNode), tu n'as plus qu'a agir avec ce sceneNode. Je ne te met pas de code parce que d'une part je ne suis pas chez moi et je ne peux donc pas copier/coller (j'ai la fleme ! ) et d'autre part il sera bien plus instructif pour toi de décortiquer la démo pour comprendre comment ça marche. Si après ça tu n'y arrive toujours pas il n'y a pas de blèmes, nombreux ici sont ceux qui pourront te répondre.
Hors ligne
Pages: 1