CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[C# XNA] Problème de collisions

MikareShitai
MikareShitai
Niveau 5
25 février 2014 à 18:01:18

Bonjour !

J'ai un problème pour gérer les collisions sur XNA. Mon jeu est en 2D vue de dessus (comme dans les premiers Zelda).
Voici le morceau de code en question : http://pastebin.com/G6wvmxEC

J'ai une liste contenant tous les murs de la maps nommée Terrain et je peux donc accéder à leur hitbox un à un et vérifier les collisions, ce que je fais dans la boucle foreach.

hitbox est un Rectangle et désigne la hitbox du personnage que je déplace. direction est un Vector2 contenant la direction souhaitée que j'additionne ensuite à la position.

Dites moi si mon explication n'est pas assez claire, je peux poster d'autre morceaux du code ou essayer d'un peu mieux expliquer :-)
Merci d'avance pour vos réponses !

MikareShitai
MikareShitai
Niveau 5
25 février 2014 à 18:03:05

Oups j'ai oublié d'expliquer le problème du coup :p)

En gros quand j'avance dans un mur, le jeu plante. Je pense qu'il reste bloqué dans la boucle while et n'arrive pas à en sortir, pourtant je ne vois pas d'erreur :-(

Pseudo supprimé
Pseudo supprimé 25 février 2014 à 18:17:23

Bonjour,

Ne passe pas Terrain en référence, cela ne sert à rien.
List<<Wall> est un objet et non une structure, tu ne gagne donc aucun temps de traitement en faisant de la sorte.

Au niveau de ton algo :
Difficile à décripter là...
A mon avis tu es en boucle infinie dans un des
while (hitboxTest.Intersects(wall.HitboxGet))
Fait au moins un test avec un break sur une condition finale.

Je suppose que tu bosse sous VS avec faser physic.

Juste à mettre un point d’arrêt dans ta boucle pour analyser tes vars. C'est pas si compliquer que cla.

Difficile de te dire plus de pistes, étant donné que les datas de Terrain ben tu ne les fournis pas :) .

Bon courage

Pseudo supprimé
Pseudo supprimé 25 février 2014 à 18:21:15

Peut être tu fournie Direction.x ou Direction.Y à zéro.

Et la ben ton while il ne sort pas.

Pseudo supprimé
Pseudo supprimé 25 février 2014 à 18:42:29

Essaye cela :
http://pastebin.com/qEQY74PZ

MikareShitai
MikareShitai
Niveau 5
25 février 2014 à 19:07:40

C'est bon j'ai trouvé :)
Merci pour ton aide, j'ai eu le déclic en lisant tes réponses :hap:

Déjà j'ai viré le ref et le while qui ne servaient effectivement à rien.
En fait le problème venait du fait que je faisais avancer la hitbox d'un pixel pour vérifier les collisions puis si tout était bon je faisais avancer le perso de 4. Donc au final il se retrouvait dans le mur et donc évidemment incapable de bouger :-p . Simple erreur d'inattention donc

Encore merci !

Pseudo supprimé
Pseudo supprimé 25 février 2014 à 19:36:17

Au plaisir.

Bonne continuation.

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware
La vidéo du moment