AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le Deal du moment : -40%
Tefal Ingenio Emotion – Batterie de cuisine 10 ...
Voir le deal
59.99 €

 

 Problème collision

Aller en bas 
5 participants
AuteurMessage
Galaxus
Débutant



Messages : 12

Problème collision Empty
MessageSujet: Problème collision   Problème collision EmptyMer 11 Avr 2012 - 14:44

Bonjour,
Commençant tout juste à utiliser game maker, j'ai choisi l'option "Pong" pour apprendre à utiliser ce logiciel. Et me voilà confronté au problème suivant: la collision d'objet tout deux en mouvement, à savoir une balle, non dirigé directement, et une barre, dirigée via le clavier. Je m'explique:

Cas n°1: Barre immobile ; si la balle touche un côté droit ou gauche de la barre, alors elle est renvoyée directement
Cas n°2: Barre en mouvement ; même résultat que le cas n°1
Cas n°3: Barre immobile ; si la balle touche un ces bords haut ou bas de la barre, alors elle est renvoyée directement
Cas n°4: Barre en mouvement ; si la balle touche un des bords haut ou bas de la barre, les deux objets se bloquent, et la balle repart dès que je lâche la touche haut/bas...

Voici un screen de la room:

Problème collision Pongf

Merci d'avance gnii
Revenir en haut Aller en bas
chopsuey
Utilisateur confirmé: Rang ***
chopsuey


Messages : 523
Localisation : saint etienne
Projet Actuel : All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
...

Problème collision Empty
MessageSujet: Re: Problème collision   Problème collision EmptyMer 11 Avr 2012 - 15:27

pour ma part je trouve ton explication pas clair du tous qu'entend tu par via le clavier?
c'est quoi la difference entre le cas 1 et le cas 3 ? et entre 2 et 4 ?
sa veux dire quoi ça : si la balle touche un ces bords haut ou bas de la barre ??

tu devrais envoyer ton gmk sur un hébergeur comme mediafire pour qu'on ce rende compte par ce que moi la je ne comprend pas ton problème.
Revenir en haut Aller en bas
Galaxus
Débutant



Messages : 12

Problème collision Empty
MessageSujet: Re: Problème collision   Problème collision EmptyMer 11 Avr 2012 - 16:18

Bon, j'essaye d'expliquer une fois, et pis sinon, hébergeur.
Alors, avec la touche "haut" du clavier, la barre de gauche monte, elle bouge vers la haut de la room quoi. La touche "bas" va, à l'inverse, faire bouger la barre vers le bas.
La balle est mobile, mais on ne choisit pas sa direction, elle bouge en fonction du rebond sur la barre ou sur le mur.
Bon, j'ai résumer du mieux que je pouvais (quoique roll2 ) les contrôles des objets. Vous l'aurez compris, c'est un Pong basique.

Bref, mon problème intervient dès que je reçois la balle sur ma barre, et ce dans une unique situation: quand je bouge en même temps ma barre.
Exemple:
Problème collision Pong2

Dans cette situation, la barre et la balle vont tous les deux se bloquer, et ce jusqu'à ce que je relâche la touche "haut"/"bas"... C'est assez contraignant, puisque la balle passe dans ce cas et il y a perte de points (pour les règles, se reporter à celles de Pong).
Revenir en haut Aller en bas
Oculus
Utilisateur confirmé: Rang *****



Messages : 1688

Problème collision Empty
MessageSujet: Re: Problème collision   Problème collision EmptyMer 11 Avr 2012 - 16:20

Montre nous ton code qu'on voie ce qui ne va pas.
Revenir en haut Aller en bas
Galaxus
Débutant



Messages : 12

Problème collision Empty
MessageSujet: Re: Problème collision   Problème collision EmptyMer 11 Avr 2012 - 16:33

Je suis désolé, je commence juste, alors je sais pas où il est sweat
Revenir en haut Aller en bas
chopsuey
Utilisateur confirmé: Rang ***
chopsuey


Messages : 523
Localisation : saint etienne
Projet Actuel : All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
...

