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

aide game maker

ronflexion
ronflexion
Niveau 2
26 septembre 2013 à 19:38:54

bonjour, j'ai commencé à créer un jeu de plateforme avec game maker ( vive l'originalité ;) ) mais j'ai un problème avec les collisions : elles ne sont prises en compte que si le personnage tombe ou saute. ça me gène pas mal, parce que je fait un jeu avec de la lave et mon personnage peux la toucher comme un bloc en fonça dedans. De même auriez vous une solution pour rendre les collisions plus précises, j'entent par là qui ne concernent que le sprite et non pas toute la case.

merci d'avance :)

chopsueys
chopsueys
Niveau 18
26 septembre 2013 à 20:17:30

Il va falloir un peu de code :)
t'as pleins de fonctions pour tester des collisions. Tu peux tester frames par frames si il y a une collision a un emplacement indiqué.
collision_line, place_free, collision_circle, collision_rectangle, place_meeting, position_meeting... à toi de voir laquel est la mieux adapté dans la doc (f1 pour l'ouvrir)

"rendre les collisions plus précises, j'entent par là qui ne concernent que le sprite et non pas toute la case. "

Il n'y a pas de "case" dans game maker les collisions sont toujours géré à partir des sprites.
Si tu veux des collision plus précise il faudra utiliser une boucle for, exemple pour un déplacement vers la droite:

for (i=0;i<vitesse;i+=1)
{
if place_free(x+1,y)
{x+=vitesse/vitesse}
}

Tu peux m'envoyer ton fichier si tu comprends rien.

ronflexion
ronflexion
Niveau 2
26 septembre 2013 à 21:28:31

bah je comprend pas bien :p mais comment je fais pour t'envoyer mon fichier ?

sinon pour la phrase : "rendre les collisions plus précises, j'entent par là qui ne concernent que le sprite et non pas toute la case. " je voulais dire que si je crée un sprite comme cercle dans l'éditeur de sprite je dois d'abord choisir la zone dans la quelle je dois le tracer. Cette zone étant carrée (ou rectangulaire) elle va être totalement prise en compte pour les collusions et non pas juste le sprite " dessiné ".

l'autre point sur lequel je ne me suis pas bien expliqué c'est que je voudrais qu'un objet active son effet ( -1 vie pour le perso ou bonus score par exemple) dès qu'il le touche (pièce et porte de sortie) ou marche sur celui-ci (lave) et non pas lorsqu'il saute dessus.
voilà j'espère que je me suis mieux exprimé ( a moins que tu ai déjà compris et que je sois con :rire: ) et surtout merci de m'avoir répondu :merci: (si tu pouvais recommencer ce serais cool ;) )

ps: désolé pour le pavé mai je préfère être clair :desole:

chopsueys
chopsueys
Niveau 18
26 septembre 2013 à 22:36:21

"Cette zone étant carrée (ou rectangulaire) elle va être totalement prise en compte pour les collusions et non pas juste le sprite " dessiné ". "

Non non, par défaut la boite de collision la "hit box" ou encore appelé "mask de collision" dans GM est définit par les pixels dessinés et non le contour vide. Ouvre un sprite et clic sur modify mask. Tu verras alors apparaitre dans cette fenêtre le mask de collision que tu pourras modifier.

Envoie moi ton fichier sur un hébergeur comme mediafire.com sinon je pourrais pas faire grand chose. Et j'espère que tu n'es pas sur la version studio de game maker.

ronflexion
ronflexion
Niveau 2
26 septembre 2013 à 23:58:52

ok, je le met sur media fire, le lien : http://www.mediafire.com/?4fn0zr5dqvyul3n
je n'ai pas la version pro :)

ps: ne juge pas les graphismes, ce n'est que provisoire

chopsueys
chopsueys
Niveau 18
27 septembre 2013 à 01:52:19

il suffi de décocher solide pour l'objet lave. Je vois demain (enfin plus tard dans la matinée ^^) ce que je peu faire pour la vie tous ça..

SEGA_2012
SEGA_2012
Niveau 8
27 septembre 2013 à 13:32:17

Rentre ce code dans colision:
if place_free(x,y+vspeed) and vspeed>0 {
vspeed=0
gravity=0
move_contacte(270)
}

ronflexion
ronflexion
Niveau 2
27 septembre 2013 à 17:55:47

merci bcp, si je décoche solide et que je rentre le code c'est vraiment pas mal :) mais pour les collisions, il prend tjrs en compte la carré d'origine dans lequel le sprite a été tracé :(

chopsueys
chopsueys
Niveau 18
27 septembre 2013 à 23:43:31

ben va dans modify mask comme je te l'ai dit.

ronflexion
ronflexion
Niveau 2
28 septembre 2013 à 14:49:58

j'ai fais ça et ça marche pas mal :) sinon j'ai une question comment faire pour que mon personnage perde une vie lorsqu'il touche une certaine partie d'un boss ? ( je sais comment faire pour qu'il prenne des dégats si il le touche sans sauter mais c'est pas assez précis )

chopsueys
chopsueys
Niveau 18
28 septembre 2013 à 15:20:17

il va faloir que tu utilise collision_rectangle qui va déterminer un rectangle fictif de collision. Pour placer ton rectangle au bon endroit tu peux le tracer avec draw_rectangle puis ensuite reprendre les même coordonnés pour collision_rectangle.

créer un nouvelle objet, ouvre un event draw et écrit ça:

draw_rectangle(boss.x-20,boss.y+10,boss.x+20,boss.
y+40,1)

remplace boss par le nom de ton objet boss si il ne s'appelle pas comme ça.
place le nouvelle objet dans ta room lance le jeu tu verras alors un rectangle se dessiner vers ton boss à toi de modifier les coordonnés pour que ça tombe pile la ou tu veux.
une fois que tu as trouvé les bonne coordonnés utilises les pour ton rectangle de collision. ouvre ton objet boss ouvre un event step et écris:
if cadence==1
{
cadence=0
alarm[0]=30
if collision_rectangle(x-20,y+10,x+20,y+40,perso,1,1)

// remplace par les bonnes coordonnés
{perso.lives-=5}
}

dans l'event create écris : cadence=1
dans alarme 0 écris : cadence=1

ronflexion
ronflexion
Niveau 2
30 septembre 2013 à 18:33:35

merci bcp :)

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