Bienvenue, Invité. Merci de vous connecter ou de vous inscrire.
Avez-vous perdu votre e-mail d'activation ?

Auteur Sujet: collision tilemaping  (Lu 6564 fois)

0 Membres et 2 Invités sur ce sujet

Jamese

  • Jr. Member
  • **
  • Messages: 72
    • Voir le profil
collision tilemaping
« le: Août 31, 2014, 01:45:04 pm »
Bonjour depuis plusieurs semaines j'ai commencer à créer un petit jeux à la Zelda ( on a tous essayer dite pas le contraire ), vous me dirais pourquoi autant de temps mais bon entre les graphismes, l’histoire et j'en passe sa en fait des choses. Et en ce moment je commence a coder le jeux. Mais voila que je me heurt à un petit problème, j'arrive très bien a faire un tilemap mais la ou je "bloque" c'est pour gérer les collisions. J'ai trouver plusieurs méthode, mais soit je n'arrive pas à les adapter, soit elle ne fonctionne pas. J'ai donc ouvert ce post pour que vous puissiez m'aider ou me donner quelque astuce que vous auriez pu utiliser.

   => j'ai essayer le tuto de fred sur open mais je n'ai pas réussi, et pour mon tilemaping j'utilise la méthode de Laurent qui pour moi est la plus simple.


Merci a vous et de vos réponses. Je vous souhaite une bonne journée 

AnselmeSfml

  • Jr. Member
  • **
  • Messages: 78
    • Voir le profil
    • E-mail
Re : collision tilemaping
« Réponse #1 le: Août 31, 2014, 09:46:30 pm »
Salut à toi!

"Un jeu à la zelda"... Tu sais des zelda il y en a eu en 2D, en 3D, un mix des 2, donc on ne peut pas savoir de quel type de jeu tu parles. Si c'est un jeu de type pokemon:

Déjà, tu vas devoir gérer les déplacements de ton personnage de façon à qu'il ne pourra s'arrêter que lorsqu'il sera au beau milieu d'une case de ton jeu. Ensuite, dès qu'il voudra se déplacer tu devras:

1. A l'aide d"une petite algo, trouver sur quelle case il sera après ce déplacement. (En fonction de sa position à l'écran.)
2. Si cette case est une case ou il à le droit de se déplacer, alors tu autorises. Autrement, tu n'autorises pas.

Et voilà! C'est aussi simple que ça. C'est d'ailleurs la technique que pokemon utilise. Je parle pour le mode de déplacement non libre.

Bonnes fin de vacances.

Jamese

  • Jr. Member
  • **
  • Messages: 72
    • Voir le profil
Re : collision tilemaping
« Réponse #2 le: Août 31, 2014, 10:01:54 pm »
ok ok merci bien, je vais essayer sa demain. Je vous tien au courant 

Jamese

  • Jr. Member
  • **
  • Messages: 72
    • Voir le profil
Re : collision tilemaping
« Réponse #3 le: Septembre 01, 2014, 11:03:59 am »
Bonmatin.
Pour faire mes collisions javais penssais à faire un tableau de bool comme celui la :
 {
        0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
        0, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
        1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0,
    };
qui représenterais ma map et ou les 1 serais les murs et les 0 le vide ( on passe ).
Ce tableau représenterais la map. mais après c'est la où mon "algo" rentre en jeux :
=> récupérais la pos de mon joueur
=> restreindre le test de tiles a 2 ou 3 autour de luis
=> voir si c'est tiles sont un 0 ou un 1.

le pensez-vous pertinent ou il faut que je l’améliore.

AnselmeSfml

  • Jr. Member
  • **
  • Messages: 78
    • Voir le profil
    • E-mail
Re : collision tilemaping
« Réponse #4 le: Septembre 01, 2014, 11:56:25 am »
Hum... J'ai rien compris... Quel est ton problème?

Jamese

  • Jr. Member
  • **
  • Messages: 72
    • Voir le profil