Problème collision Empty
MessageSujet: Re: Problème collision   Problème collision EmptyMer 11 Avr 2012 - 16:55

ok j'ai compris seulement étant donné que tu débute et vue ton dernier message j'ai pas l’impression que tu l'ai coder en gml sa risque d'être ****** de voir ce qui ne vas pas donc je te propose d’envoyer ton gmk et alors on pourras le modifier en t'expliquant ce qui n'allait pas.
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****
D-z


Messages : 1611
Localisation : Montpellier

Problème collision Empty
MessageSujet: Re: Problème collision   Problème collision EmptyMer 11 Avr 2012 - 18:31

Bon, alors manifestement tu utilises le moteur physique inclus de GM. Je te préviens, il est galère :')

Je suggère de vérifier que tes battes et ta balle sont bien non-solides, et de mettre une condition au rebond de la balle : elle ne doit rebondir que si elle arrive en direction de la raquette (vérifiable avec hspeed). Ainsi, au pire la balle passe légèrement à travers en repartant mais ne se bloque pas :)

_________________
 
Home is not a place, it's a feeling.


Dernière édition par D-z le Jeu 12 Avr 2012 - 9:44, édité 1 fois
Revenir en haut Aller en bas
Galaxus
Débutant



Messages : 12

Problème collision Empty
MessageSujet: Re: Problème collision   Problème collision EmptyMer 11 Avr 2012 - 18:51

Pourquoi, c'est plus intéressant de coder en gml?
Revenir en haut Aller en bas
chopsuey
Utilisateur confirmé: Rang ***
chopsuey


Messages : 523
Localisation : saint etienne
Projet Actuel : All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
...

Problème collision Empty
MessageSujet: Re: Problème collision   Problème collision EmptyMer 11 Avr 2012 - 19:16

