#0 

15-06-2007 17:08:27

franklin
Petit nouveau
Date d'inscription: 15-06-2007
Messages: 2

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


#1 

15-06-2007 17:45:23

diOxy
Abonné
Date d'inscription: 10-10-2006
Messages: 153

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 :

Code:

+------------+----------------------+
|......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 ! wink

Hors ligne


#2 

15-06-2007 17:51:59

franklin
Petit nouveau
Date d'inscription: 15-06-2007
Messages: 2

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


#3 

15-06-2007 18:37:47

diOxy
Abonné
Date d'inscription: 10-10-2006
Messages: 153

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 ! wink ) 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


Options Liens officiels Caractéristiques Statistiques Communauté
Corrections
irrlicht
irrklang
irredit
irrxml
xhtml 1.0
css 2.1
Propulsé par FluxBB
Traduit par FluxBB.fr
881 membres
1427 sujets
11117 messages
Dernier membre inscrit: Bidule
43 invités en ligne
Aucun membre connecté
RSS Feed