AccueilAccueil  FAQFAQ  RechercherRechercher  Dernières imagesDernières images  S'enregistrerS'enregistrer  Connexion  
Le deal à ne pas rater :
Réassort du coffret Pokémon 151 Électhor-ex : où l’acheter ?
Voir le deal

 

 Script pour éviter les rebonds perpétuels...

Aller en bas 
+7
brachius
M@d_Doc
jo
CoDeAVE
Wargamer
Dan_lizhot
franck
11 participants
AuteurMessage
franck
Bavard
franck


Messages : 92
Projet Actuel : Oui Smile

Script pour éviter les rebonds perpétuels... Empty
MessageSujet: Script pour éviter les rebonds perpétuels...   Script pour éviter les rebonds perpétuels... EmptyMar 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...

@+
Revenir en haut Aller en bas
http://www.fktech/eu
Dan_lizhot
Modérateur
Dan_lizhot


Messages : 3463
Projet Actuel : Crypt Of Darkness

Script pour éviter les rebonds perpétuels... Empty
MessageSujet: Re: Script pour éviter les rebonds perpétuels...   Script pour éviter les rebonds perpétuels... EmptyMar 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;};
Revenir en haut Aller en bas
franck
Bavard
franck


Messages : 92
Projet Actuel : Oui Smile

Script pour éviter les rebonds perpétuels... Empty
MessageSujet: Re: Script pour éviter les rebonds perpétuels...   Script pour éviter les rebonds perpétuels... EmptyMar 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;};
Revenir en haut Aller en bas
http://www.fktech/eu
Wargamer
*Excellent utilisateur*
Wargamer


Messages : 6938
Projet Actuel : Bataille de cake au fruits

Script pour éviter les rebonds perpétuels... Empty
MessageSujet: Re: Script pour éviter les rebonds perpétuels...   Script pour éviter les rebonds perpétuels... EmptyMer 6 Fév 2008 - 1:35

un simple variable devrai sufir
Event - Collision mur
hit+=1
Event - Step
if hit>3
direction+=5
Event - Collision batte
hit=0

_________________
Script pour éviter les rebonds perpétuels... Wargamer3
Règle #1 du CBNA, ne pas chercher à faire dans la subtilité; personne comprend
Revenir en haut Aller en bas
CoDeAVE
Utilisateur confirmé: Rang **
CoDeAVE


Messages : 408
Localisation : Québec

Script pour éviter les rebonds perpétuels... Empty
MessageSujet: Re: Script pour éviter les rebonds perpétuels...   Script pour éviter les rebonds perpétuels... EmptyMer 6 Fév 2008 - 3:59

Moi je met un peu de gravité a ma balle super


Dernière édition par CoDeAVE le Ven 31 Juil 2009 - 5:38, édité 1 fois
Revenir en haut Aller en bas
jo
*Excellent utilisateur*
jo


Messages : 4879
Localisation : CENSURE T_T
Projet Actuel : FAC

Script pour éviter les rebonds perpétuels... Empty
MessageSujet: Re: Script pour éviter les rebonds perpétuels...   Script pour éviter les rebonds perpétuels... EmptyMer 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 super

_________________
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.
Revenir en haut Aller en bas
http://psyckho.skyrock.com/
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Script pour éviter les rebonds perpétuels... Empty
MessageSujet: Re: Script pour éviter les rebonds perpétuels...   Script pour éviter les rebonds perpétuels... EmptyMer 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...

_________________
Script pour éviter les rebonds perpétuels... Control-commentTous les icones de gm utilisables sur le cbna ICI  Script pour éviter les rebonds perpétuels... Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
jo
*Excellent utilisateur*
jo


Messages : 4879
Localisation : CENSURE T_T
Projet Actuel : FAC

Script pour éviter les rebonds perpétuels... Empty
MessageSujet: Re: Script pour éviter les rebonds perpétuels...   Script pour éviter les rebonds perpétuels... EmptyMer 6 Fév 2008 - 11:35

ah okayyyy j'avais mal compris happy1

_________________
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.
Revenir en haut Aller en bas
http://psyckho.skyrock.com/
brachius
Bavard
brachius


Messages : 105
Localisation : Belgique
Projet Actuel : XyD

Script pour éviter les rebonds perpétuels... Empty
MessageSujet: Re: Script pour éviter les rebonds perpétuels...   Script pour éviter les rebonds perpétuels... EmptyJeu 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 Wink
Revenir en haut Aller en bas
http://www.brachius2000.be
edi9999
Utilisateur confirmé: Rang *****
edi9999


Messages : 2480
Localisation : France
Projet Actuel : theatre flashy

Script pour éviter les rebonds perpétuels... Empty
MessageSujet: Re: Script pour éviter les rebonds perpétuels...   Script pour éviter les rebonds perpétuels... EmptyVen 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
}

_________________
Mes tutos sur le site: -Tutoriel débutant- Tutoriel intermédiaire
Venez sur http://gameplay.c.la pour des tutos sur mon site.
Utilisez des hébérgeurs gratuits et sans temps d'attente!:
http://willhostforfood.com/
Revenir en haut Aller en bas
http://gameplay.c.la/
master47
Utilisateur confirmé: Rang *****
master47