J'ai pas dit que c'était plus intéressent de coder en gml (même si c'est ce que je pense)
j'ai dit en gros que c'était plus facile d'aider quelqu'un qui utilise le gml dans son jeu car il n'a cas faire un copier coller de son code genre:

x = mouse_x;
if (x < 59) x = 59;
if (x > room_width-162) x = room_width-162;
if (position_meeting(x + 1, y + -1,object1))
{object1.direction = 150}

et du coup on peut facilement voir se qui ne va pas contrairement à ceux qui comme toi utilisent les icônes D&D Problème collision Evenemen Problème collision Eveneme3 Problème collision Eveneme4 etc... par ce que du coup on ne peut pas avoir connaissance du mécanisme du jeu à part si tu nous envoie le gmk.

Et pour répondre à ta question tu t'apercevras vite je pense si tu continue à te servir de game maker que le gml est indispensable car le D&D et juste bon à faire justement un pong un casse brique ou un petit jeu de plateforme et surtout en D&D tu va passer les 3 quart de ton temps à trouver des combines fastidieuses pour essayer faire quelque chose qui prendrais 2 min en gml voila en gros.
Revenir en haut Aller en bas
Galaxus
Débutant



Messages : 12

Problème collision Empty
MessageSujet: Re: Problème collision   Problème collision EmptyMer 11 Avr 2012 - 19:44

Ok, je vais essayer de m'entrainer à coder avec gml... Mais, à quel niveau à peu près pourrais-je continuer la programmation de mon jeu?
Revenir en haut Aller en bas
chopsuey
Utilisateur confirmé: Rang ***
chopsuey


Messages : 523
Localisation : saint etienne
Projet Actuel : All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
...

Problème collision Empty
MessageSujet: Re: Problème collision   Problème collision EmptyMer 11 Avr 2012 - 21:20

ben pour un pong avec le D&D décodeur téléchargeable sur le cbna t'auras pas besoin d'un super niveau.
Mais ya pas de mal à débuter avec le D&D c'est d’ailleurs je pense se que pratiquement tous le monde à fait ici.
Je te conseil de continuer un temps en D&D et une fois que tu auras bien compris à quoi sert toutes les icônes, la logique des coordonner, l'utilisation des variable, des conditions... alors tu pourras t'essayer au gml par ce que même si le gml est un langage très simplifié je pense que c'est quand même hard de commencer par ça quand tu n'a pas acquis la logique nécessaire, mais c'est mon poins de vue par ce que c'est ce que j'ai du faire mais après y'en a qui sont naturellement doué pour la programmation et qui arrive à tout assimiler en moins d'un mois.

Bref en tous cas tu ne sais toujours pas comment résoudre ton problème il me semble ? donc je te repropose de nous envoyer ton gmk pour pouvoir t'aider.
Revenir en haut Aller en bas
Galaxus
Débutant



Messages : 12

Problème collision Empty
MessageSujet: Re: Problème collision   Problème collision EmptyMer 11 Avr 2012 - 21:35

Ok, je vous l'envoie... Par contre, j'ai déjà un peu appris tout ce qui touchait à la programmation, donc je ne pense pas avoir de problème à m'y mettre happy1

http://www.mediafire.com/download.php?4bdcuwf1t7x9yr7
Revenir en haut Aller en bas
chopsuey
Utilisateur confirmé: Rang ***
chopsuey


Messages : 523
Localisation : saint etienne
Projet Actuel : All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
...

Problème collision Empty
MessageSujet: Re: Problème collision   Problème collision EmptyJeu 12 Avr 2012 - 9:16

voila c'est bon : http://www.host-a.net/u/shopsueys/Pong.gmk

j'ai juste mis dans l'event collision avec la balle des 2 objets barre vspeed = 0
mais j'ai modifier d'autres choses.
j'ai remarque que ta balle ne partait en début de partie que à droite ou à gauche donc avec des angles soit de 0° soit de 180° et étant donné que la physique de game maker intégré répond au lois de la réflexion donc l'angle du rayon incident = à l'angle du rayon réfléchit.
Alors du coup ben ta balle s'opposant tous le temps à une surface perpendiculaire à ça trajectoire ne dévie donc jamais. Alors du coup dans le create j'ai fait un évènement aléatoire pour faire partir la balle.
Et vue que tu souhaite apprendre le gml je me suis permis de coder une partie de ton jeux dans l’évènement step tu verras que tous est indiqué dans le code.
Revenir en haut Aller en bas
Galaxus
Débutant



Messages : 12

Problème collision Empty
MessageSujet: Re: Problème collision   Problème collision EmptyJeu 12 Avr 2012 - 19:19

Ah oui en effet, c'est plus pratique! gha
Dire que quand je chercher un sujet qui avait résolu ce problème sur le forum, j'ai vu un de tes messages qui était une demande d'aide, je me suis dis "lui, il est au même niveau que moi"... Et ben nan beh

Sinon, juste un truc, je suis confronté à un dilemne:
Quand tu as changé la chose avec la balle, tu n'as pas mis "precisely" au contact avec les barres. j'ai donc changé la chose pour éviter que la balle fasse toujours les mêmes directions.
Mais il se trouve que maintenant, j'ai presque le même problème, mais en mieux. Quand je descends ma barre et qu'elle percute la balle, elle l'emmène avec elle...
Des fois, elle la rattrape même tout derrière, mais ça, ça doit être à cause du sprite...

M'enfin, en général, ça marche très bien Very Happy
Revenir en haut Aller en bas
marty
Utilisateur confirmé: Rang ***
marty


Messages : 697
Projet Actuel : laby-ereinte !

Problème collision Empty
MessageSujet: Re: Problème collision   Problème collision EmptyJeu 12 Avr 2012 - 20:11

salut malheureusement pong est souvent le premier jeux qu'on essaie de faire, et la solution du bounce en drad'drop (D&D) est de rendu médiocre et gâche le plaisir.

on est effectivement obligé de passer par une formule mathématique pour faire "rebondir" la balle sur la raquette!

ce lien c'est le gmk du breakout "officiel"de game maker :

http://www.host-a.net/u/marty/breakoutyoyo.gm6

regarde le code,car la balle ne rebondit pas réellement!

sinon amuse toi avec le D&D pour faire des petits jeux car c'est extrêmement pratique et suffit largement pour les petits que l'on fait! awesome
Revenir en haut Aller en bas
Galaxus
Débutant



Messages : 12

Problème collision Empty
MessageSujet: Re: Problème collision   Problème collision EmptyJeu 12 Avr 2012 - 20:50

Excusez-moi encore, mais peut-on m'expliquer ce code svp? Histoire que j'apprenne un peu le "vocabulaire" du gml. En soi, j'ai compris à quoi il sert, mais certains termes ne sont pas trop compris...
Code:

{
  if (other.x < x)
    { other.direction = 110 + 80*(x-other.x)/sprite_width;}
  else
    { other.direction = 70 + 80*(x-other.x)/sprite_width;}
  if (other.y > y) other.direction := 360-other.direction;
}

Que veux dire le "other" de "other.x" ou "other direction"?
Revenir en haut Aller en bas
marty
Utilisateur confirmé: Rang ***
marty


Messages : 697
Projet Actuel : laby-ereinte !

Problème collision Empty
MessageSujet: Re: Problème collision   Problème collision EmptyJeu 12 Avr 2012 - 21:15

en gros ce code dit

quand la balle entre en collision avec la batte ,si son x (appelé other.x,il aurait pu mettre balle.x)
est proche de extrémité de la batte plus l'angle de renvoie de la balle sera grand en modifiant directement la direction de la balle (balle.direction)

chaque objet à un lot de variable préfixée par game maker:
vitesse
direction
x,y
...
que l'on peut modifier à loisir!

sprite_width c'est le nom de la variable qui indique la largeur du sprite.
other.direction,other.x c'est la balle (autre objet.x,autre objet .direction)

confère le manuel pour plus de clarté
Revenir en haut Aller en bas
Galaxus
Débutant



Messages : 12

Problème collision Empty
MessageSujet: Re: Problème collision   Problème collision EmptyJeu 12 Avr 2012 - 22:26

Ok, et comme on peut le voir sur le premier post, mes barres sont arrondies, donc si je veux mettre cela, je dois absolument les faire plates? rouge
Revenir en haut Aller en bas
chopsuey
Utilisateur confirmé: Rang ***
chopsuey


Messages : 523
Localisation : saint etienne
Projet Actuel : All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
All work and no play makes Jack a dull boy
...

Problème collision Empty
MessageSujet: Re: Problème collision   Problème collision EmptyJeu 12 Avr 2012 - 23:40

elles peuvent rester arrondie visuellement mais tu peut les rendre rectangulaire pour les collision pour modifier ça ya rien de plus simple il faut que tu ouvre ton sprite et que tu clique sur Modify Mask et c'est ici que tu pourras modifier la "hitbox"
Revenir en haut Aller en bas
D-z
Utilisateur confirmé: Rang *****
D-z


Messages : 1611
Localisation : Montpellier

Problème collision Empty
MessageSujet: Re: Problème collision   Problème collision EmptyVen 13 Avr 2012 - 10:23

Si tu es un peu calé en géométrie, tu peux coder ta propre fonction de rebond, en considérant les battes comme des ellipses ;)

_________________
 
Home is not a place, it's a feeling.
Revenir en haut Aller en bas
Galaxus
Débutant



Messages : 12

Problème collision Empty
MessageSujet: Re: Problème collision   Problème collision EmptyVen 13 Avr 2012 - 19:18

Et bien je suis partagé entre le réalisme "visuel", qui veut que ma balle rebondisse bien sur la barre, mais avec des problèmes de rebond, et le réalisme "physique", qui veut que le rebond soit comme dans le breakout montré plus haut, mais avec la balle qui repart sans toucher la barre... zip
Revenir en haut Aller en bas
Contenu sponsorisé





Problème collision Empty
MessageSujet: Re: Problème collision   Problème collision Empty

Revenir en haut Aller en bas
 
Problème collision
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Problème touche appuyée + problème collision + view
» Problème de collision.
» probleme de collision
» Problème de collision
» Problème de collision

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Forum Le CBNA :: Développement :: Entraide débutants-
Sauter vers: