| Problème collision | |
|
|
Auteur | Message |
---|
Galaxus Débutant
Messages : 12
| Sujet: Problème collision Mer 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: Merci d'avance |
|
| |
chopsuey Utilisateur confirmé: Rang ***
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
...
| Sujet: Re: Problème collision Mer 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. |
|
| |
Galaxus Débutant
Messages : 12
| Sujet: Re: Problème collision Mer 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 ) 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: 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). |
|
| |
Oculus Utilisateur confirmé: Rang *****
Messages : 1688
| Sujet: Re: Problème collision Mer 11 Avr 2012 - 16:20 | |
| Montre nous ton code qu'on voie ce qui ne va pas. |
|
| |
Galaxus Débutant
Messages : 12
| Sujet: Re: Problème collision Mer 11 Avr 2012 - 16:33 | |
| Je suis désolé, je commence juste, alors je sais pas où il est |
|
| |
chopsuey Utilisateur confirmé: Rang ***
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
...
| Sujet: Re: Problème collision Mer 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. |
|
| |
D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: Problème collision Mer 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 |
|
| |
Galaxus Débutant
Messages : 12
| Sujet: Re: Problème collision Mer 11 Avr 2012 - 18:51 | |
| Pourquoi, c'est plus intéressant de coder en gml? |
|
| |
chopsuey Utilisateur confirmé: Rang ***
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
...
| Sujet: Re: Problème collision Mer 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 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. |
|
| |
Galaxus Débutant
Messages : 12
| Sujet: Re: Problème collision Mer 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? |
|
| |
chopsuey Utilisateur confirmé: Rang ***
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
...
| Sujet: Re: Problème collision Mer 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. |
|
| |
Galaxus Débutant
Messages : 12
| Sujet: Re: Problème collision Mer 11 Avr 2012 - 21:35 | |
| |
|
| |
chopsuey Utilisateur confirmé: Rang ***
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
...
| Sujet: Re: Problème collision Jeu 12 Avr 2012 - 9:16 | |
| voila c'est bon : http://www.host-a.net/u/shopsueys/Pong.gmkj'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. |
|
| |
Galaxus Débutant
Messages : 12
| Sujet: Re: Problème collision Jeu 12 Avr 2012 - 19:19 | |
| Ah oui en effet, c'est plus pratique! 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 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 |
|
| |
marty Utilisateur confirmé: Rang ***
Messages : 697 Projet Actuel : laby-ereinte !
| Sujet: Re: Problème collision Jeu 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.gm6regarde 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! |
|
| |
Galaxus Débutant
Messages : 12
| Sujet: Re: Problème collision Jeu 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"? |
|
| |
marty Utilisateur confirmé: Rang ***
Messages : 697 Projet Actuel : laby-ereinte !
| Sujet: Re: Problème collision Jeu 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é
|
|
| |
Galaxus Débutant
Messages : 12
| Sujet: Re: Problème collision Jeu 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? |
|
| |
chopsuey Utilisateur confirmé: Rang ***
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
...
| Sujet: Re: Problème collision Jeu 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" |
|
| |
D-z Utilisateur confirmé: Rang *****
Messages : 1611 Localisation : Montpellier
| Sujet: Re: Problème collision Ven 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.
|
|
| |
Galaxus Débutant
Messages : 12
| Sujet: Re: Problème collision Ven 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... |
|
| |
Contenu sponsorisé
| Sujet: Re: Problème collision | |
| |
|
| |
| Problème collision | |
|