Messages : 2368
Projet Actuel :
-------------------
> PacWars
> The Perfect Pattern Studio

Script pour éviter les rebonds perpétuels... Empty
MessageSujet: Re: Script pour éviter les rebonds perpétuels...   Script pour éviter les rebonds perpétuels... EmptyVen 8 Fév 2008 - 11:14

Une simple friction suffit.

_________________
Suivez la timeline ! The PacWars Timeline
C# .NET, Web & Sound Design.
---
Oldies: http://livegallery.lescigales.org/
Lawl :
Spoiler:
Revenir en haut Aller en bas
http://theperfectpattern.tumblr.com
franck
Bavard
franck


Messages : 92
Projet Actuel : Oui Smile

Script pour éviter les rebonds perpétuels... Empty
MessageSujet: Re: Script pour éviter les rebonds perpétuels...   Script pour éviter les rebonds perpétuels... EmptyVen 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...
Revenir en haut Aller en bas
http://www.fktech/eu
franck
Bavard
franck


Messages : 92
Projet Actuel : Oui Smile

Script pour éviter les rebonds perpétuels... Empty
MessageSujet: Re: Script pour éviter les rebonds perpétuels...   Script pour éviter les rebonds perpétuels... EmptyJeu 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:
Revenir en haut Aller en bas
http://www.fktech/eu
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Script pour éviter les rebonds perpétuels... Empty
MessageSujet: Re: Script pour éviter les rebonds perpétuels...   Script pour éviter les rebonds perpétuels... EmptyVen 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...

_________________
Script pour éviter les rebonds perpétuels... Control-commentTous les icones de gm utilisables sur le cbna ICI  Script pour éviter les rebonds perpétuels... Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
Invité
Invité




Script pour éviter les rebonds perpétuels... Empty
MessageSujet: Re: Script pour éviter les rebonds perpétuels...   Script pour éviter les rebonds perpétuels... EmptyVen 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 rire
Revenir en haut Aller en bas
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Script pour éviter les rebonds perpétuels... Empty
MessageSujet: Re: Script pour éviter les rebonds perpétuels...   Script pour éviter les rebonds perpétuels... EmptyVen 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 ^^

_________________
Script pour éviter les rebonds perpétuels... Control-commentTous les icones de gm utilisables sur le cbna ICI  Script pour éviter les rebonds perpétuels... Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
franck
Bavard
franck


Messages : 92
Projet Actuel : Oui Smile

Script pour éviter les rebonds perpétuels... Empty
MessageSujet: Re: Script pour éviter les rebonds perpétuels...   Script pour éviter les rebonds perpétuels... EmptyVen 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... @+
Revenir en haut Aller en bas
http://www.fktech/eu
daminetreg
Administrateur
daminetreg


Messages : 16998
Localisation : Siege du CBNA!
Projet Actuel : Site Web du CBNA, version beta :

Script pour éviter les rebonds perpétuels... Empty
MessageSujet: Re: Script pour éviter les rebonds perpétuels...   Script pour éviter les rebonds perpétuels... EmptyMer 27 Fév 2008 - 1:11

Exclamation Topic Déplacé de Script GML vers Aide Débutants

_________________
Mon CV : fr - de - en
Le CBNA Tous Ensemble! Réalisons!
Script pour éviter les rebonds perpétuels... U3dfr2
Revenir en haut Aller en bas
http://lecbna.org/
notiz85
Utilisateur confirmé: Rang *****
notiz85


Messages : 2004
Localisation : Vendée
Projet Actuel : Moteur d'ombre pour un projet plateforme 2D...

Script pour éviter les rebonds perpétuels... Empty
MessageSujet: Re: Script pour éviter les rebonds perpétuels...   Script pour éviter les rebonds perpétuels... EmptyMer 27 Fév 2008 - 11:10

Juste une petite question, on peut pas mettre le signe modulo (%) ?
dans GM ? Il reconnait que mod ? triste

_________________
Script pour éviter les rebonds perpétuels... 577128485
Revenir en haut Aller en bas
http://gmnotiz.fr.nf/
M@d_Doc
Modérateur
M@d_Doc


Messages : 6600
Localisation : 47°44'8.04
Projet Actuel : aucun

Script pour éviter les rebonds perpétuels... Empty
MessageSujet: Re: Script pour éviter les rebonds perpétuels...   Script pour éviter les rebonds perpétuels... EmptyMer 27 Fév 2008 - 11:27

non ca marche pas

_________________
Script pour éviter les rebonds perpétuels... Control-commentTous les icones de gm utilisables sur le cbna ICI  Script pour éviter les rebonds perpétuels... Main1-change-sprite
Revenir en haut Aller en bas
http://www.lecbna.org
Contenu sponsorisé





Script pour éviter les rebonds perpétuels... Empty
MessageSujet: Re: Script pour éviter les rebonds perpétuels...   Script pour éviter les rebonds perpétuels... Empty

Revenir en haut Aller en bas
 
Script pour éviter les rebonds perpétuels...
Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Script: Eviter la déformation des sprites
» Script pour menu
» Script Pour Caterpillar
» Script pour limiter à 8 directions
» trop de données pour le script

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: