2010-02-23 11 views
5

J'ai dessiné des tuiles dans mon jeu XNA et chargé mon personnage. Mon personnage, cependant, ne bouge pas - la carte le fait, ce qui lui donne l'illusion du mouvement. Maintenant, je me demande comment tester réellement contre eux pour la collision. Je veux dire, où va le code de collision et comment puis-je faire que toutes les tuiles représentent «une grande chose»?Collision à base de tuiles dans XNA

+0

Pourriez-vous clarifier un peu la situation? c'est à dire. Comment utilisez-vous la carte de tuiles dans votre jeu? Le personnage occupe-t-il une seule tuile ou plusieurs tuiles (à la Tetris)? Les obstacles de jeu occupent-ils plusieurs tuiles? Je suis un peu perdue, car je pense que la détection de collision serait une simple question de comparaison de la position du personnage par rapport à des obstacles dans la carte, plutôt que par la détection de collision basée sur les pixels ... – Syndog

Répondre

5

Il ya un tutoriel sur pixel based collision detection sur XNA Creator's club. Vous aurez besoin de savoir sur quels objets vous voulez faire la détection de collision. Je suppose que vous voulez que le personnage se déplace sur l'arrière-plan en mosaïque, donc vous ne voulez pas vérifier la collision entre votre personnage et l'arrière-plan. Au lieu de cela, vous devriez faire des sprites d'obstacle et faire la détection de collision sur ceux-ci.

+0

Je ne sais pas comment tester la collision pour ces obstacles car ce sont des tuiles qui sont placées par une boucle for. – DMan

+0

Je ne suis pas sûr de suivre. Peu importe comment vous dessinez vos textures. Vous devez identifier les textures pour lesquelles vous souhaitez effectuer une détection de collision et appliquer la détection comme décrit dans le fichier .htm inclus dans l'exemple. –

+0

Eh bien, puisque je dessine chaque texture plusieurs fois, ne dois-je pas appliquer la collision plus d'une fois? Si oui, où ferais-je - pendant mon code de dessin> – DMan

0

Vous pouvez jeter un oeil à la Platformer Starter Kit, cela montre comment organiser les carreaux dans une carte et vérifier les collisions.

+0

J'ai regardé là mais je n'ai pas pu trouver quel fichier de classe que la collision a réellement eu lieu ... – DMan

0

Les rectangles ont une méthode d'intersection. Si votre joueur est centré et que vous connaissez les coordonnées, parcourez l'autre texture2ds et vérifiez une intersection avant de faire défiler la carte.