Re : collision tilemaping
« Réponse #5 le: Septembre 01, 2014, 12:02:36 pm »
non c'étais pour te montrer mon algo  :) . apres je l'ai pas encore mis en forme je vais essayer cette aprem on va bien voir si il marche.

AnselmeSfml

  • Jr. Member
  • **
  • Messages: 78
    • Voir le profil
    • E-mail
Re : collision tilemaping
« Réponse #6 le: Septembre 01, 2014, 12:09:58 pm »
Oui mais justement avec toutes les fautes d'orthographe et aucune ponctuation je n'ai pas compris. Réexplique moi et je te dirais si c'est ça ;)

Jamese

  • Jr. Member
  • **
  • Messages: 72
    • Voir le profil
Re : collision tilemaping
« Réponse #7 le: Septembre 01, 2014, 01:01:04 pm »
j'ai écrit sa vite fait ce matin la tête dans les chaussettes. Enfin bref voici mon idée :

Dans une fonction booléen :

on récupère la position de mon joueur.
Puis on restreins le test des tuiles à tester de 1 ou 2 autour de mon joueur ( double for )
On vérifie les tuiles soit 1 ou 0 ( avec un If )
Et de la on retourne true si il y a collision ( en occurrence si c'est une tuile "1" ) sinon on retourne false 


AnselmeSfml

  • Jr. Member
  • **
  • Messages: 78
    • Voir le profil
    • E-mail
Re : collision tilemaping
« Réponse #8 le: Septembre 01, 2014, 01:02:53 pm »
Oui c'est à peu près ça: la ligne 2 n'est toujours pas très explicite mais je suppose que tu veux tester la case juste devant le joueur (ou derrière tout dépend du déplacement voulu). Si c'est ça, tu peux commencer à coder!

Jamese

  • Jr. Member
  • **
  • Messages: 72
    • Voir le profil
Re : collision tilemaping
« Réponse #9 le: Septembre 01, 2014, 01:20:55 pm »
c'est exactement sa.
Merci je vais coder je te tien au jus  :)

AnselmeSfml

  • Jr. Member
  • **
  • Messages: 78
    • Voir le profil
    • E-mail
Re : collision tilemaping
« Réponse #10 le: Septembre 01, 2014, 01:41:09 pm »
ça marche

Jamese

  • Jr. Member
  • **
  • Messages: 72
    • Voir le profil
Re : collision tilemaping
« Réponse #11 le: Septembre 01, 2014, 02:07:00 pm »
^^ tu va peut être rire mais je ne me rappel plus comment on déclare un tableau de bool
J'ai fait sa mais le compilo me jette
bool map_collision [] =
    {
        1,1,1,1,1,1,1,1,
        1,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,1,
        1,0,0,0,0,0,0,1,
        1,1,1,1,1,1,1,1,
    };

AnselmeSfml

  • Jr. Member
  • **
  • Messages: 78
    • Voir le profil
    • E-mail
Re : collision tilemaping
« Réponse #12 le: Septembre 01, 2014, 02:27:36 pm »
C'est bien comme ça.

Jamese

  • Jr. Member
  • **
  • Messages: 72
    • Voir le profil
Re : collision tilemaping
« Réponse #13 le: Septembre 01, 2014, 02:38:47 pm »
ok je pige plus rien sa viens de marcher j'ai rien toucher vive les mystère ...


Jamese

  • Jr. Member
  • **
  • Messages: 72
    • Voir le profil
Re : collision tilemaping
« Réponse #14 le: Septembre 01, 2014, 04:05:22 pm »
Bon voici ou j'en suis :

jame.h
(click to show/hide)

Jame.cpp (  c'est mon personnage )
(click to show/hide)

bon sa ma l'aire* bien mais le compilo me dit qu'il y a une erreur :
 Sur la ligne du 1er for ainssi que du 2eme il me dit : "ERROR : expectef ';' befor ')' token"
c'est quoi ce truc qu'il manque