CONNEXION
  • RetourJeux
    • Tests
    • Soluces
    • Previews
    • Sorties
    • Hit Parade
    • Les + attendus
    • Tous les Jeux
  • RetourActu
    • Culture Geek
    • Astuces
    • Réalité Virtuelle
    • Rétrogaming
    • Toutes les actus
  • RetourHigh-Tech
    • Actus JVTECH
    • Bons plans
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTECH
  • 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
    • Xbox Series
    • Overwatch 2
    • FUT 23
    • League of Legends
    • Genshin Impact
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • PS4
  • One
  • Switch
  • Wii U
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Etoile Abonnement RSS

Sujet : problème de hitbox Game Maker

DébutPage précedente
1
Page suivantePage suivante
Pseudo supprimé
Niveau 5
19 novembre 2015 à 18:04:57

Bonjour à tous,
Je suis en train de créer un jeu de plateforme (bonjour l'originalité :rire: )avec Game Maker et j'ai un problème au niveau de la hitbox de mon personnage.
Quand je touche un pic (parce que les ennemis sont des pics), et que j'ai de la vitesse de chute, le jeu considère que je le touche bien avant que le personnage le touche, ce qui fait que la hitbox n'est pas très précise.
Je vous met le lien mediafire de mon jeu http://www.mediafire.com/download/dx8qbs8aazmct3i/spiky_2.gmk
Si quelqu'un pouvais m'aider :svp:

merci d'avance :merci:

Smooth-Caribou Smooth-Caribou
MP
Niveau 10
19 novembre 2015 à 18:30:01

Désolé tu es probablement sur une vieille version de GM, je ne peux pas importer ton jeu en .gmk et voir où ça bug.

Pseudo supprimé
Niveau 5
20 novembre 2015 à 20:42:17

Je suis sur Game maker 8 pro (la dernière version de GM à ma connaissance)
Tu est sur quel version ?
C'est quoi l'extension de tes fichiers GM?

Smooth-Caribou Smooth-Caribou
MP
Niveau 10
20 novembre 2015 à 20:56:38

Du coup tes connaissances doivent plutôt être orienté perroquet et jambe de bois non? :o))

Parce que pour le coup c'est passé à Game Maker : Studios depuis pas mal de temps... au moins deux trois ans je crois. Tu peux trouver la version Lite gratuite sur le site de Yoyo Games.

Beaucoup de fonctionnalités en plus, et plus "modernes", des MAJ régulières, mais aussi des fonctionnalités de la version 8 d'enlevé, j'ai pu charger ton projet mais avec beaucoup d'incompatibilité, j'avais les sprites et objets mais aucune room par exemple.

Chope la version lite et importe y ton projet tu verras par toi même.

les .gmk c'était les anciennes versions, maintenant les extansions sont en .gmz, même s'il est toujours possible malgré tout d'importer de vieux projets mais qui comporteront potentiellement comme là pas mal d'incompatibilités critiques avec Studios.

Pseudo supprimé
Niveau 5
21 novembre 2015 à 14:04:18

OMG j'étais passé a côté de ça depuis si longtemps.
J'ai recréé mon problème de manière la plus simple possible sur GMS pour que tu puisse voir le bug.
http://www.mediafire.com/download/908cqne884w2dlz
Merci d'essayer de m'aider. J'espère que tu trouvera une solution. :cool:

chopsueys chopsueys
MP
Niveau 10
21 novembre 2015 à 18:22:02

Je vais essayer de t'expliquer pourquoi il se passe ça, c'est un problème récurent lorsque l'on débute.
Le programme exécute toutes les actions par étape. Ces actions sont segmentés par les "steps" ou plus couramment les "frames" le fameux frame rate (step=frame). Enfin peut être que tu sais déjà ça.

