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

[Java][Slick] Probleme avec Collisions..

Vykid
Vykid
Niveau 2
19 décembre 2011 à 20:22:58

Bonsoir, je code actuellement un jeu type Mario Bros et j'utilise le moteur 2D Slick. Mais je n'arrive pas à faire de collision entre le personnage et le sol/mur. Comme j'utilise Tiled Map Editor, j'ai fait une boucle qui scanne toutes les cases de mon monde et retourne une valeur " blocked = true " si la case est censé bloquer , ou false si elle ne bloque pas. Mais après je n'arrive pas à faire que mon personnage ne puisse pas traverser la case !

Je cherche depuis 4 jours... Sans succès
Avez vous une solution s'il vous plait ?
Merci d'avance, Bonne soirée

Vykid
Vykid
Niveau 2
19 décembre 2011 à 22:33:54

Oui mais comment savoir si il y a collision ? Et sinon , c'est une simple boucle for qui parcours la map et renvois un true si la case doit etre une case bloquante.

tbop2
tbop2
Niveau 10
20 décembre 2011 à 09:37:02

Renseigne toi sur la modelisation algorithmique dite des bounding boxes: http://www.gamedev.net/page/resources/_/technical/game-programming/collision-detection-r735

caelacanthe
caelacanthe
Niveau 10
20 décembre 2011 à 11:45:17

la boucle for pourrait renvoyer un conteneur de cases avec lesquelles le personnage est en collision. si le conteneur est vide, il n'y a pas de collision, sinon tu fais le recalage avec ces cases. :oui:

Arkwolf
Arkwolf
Niveau 29
20 décembre 2011 à 11:58:19

Bah en gros dans ton update tu fais un for qui parcours éventuellement toutes les cases de la map, et quand la prochaine position du joueur touche une case (tu vérifies avec des méthodes de base comme contains ou intersect) tu change la vélocité du joueur en conséquence :noel:

Vykid
Vykid
Niveau 2
20 décembre 2011 à 14:26:08

Aaaah ok ! Merci bcp les gars ! Je vais tester tous ça !

Merci :D

Vykid
Vykid
Niveau 2
20 décembre 2011 à 18:04:27

Huuum j'ai réusi a faire marcher la collision mais maintenant dès que je m'avance trop , il me sort un ArrayIndexOutOfBoundException ... alors que le tableau dont il parle est le tableau qui récupère la taille de la map, et la position du joueur.

Silvermo
Silvermo
Niveau 26
20 décembre 2011 à 18:16:52

N'oublie pas que les indices d'un tableau commencent à zéro et se terminent à tableau.length - 1 :p

Bref pour un tableau de 3 x 3 éléments, la boucle for doit parcourir les lignes d'indice 0 à 2 et pour chaque ligne, les colonnes d'indice 0 à 2 :)

Vykid
Vykid
Niveau 2
20 décembre 2011 à 18:20:34

RESOLU !
Merci à tous ceux qui m'ont aidé !

Silvermo
Silvermo
Niveau 26
20 décembre 2011 à 18:21:20

Tant mieux :) , sais pas trop ce qui te bloquait mais bon

Vykid
Vykid
Niveau 2
21 décembre 2011 à 01:43:34

Pour etre franc ... une simple variable inconnue qui était dans la methode qui testait si oui ou non il y avait collision XD je m'en suis rendu compte que tout à l'heure...
Oui oui >.> je suis un boulet sur ce coup là.

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