IMTLille-Info / fa17-projet2

Groupe 1 du jeudi
2 stars 1 forks source link

zones franchissables #12

Closed caronpe closed 9 years ago

caronpe commented 9 years ago

Effectuer un changement de zone lors du passage sur une zone franchissage (porte)

florentvitse commented 9 years ago

J'étais déjà dessus, je finis et je push :)

ET-AD commented 9 years ago

Je suis également dessus mais en galère..

caronpe commented 9 years ago

Oki! N'oubliez pas de créer des issues avant de coder sinon on va merdouiller.

florentvitse commented 9 years ago

D'ailleurs question : une sortie est un OBSTACLE FRANCHISSABLE ou un type d'obstacle EXIT ? Deuxième question : les obstacles sont liés à la carte donc c'est un attribut d'une carte, ça serait plus facile comme ça nan ?

caronpe commented 9 years ago

Je pense qu'il est plus judicieux de créer un nouvelle objet Exit dérivant de Obstacle (ou obstacle franchissable). Pour la deuxiéme question je pense qu'il est judicieux d'inclure un attibut à Map sous forme d'une liste d'objet Exit. (mais bon je suis pas expert en slick2d donc je suis pas le mieux placé pour répondre).

caronpe commented 9 years ago

Aprés il faut voir si cette fameuse liste est vraiment utile, puisque si le changement de zone se déroule au moment du passage sur l'objet Exit je doute de l'utilité de le référencer dans l'objet Map.

florentvitse commented 9 years ago

Oui je créerai l'objet Exit qui dérive d'obstacle (car j'aurais besoin d'attribut non nécessaire dans un Crossable) Cette liste va enfaite m'aider, d'une part à savoir dans quel Map on est, deuzio - à dire vers quel map je me dirige & troizio - affecter des nouvelles coordonnées au personnage après le changement de carte [l'exit est en haut sur la première mais on arrive en bas de la seconde]

VALIDÉ ?

ET-AD commented 9 years ago

Je ne pense pas que c'est la bonne solution.

caronpe commented 9 years ago

Je pense que ces informations sont à stocker dans l'objet Exit directement. En gros: if (Prochaine case == Exit){Déplacer à Exit.Destination}

ET-AD commented 9 years ago

Les paramètres de destination doivent être stocké dans les propriétés des objets (cf. Tiled), non?

exemple :

x = Float.parseFloat(map.getObjectProperty(0, objectID, "dest-x", Float.toString(x)));

florentvitse commented 9 years ago

Oui c'est toute à fait ma pensée PE Étienne : Ça c'est le tuto car il dessine des objets vectoriels, je n'ai pas trouvé la même chose pour associer des données sur une case du quadrillage qui compose la carte. C'est pour ça que j'ai élaboré cette solution

ET-AD commented 9 years ago

J'ai eu le même soucis que toi. En fait il faut télécharger une version plus ancienne de Tiled pour retrouver le même système.

Par contre je comprends pas, actuellement la "porte/sortie" de la première map ne fonctionne pas chez moi. Tu es bloqué comme moi ou c'est censé fonctionner ?

florentvitse commented 9 years ago

Tu peux me dire le numéro de version ?

Non le système ne fonctionne pas, je l'ai pas encore pusher car pas fini :)

ET-AD commented 9 years ago

Tu as push les modifs avec la class map... tout mon code n'est plus à jour maintenant... c'est assez problématique.

ET-AD commented 9 years ago

J'arrive à changer de map avec les triggers (+tes modifs de Map) mais normalement tu modifies la structure du code une fois que cela fonctionne ! pas pendant que l'on code les modifications car là cela change tout !

Mon code fonctionne mais je n'arrive pas à revenir sur la map d'origine soit un problème avec ton index, soit c'est mon trigger.C'est quand même une avancée.

Edit : Dsl double post

Edit 2 : Je pense qu'il faudrait revenir en arrière. La classe "Map" complique tout et n'apporte absolument rien...

florentvitse commented 9 years ago

Je vais pusher mes modifs là, tous fonctionne tu vas voir, c'est ma partie :)

florentvitse commented 9 years ago

Voilà c'est fait et ça fonctionne :+1:

ET-AD commented 9 years ago

c'est un peu réinventer la roue...

florentvitse commented 9 years ago

Pourquoi ? On attribue des Exits aux salles et voilà, de même tu pourras rajouter des Crossable(s) et en jouant sur leur attribut isCrossable, une fois il passe, une fois il passe pas.

ET-AD commented 9 years ago

A quoi sert "avantPlan" dans les maps ? s'il est décoché on peut le supprimer non?

florentvitse commented 9 years ago

Les avantPlan sont des claques qui vont au-dessus du personnage quand il passe dedans, on joue sur la transparence, tu peux voir un vrai avantPlan dans la première Map avec l'herbe par exemple. Même si il n'y a rien dessus, il faut garder cette hiérarchie pour les render :)

ET-AD commented 9 years ago

C'est réinventer la roue dans le sens où on nous propose une méthode avec "trigger" qui fonctionne avec un même code pour l'ensemble des maps.

Là avec ta méthode il faut rajouter le code de toutes les sorties et toutes les maps du jeu, sans compter les nouvelles classes, méthodes et attributs... pas franchement optimal je trouve dans le sens ou il y avait des outils déjà existant. Il fallait prendre le temps d'apprendre à les utiliser correctement.

EDIT : Ok pour les avantPlan

florentvitse commented 9 years ago

Je l'ai lu Étienne, j'ai lu les tutos mais cette solution ne nous intéresse pas dans le sens où là, il est obligé de faire ça car il se déplace au pixel près alors que nous, c'est à la case près déjà. Ensuite le code est le même pour chaque EXIT, peu importe la map, c'est la méthode getExitByCoordinate. Tous le code, les attributs, méthodes et tout comme tu dis, sur le tuto, il les fait dans l'éditeur de Map finalement donc il a déporté le problème en quelque sorte.

EDIT : Si tu veux rajouter une exit dynamique, avec ma solution, tu peux. Sur le tuto, faut retravailler la Map, pas franchement idéal....