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

Auteur Sujet: collision tilemaping  (Lu 6566 fois)

0 Membres et 1 Invité sur ce sujet

AnselmeSfml

  • Jr. Member
  • **
  • Messages: 78
    • Voir le profil
    • E-mail
Re : collision tilemaping
« Réponse #15 le: Septembre 01, 2014, 04:43:49 pm »
C'est parce que tu as oublié d'initialiser hauteur 1:
for (hauteur_1 < hauteur_2; ++hauteur_1)
deviendra
for (int hauteur_1 = 0; hauteur_1< hauteur_2; ++hauteur_1)
Et ainsi que pour la prochaine.

Jamese

  • Jr. Member
  • **
  • Messages: 72
    • Voir le profil
Re : collision tilemaping
« Réponse #16 le: Septembre 01, 2014, 04:53:22 pm »
ok merci, par contre la ou je sait pas quoi faire c'est comment test si c'est une tiles 1 ou 0 ( dans mon tableau de bool )
« Modifié: Septembre 01, 2014, 05:10:38 pm par Jamese »

AnselmeSfml

  • Jr. Member
  • **
  • Messages: 78
    • Voir le profil
    • E-mail
Re : collision tilemaping
« Réponse #17 le: Septembre 01, 2014, 07:00:47 pm »
Une petite algo simple:

int persoIndexX = perso.getPosition().x+moitiéLargeurPerso / largeurTile;
int persoIndexY = perso.getPosition().y+hauteurPerso / hauteurTile;


Par contre tu devras vérifier que ton perso ne sorte pas de l'écran sinon ça va crasher.

Jamese

  • Jr. Member
  • **
  • Messages: 72
    • Voir le profil
Re : collision tilemaping
« Réponse #18 le: Septembre 01, 2014, 07:02:49 pm »
ok un grand merci je vais faire sa.

Et dsl mais j'arrive pas a trouver une solution a ton problème ( pour l’isométrique )

AnselmeSfml

  • Jr. Member
  • **
  • Messages: 78
    • Voir le profil
    • E-mail
Re : collision tilemaping
« Réponse #19 le: Septembre 01, 2014, 07:05:41 pm »
Derien bah pas grave règle les tiens d'abord ;)

Jamese

  • Jr. Member
  • **
  • Messages: 72
    • Voir le profil
Re : collision tilemaping
« Réponse #20 le: Septembre 01, 2014, 07:33:03 pm »
ok, par contre je ne voie pas comment on va s'avoir si c'est 1 ou 0 avec ton algo =).


AnselmeSfml

  • Jr. Member
  • **
  • Messages: 78
    • Voir le profil
    • E-mail
Re : collision tilemaping
« Réponse #21 le: Septembre 01, 2014, 07:35:55 pm »
Là c'est que tu n'as pas compris... Tu recopies ce que je te dis sans rien comprendre ;) L'algorithme que je t'ai montrée désigne l'index pour ton tableau. Maintenant tu regardes ce qu'il y a dans ton tableau à cette index du style m_collisions[indexX] [indexY]...

Jamese

  • Jr. Member
  • **
  • Messages: 72
    • Voir le profil
Re : collision tilemaping
« Réponse #22 le: Septembre 01, 2014, 07:43:07 pm »
genre un truc comme sa :
if ( map_collision [ int (x/taillecase) + 3*int(y/taillecase) ] ==1 )
{
       return true;
}
 

AnselmeSfml

  • Jr. Member
  • **
  • Messages: 78
    • Voir le profil
    • E-mail
Re : collision tilemaping
« Réponse #23 le: Septembre 01, 2014, 08:21:52 pm »
Si 3 représente la largeur de ta map ça va, autrement tu n'as pas compris que tu travailles sur un tableau 1d. Mais tu dois accéder à ses éléments sur 2 dimensions ce qui signifie qu'il te faut une formule pour le prendre en compte comme un tableau 2d et accéder à ses éléments. Ouh on l'a finie!  ;D La formule est celle ci:

Si tu voudrais accéder à l'élément[0][2] d'un tableau 2D tu ferais (mais c'est mal les tableaux 2D):
m_tableau[0][2];
Dans ton cas tu dois faire:
m_tableau[0*nombreColonnes + 2];

Voilà :)

PS: essaie de comprendre la mini-algo c'est important
« Modifié: Septembre 01, 2014, 08:44:58 pm par AnselmeSfml »

Jamese

  • Jr. Member
  • **
  • Messages: 72
    • Voir le profil
Re : collision tilemaping
« Réponse #24 le: Septembre 01, 2014, 08:53:51 pm »
ok je regarde un peut la télé et je regarde sa tout a l'heure, merci pour ton aide

AnselmeSfml

  • Jr. Member
  • **
  • Messages: 78
    • Voir le profil
    • E-mail
Re : collision tilemaping
« Réponse #25 le: Septembre 01, 2014, 08:58:43 pm »
Derien bonne télé  8)

Jamese

  • Jr. Member
  • **
  • Messages: 72
    • Voir le profil
Re : collision tilemaping
« Réponse #26 le: Septembre 01, 2014, 11:00:07 pm »
Suite a un bon film ( je ne vous dirais pas lequel ) ma logique à étais si logique que je pense avoir trouver un truc. Je me suis donc mis a coder  ::). Et j'en ai sortie cette condition :

for (int hauteur_1 = posX -80; hauteur_1 < hauteur_2; ++hauteur_1)
            for (int largeur_1 = posY -80; largeur_1 < largeur_2; ++largeur_1)
            {
                if (map_collision [tiles + 3* tiles2] == 1)
                {
                    return true;
                }
                return false;
            }
 

Mais bon je suis quasi sur qu'il va manquer un petit truc.
« Modifié: Septembre 01, 2014, 11:09:08 pm par Jamese »

TheKingArthur

  • Invité
Re : collision tilemaping
« Réponse #27 le: Septembre 02, 2014, 06:34:53 pm »
Je pense que c'est bon. Mais test quand même. :)