Page 2 sur 2
Publié : mar. 08/juin/2004 17:19
par Le Soldat Inconnu
je sais que office 2000 mettait plein de son à la c.. sur l'ordi, fait une recherche de wav.
j'avait des tirs de laser, des rebond, des toilettes (la chasse d'eau

) enfin de tous et n'importe quoi.
après, on se plaint que office prend de la place ....

Publié : mar. 08/juin/2004 19:00
par Chris
Bon, c'est pas tout ça, mais maintenant que j'ai mis les sons, ( c'est le même code, page précédente, avec les trois fichiers son à télécharger), faudrait que j'arrive à corriger le bug qui se produit quand la balle tape la raquette sur le bout!
La balle se met à rebondir comme si elle se trouvant
à l'intérieur de la raquette, et ça fait 30 points en une demi seconde
Fait ch... ça !
Quelqu'un à déjà eu ce problème avec SpriteCollision() ?, parce que là, je ne vois pas du tout quelle est la cause du problème.
(Je sais que je suis chiant, avec mon squash, mais tant quà faire, autant que je le finisse

)
Chris

Publié : mar. 08/juin/2004 19:00
par Chris
Régis, au s'cours, j'ai cliqué deux fois
Tu peux virer le dernier message, s'il te plaît ?
Chris

Publié : mar. 08/juin/2004 19:10
par comtois
ben une idée comme ça , peut-être qu'il faut faire un SensY = -SensY
quand tu touches les extrémités plutôt qu'un SensX = -SensX ?
et dans ce cas ,tu vas être obligé de tester toi même la position de ta balle en fonction de la position de la raquette , et ouais , ça ne fait pas tout le spritecollision()

Publié : mar. 08/juin/2004 19:15
par Chris
comtois a écrit :ben une idée comme ça , peut-être qu'il faut faire un SensY = -SensY
quand tu touches les extrémités plutôt qu'un SensX = -SensX ?
et dans ce cas ,tu vas être obligé de tester toi même la position de ta balle en fonction de la position de la raquette , et ouais , ça ne fait pas tout le spritecollision()

Ben j'ai essayé ça, mais ça n'a pas fonctionné. Ou alors, j'ai pas fait comme il faut. C'est possible.
Je vais réessayer, on verra bien.
Merci
Chris

Publié : mar. 08/juin/2004 19:35
par comtois
et puis une autre idée comme ça ,il ne suffit pas d'inverser le sens , il faut aussi placer la balle hors collision , sinon , il est possible que tu sois en collision sur plus d'un tour

Publié : mar. 08/juin/2004 19:51
par Chris
Ca, je l'ai pas fait, par contre. Je vais essayer ça aussi.
Merci
Chris

Publié : mer. 09/juin/2004 0:20
par Backup
fait la balle carré pour etre dans l'esprit d'epoque !!
on avais pas inventé le cercle a cette epoque !!
lorsque ta balle a touche ta raquette tu inverse tes coordonees (normal !)
mais surtout tu temporise la detection de rebond !!!
c'est indispensable pour pas que cette detection se fasse sur plusieur tour !
petit algo shematisé !
variable=11
boucle principal
variable+1
si variable>10:test balle collision raquette:endif
la balle touche la raquette:inversion des coordonees ball : variable=0
fin_boucle principal
Publié : mer. 09/juin/2004 0:24
par comtois
c'est plus propre de placer la balle au contact de la raquette et d'inverser le sens , comme ça , tu vois vraiment la balle rebondir sur la raquette , c'est mieux qu'une tempo non ?

Publié : mer. 09/juin/2004 0:35
par Chris
fait la balle carré pour etre dans l'esprit d'epoque !!
on avais pas inventé le cercle a cette epoque !!
Exact, il y avait un carré à la place de la balle. Je vais modifier ça.
petit algo shematisé ! ....
J'ai rien pigé à ce que tu me racontes

Je suis pas un habitué des trucs en 2D, moi.
Chris

Publié : mer. 09/juin/2004 0:43
par Backup
losque ta balle a touche ta raquette
il faut que tu deconnecte la detection de rebond !!
car pendant plusieur tour de boucle
la detection va continuer a se faire
hors ! si a la premiere detection tu inverse les coordonees
pour creer le rebond c'est bien
mais comme dans la boucle suivante la balle continuera de toucher la raquette les coordonnes vont encore s'inverser, ce qui fera revenir la balle vers la raquette !!!
et on recommence !! (j'ai eu le problem avec purenoide !)
la solution consiste apres le rebond a deconnecter la detection !!! pendand un laps de temps qui permet a la balle de repartir !!
car la detection ne se fait pas vraiment sur les bords des sprites !!!
mais sur une chevauche !!!!
Resultat = SpriteCollision(#Sprite1, x1, y1, #Sprite2, x2, y2)
Description
Teste si les deux Sprites se chevauchent

Publié : mer. 09/juin/2004 0:51
par Chris
Oui, en fait, ca revient à faire ça:
Code : Tout sélectionner
If SpriteCollision()
Variable = 1
...
...
...
If variable = 1
Inverse le sens
Variable = 0
endif
endif
C'est ça ?
Chris

Publié : mer. 09/juin/2004 8:23
par Backup
Chris a écrit :Oui, en fait, ca revient à faire ça:
Code : Tout sélectionner
If SpriteCollision()
Variable = 1
...
...
...
If variable = 1
Inverse le sens
Variable = 0
endif
endif
C'est ça ?
Chris

non !!
car la tu fait confiance a la fonction de detection !!
ça va marcher pour le premier tour de boucle
mais le suivant la fonction "If SpriteCollision()"
sera encore vrai , et regalere !!!
Code : Tout sélectionner
if variable=0
SpriteCollision()
flag = 1 :; cela va creer la tempo !!!
...
...
...
Inverse le sens
xball=-xball
yball=-yball
pour les rebon tu peut mettre une nouvelle condition
qui dit que si la balle est inferieur au millieu de la raquett
ell par vers le bas
si elle est superieur au millieu de la raquette
elle part vers le haut !!
endif
if flag=1
variable+1 :; on coupe la detection !!!
endif
if variable>20
variable=0 :; on rend la detection a nouveau possible !!!
flag=0
endif
bien sur le pas de la balle doit etre en dehors de cette condition
au debut du prog dans les inits
ex : xball=10 :yball=10
de cette facon la detection n'aura lieu QUE si la variable<20
donc ça laisse 20 boucle pour que la balle se barre !!

[/code]