Pour déplacer ton perso verticalement toi tu utilises la variable gravity, c'est une manière que je ne recommande pas, il vaut mieux modifier le y à partir d'une variable personnel (que l'on a créé sois même)
en gros gravity une fois qu'elle est activé va augmenter ça valeur en fonction de la valeur de base que tu lui a donné puis rajouter cette valeur au y.
Donc plus il y'a de step qui défilent et plus cette valeur sera grande et donc plus ton perso ira vite.

Prenons un exemple:
Ton perso se trouve à 100 pixels de l’objet pic. Il se déplace chaque step d'une valeur (la valeur de gravity) qui vient s'ajouter à sa variable y qui défini sa position dans l'axe vertical.
step 1 il est à 100 p (de l'objet pic )
step 2 il est à 99,8 p
etc...
lorsqu'une 20 ene de step seront passés son y changera beaucoup plus brutalement puisque gravity sera plus élevé.
step 20 il est à15 p
step 21 il est à 10 p
maintenant qu'est ce qu'il se passe quand le perso se trouve à 5 p du pic...
Au step suivant le programme ajoute comme au préalable la valeur de gravity à y
Cette valeur étant par exemple de 7p donc à ce step là ton perso est déjà en collision de 2 p, sauf que l'évènement "collision" est foutu bizarrement et il intervient avant que ce dernier step ne se produise, donc l'action se déclenche à par exemple 5 pixels du pic.

Ce qu'il faut faire c'est utiliser une boucle.
La boucle permet d'effectuer plusieurs calcul à l’intérieur d'un step, c'est comme si tu avait un event step à l’intérieur de l'event step.
Le but est de calculer si le pic se trouve à 1 pixel en dessous de lui autant de fois que la valeur ajouté à y pour ce step.
Si au step 21 gravity ajoute 5 à y on demandera 5 fois si le pic se trouve juste en dessous.
Pour la boucle ça donne ça:

for(i=0;i<vitesse;i+=1)
{
if ! place_meeting(x,y+1,spike)
{
y+=1
}
else {game_restart()}
}

Mais ça suffis pas là il faut du coup configurer "vitesse" par ce qu'il ne faut plus que tu utilises gravity et donc il faut reprogrammer le moteur physique.

Je te fais ça dans un gmk le plus simplement possible et je t'envoie ça dans pas longtemps.

(j'ai la flemme de me relire y'a peut être des grosse conneries)

chopsueys chopsueys
MP
Niveau 10
21 novembre 2015 à 19:21:10

http://www.mediafire.com/download/q10cpz8fsa6ij1a/pic.gb1

voila, j'espère que tu comprendras un minimum le code que j'ai écris.

chopsueys chopsueys
MP
Niveau 10
21 novembre 2015 à 19:22:51

ha non c'est ça le bon lien: http://www.mediafire.com/download/8y47bba4hincgnf/pic.gmk

Pseudo supprimé
Niveau 5
21 novembre 2015 à 20:46:39

merci chopsueys
Je comprends maintenant pourquoi ça me fait ça mais il reste un problème, quand on garde la barre d'espace enfoncée, le personnage flotte et devient invincible
est-ce tu pourrais voir comment corriger ça
D'ailleurs je ne sais pas programmer avec GM (ni avec aucun autre langage :honte: )
Et pour la partie du code //pic, il faudrais que je le copie dans chaque ennemi?
Merci en tous cas de m'aider

Pseudo supprimé
Niveau 5
21 novembre 2015 à 20:50:30

Et aussi j'utilise Game Maker Studio et il y a déjà un système de physique, tu pourrais me dire si on pourrais y utiliser?

Smooth-Caribou Smooth-Caribou
MP
Niveau 10
22 novembre 2015 à 11:45:49

Suis des tutos et mets toi tranquilement au GML, sincèrement tu ne regretteras pas, il suffit de se lancer le langage est intuitif et permet de faire ses armes à son rythme.

Cool de te voir dans les parages chopsueys!

Pour ton soucis unity71 essaie peut être de changer l'évènement de la touche espace, et de la passer en "key released", ce qui permettra d'éxécuter le code au moment où tu relaches la touche espace.

Ce ne sera pas forcément adapter dans le cas où tu veux que le joueur puisse laisser espace enfoncé pour sauter plus ou moins haut. De base dans ce cas je vérifierai si la touche "Espace" est enfoncée, et si elle l'est, en plus de faire sauter le joueur, cela viendra incrémenter une petite variable à chaque step. Si cette variable atteint un "plafond" définit, alors l'effet de "saut" s'arrête et le personnage retombe jusqu'au sol.

(Il faudra aussi prendre en compte qu'au moment du saut, le joueur est au contact du sol, et qu'il ne puisse sauter qu'à ce moment là, où alors tu pourras faire des "air jump" à volonté ;) )

chopsueys chopsueys
MP
Niveau 10
22 novembre 2015 à 16:13:28

Nan mais j'ai juste programmer ça à l'arrache.
tiens: http://www.mediafire.com/download/78g12pdsffkzgvs/pic%282%29.gmk

"Et pour la partie du code //pic, il faudrais que je le copie dans chaque ennemi?"

Non pas du tout.
En fait ça sert à rien de copié collé un code si tu ne le comprend pas.
Utilises mon gmk comme exemple pour que tu puisse comprendre la conception d'un code gml.
Laisse tomber les icônes drag and drop.
Suis des tutos pour comprendre la base du gml, les variables les fonctions puis les boucles principalement.
Si t'as des questions sur le gml tu peux me demander par mp si tu veux.

Pseudo supprimé
Niveau 5
22 novembre 2015 à 18:51:50

Ok je vais suivre vos conseilles et me mettre au GML.
Donc j'arrète le D'n'D et je fais presque, voire que du code, variables etc...

Merci Smooth-Caribou et Chopsueys pour votre aide :-)
Si j'ai de nouveau des question je vous envoie un MP.
:merci:

Smooth-Caribou Smooth-Caribou
MP
Niveau 10
23 novembre 2015 à 00:03:09

Disons que le D&D est sympa, et c'est une vitrine pour Game Maker qui leur ramène beaucoup de monde, mais ça reste vraiment la partie visible de l'iceberg. Le GML t'offre beaucoup de subtilité et tu peux réaliser énormément plus de choses.

Ca fait peur au début, mais crois moi, si tu veux vraiment apprendre, c'est tout sauf insurmontable et même si tu pataugeras un peu à coup sûr, chaque erreur surmontée t'offrira son lot d'apprentissage. A partir du moment où tu comprends comment ça fonctionne, au moins dans les grandes lignes, cela t'ouvre d'autres perspectives.

Pour Game Maker perso j'ai commencé avec entre autre toutes les vidéos de TheErnest sur Youtube : https://www.youtube.com/watch?v=IVwl7-u9WRM
:d) c'est expliqué pas à pas, toujours illustré d'exemple et avance à bon rythme. Prends les dans l'ordre et regarde les à ton rythme en faisant des tests de ton côté.

Et oui n'hésite pas à poser tes questions, en MP ou sur le topic d'entraide de Game Maker ;)

Pseudo supprimé
Niveau 5
24 novembre 2015 à 18:00:04

Ok merci pour tous ces conseils je vais regarder TheErnest.

DébutPage précedente
1
Page suivantePage suivante
Répondre
Prévisu
?
Victime de harcèlement en ligne : comment réagir ?
La vidéo du moment