| Script pour éviter les rebonds perpétuels... | |
|
+7brachius M@d_Doc jo CoDeAVE Wargamer Dan_lizhot franck 11 participants |
Auteur | Message |
---|
franck Bavard
Messages : 92 Projet Actuel : Oui
| Sujet: Script pour éviter les rebonds perpétuels... Mar 5 Fév 2008 - 12:26 | |
| Bonjour,
Comme le titre l'indique, je cherche une solution pour éviter que la balle (casse-brique), ne rebondisse pas indéfiniment d'un mur à l'autre.
Horizontalement par exemple, la balle ne fait que des allés et retour perpétuellement sans changer de direction.
Je suppose qu'un petit script pour la balle devrait être possible, en comptant le nombre de rebonds, comme il y a 3 murs, une détection de rebonds perpétuels pourrait se faire au delà de 4 rebonds et déclencher un changement de direction pour la balle.
Après... je ne sais pas faire ce script... et c'est là que j'aurai besoin de votre aide...
@+ |
|
| |
Dan_lizhot Modérateur
Messages : 3463 Projet Actuel : Crypt Of Darkness
| Sujet: Re: Script pour éviter les rebonds perpétuels... Mar 5 Fév 2008 - 12:48 | |
| je crois que ceci pourrait faire l'affaire. À mettre dans step de la balle - Code:
-
if direction=0 or direction=180 {direction+=1;}; |
|
| |
franck Bavard
Messages : 92 Projet Actuel : Oui
| Sujet: Re: Script pour éviter les rebonds perpétuels... Mar 5 Fév 2008 - 13:09 | |
| Merci beaucoup Dan, Ce script fonctionne très bien. J'ai changé l'angle de 1° par 5° sinon, un seul degré de progression... c'est long. Est-il possible de conserver une trajectoire horizontale ou verticale avec une condition nombre de rebonds ? Ex : Au delà de 4 rebonds verticaux ou horizontaux... changement de direction de la balle de X° (5, 10, 25... 45°) ? J'ai fait le script comme ceci pour avoir la condition H et V : - Code:
-
if direction=0 or direction=180 {direction+=5;};
if direction=90 or direction=270 {direction+=5;}; |
|
| |
Wargamer *Excellent utilisateur*
Messages : 6938 Projet Actuel : Bataille de cake au fruits
| Sujet: Re: Script pour éviter les rebonds perpétuels... Mer 6 Fév 2008 - 1:35 | |
| un simple variable devrai sufir mur hit+=1 if hit>3 direction+=5 batte hit=0 _________________ Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend |
|
| |
CoDeAVE Utilisateur confirmé: Rang **
Messages : 408 Localisation : Québec
| Sujet: Re: Script pour éviter les rebonds perpétuels... Mer 6 Fév 2008 - 3:59 | |
| Moi je met un peu de gravité a ma balle
Dernière édition par CoDeAVE le Ven 31 Juil 2009 - 5:38, édité 1 fois |
|
| |
jo *Excellent utilisateur*
Messages : 4879 Localisation : CENSURE T_T Projet Actuel : FAC
| Sujet: Re: Script pour éviter les rebonds perpétuels... Mer 6 Fév 2008 - 11:27 | |
| - franck a écrit:
- Merci beaucoup Dan,
Ce script fonctionne très bien. J'ai changé l'angle de 1° par 5° sinon, un seul degré de progression... c'est long.
Est-il possible de conserver une trajectoire horizontale ou verticale avec une condition nombre de rebonds ?
Ex : Au delà de 4 rebonds verticaux ou horizontaux... changement de direction de la balle de X° (5, 10, 25... 45°) ?
J'ai fait le script comme ceci pour avoir la condition H et V :
- Code:
-
if direction=0 or direction=180 {direction+=5;};
if direction=90 or direction=270 {direction+=5;}; oui bien sur il y a moyen dans l'event collision avec le mur, hit+=1 if hit=4 { direction+=10 hit=0 } EDIT : ton script est correct , mais la direction ne changera que dans le sens contraire des aiguilles d'une montre, c'est mieu de mettre un random _________________ http://viciousslugs.sup.fr/ <- Des imbéciles en action. Venez visiter, on recherche des lecteurs, des auteurs, et ça paye mal. En fait ça paye pas, mais ya moyen de se marrer. |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Script pour éviter les rebonds perpétuels... Mer 6 Fév 2008 - 11:32 | |
| je pense qu'il ne veux comptabiliser les hits que si a balle est verticale/horizontale. Ca donne : dans create : - Code:
-
hit=0 dans event collision mur : - Code:
-
if direction/90=round(direction/90) hit+=1
if hit=4 { direction+=10*round(random(1)) hit=0} brefm si la balle a une direction "perpetuelle", au bout de 4 rebonds, sa direction augmente oudiminue (aleatoire) de 10... _________________ Tous les icones de gm utilisables sur le cbna ICI |
|
| |
jo *Excellent utilisateur*
Messages : 4879 Localisation : CENSURE T_T Projet Actuel : FAC
| Sujet: Re: Script pour éviter les rebonds perpétuels... Mer 6 Fév 2008 - 11:35 | |
| ah okayyyy j'avais mal compris _________________ http://viciousslugs.sup.fr/ <- Des imbéciles en action. Venez visiter, on recherche des lecteurs, des auteurs, et ça paye mal. En fait ça paye pas, mais ya moyen de se marrer. |
|
| |
brachius Bavard
Messages : 105 Localisation : Belgique Projet Actuel : XyD
| Sujet: Re: Script pour éviter les rebonds perpétuels... Jeu 7 Fév 2008 - 0:01 | |
| J'avais eu le même prob et a l'époque je ne codais pas en GML mais j'avais réglé ce probleme pour mon délanoid comme ceci : Alors pour régler ce prob j'ai fais un script qui fais ceci : A la création de la balle je crée une variable rebond = 0 et une variable tempsrebond = 1 Ensuite je dit que si tempsrebond - rebond = 0 alors change l'angle de rebond lorsque la balle rebondit sur un mur la variable rebond = tempsrebond dans le step de la balle je met rebond = rebond + 1 ça marche nickel |
|
| |
edi9999 Utilisateur confirmé: Rang *****
Messages : 2480 Localisation : France Projet Actuel : theatre flashy
| Sujet: Re: Script pour éviter les rebonds perpétuels... Ven 8 Fév 2008 - 10:51 | |
| il y a aussi l autre bug qui arrive très souvent quand la balle reste coincée: pour le résoudre:
calcul de la vitesse moyenne a mettre dans step
dist[30]=point_distance(xprevious,yprevious,x,y)
dist_tot=0
for (i=30.i>=2.i-=1) { dist[i-1]=dist[i] dist_tot+=dist[i] }
moy=dist_tot/30
if speed<moy*130/100 && speed>moy*70/100 { return 1 } else { return 0 } |
|
| |
master47 Utilisateur confirmé: Rang *****
Messages : 2368 Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio
| Sujet: Re: Script pour éviter les rebonds perpétuels... Ven 8 Fév 2008 - 11:14 | |
| Une simple friction suffit. |
|
| |
franck Bavard
Messages : 92 Projet Actuel : Oui
| Sujet: Re: Script pour éviter les rebonds perpétuels... Ven 8 Fév 2008 - 14:57 | |
| Merci edi9999, c'est aussi le problème que je rencontre (balle qui coince).
Merci à tous pour vos réponses bien expliquées, il n'y a que la solution de friction que master47 propose que j'ai du mal à saisir... |
|
| |
franck Bavard
Messages : 92 Projet Actuel : Oui
| Sujet: Re: Script pour éviter les rebonds perpétuels... Jeu 21 Fév 2008 - 15:42 | |
| Bonjour,
Apparemment, cela bug aussi en diagonale, la balle rebondit parfois indéfiniment d'un mur à l'autre... :non2: |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Script pour éviter les rebonds perpétuels... Ven 22 Fév 2008 - 9:19 | |
| dans ce cas crée une variable old_direction pour stocker la direction avant le rebond. - Citation :
- if direction mod 180 = old_direction mod 180
hit+=1 ca remplace ton ancien script et ca marche tout le temps. Ne sachant pas exactement ou se fait le changement de direction, je te conseille de faire old_direction=direction au döbut de l'event de collision et de mettre une alarme de un step pour voir seulement APRES le changement de direction si la direction est opposée... _________________ Tous les icones de gm utilisables sur le cbna ICI |
|
| |
Invité Invité
| Sujet: Re: Script pour éviter les rebonds perpétuels... Ven 22 Fév 2008 - 9:53 | |
| waw c'est chaud modulo, ça doit être pratique mais là j'aurais aucune idée de quand l'utiliser |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Script pour éviter les rebonds perpétuels... Ven 22 Fév 2008 - 9:58 | |
| modulo -> mathematiquement, ca donne le reste de la division euclidienne du nombre par le modulo, mais ici on dira plutôt que ca sert à trouver la correspondance d'un nombre dans un intervalle. ex : 5 mod 3 = 2 270 mod 180 = 90 pour ramener un angle a un intervalle compris entre 0 et 360 : angle=angle mod 360 bref, des modulos, quoi ^^ _________________ Tous les icones de gm utilisables sur le cbna ICI |
|
| |
franck Bavard
Messages : 92 Projet Actuel : Oui
| Sujet: Re: Script pour éviter les rebonds perpétuels... Ven 22 Fév 2008 - 17:47 | |
| Merci M@d_Doc, je vais faire un essai avec ça.
Je vous tiens au courant de la suite si ça vous intéresse... @+ |
|
| |
daminetreg Administrateur
Messages : 16998 Localisation : Siege du CBNA! Projet Actuel : Site Web du CBNA, version beta :
| Sujet: Re: Script pour éviter les rebonds perpétuels... Mer 27 Fév 2008 - 1:11 | |
| Topic Déplacé de Script GML vers Aide Débutants _________________ Mon CV : fr - de - en Tous Ensemble! Réalisons! |
|
| |
notiz85 Utilisateur confirmé: Rang *****
Messages : 2004 Localisation : Vendée Projet Actuel : Moteur d'ombre pour un projet plateforme 2D...
| Sujet: Re: Script pour éviter les rebonds perpétuels... Mer 27 Fév 2008 - 11:10 | |
| Juste une petite question, on peut pas mettre le signe modulo (%) ? dans GM ? Il reconnait que mod ? _________________ |
|
| |
M@d_Doc Modérateur
Messages : 6600 Localisation : 47°44'8.04 Projet Actuel : aucun
| Sujet: Re: Script pour éviter les rebonds perpétuels... Mer 27 Fév 2008 - 11:27 | |
| non ca marche pas _________________ Tous les icones de gm utilisables sur le cbna ICI |
|
| |
Contenu sponsorisé
| Sujet: Re: Script pour éviter les rebonds perpétuels... | |
| |
|
| |
| Script pour éviter les rebonds perpétuels... | |
|