Auteur |
Message |
sasuke83
Newbiiiie
Sexe:
Messages: 9
Localisation: var-83
|
Posté le:
Lun 13 Nov 2006 - 17:55 |
|
Salut a tous !
J'ai un petit probléme de programmation, (c'est mes debut), j'ai essayé pendant des heures sans trouver de solution :
Avec Quick basic, j'ai programmer 2 boules qui se proménent sur l'ecran, et qui rebondissent sur les bord de l'ecran. j'usque là tout va bien.
Maintenant il faut que mes 2 boules entre en colision et rebondissent quand elle se touche (au lieu de se traverser comme elles le font actuellement).
Pour ça, je dois utilisé pythagore, mais aprés de nombreux essais je n'y arrive toujours pas.
Quelqu'un pourrait'il m'aider ? merci
*pour la condition avec pythagore, j'ai essayer toutes les combinaisons;<,>,=
SOIT es boules se traversent, soit les boules ne bouge pas (un PAS et un -pas a l'infini je pense) donc on dorais quelles ne bougent pas.
voici mon code
Xdepart = 30 Ydepart = 85 Xdepart2 = 310 Ydepart2 = 200 largeurecran = 600 hauteurecran = 450 pasX = 1
pasX2 = 1 pasY = 1 pasY2 = 1 Ycercle = Ydepart Xcercle = Xdepart Ycercle2 = Ydepart2 Xcercle2 = Xdepart2
rayon = 30 rayon2 = 30 SCREEN 12
WHILE (1)
CIRCLE (Xold, Yold), rayon, 0
CIRCLE (Xcercle, Ycercle), rayon, 3
Xold = Xcercle
Xcercle = Xcercle + pasX
IF (Xcercle >= largeurecran) OR (Xcercle <= 0) THEN
pasX = -pasX
END IF
Yold = Ycercle
Ycercle = Ycercle + pasY
IF (Ycercle >= hauteurecran) OR (Ycercle <= 0) THEN
pasY = -pasY
END IF |
Dernière édition par sasuke83 le Lun 13 Nov 2006 - 18:31; édité 4 fois |
|
|
|
N'oubliez pas de vous inscrire à la communauté pour participer. Si vous êtes déjà membre, connectez-vous pour faire disparaître ce bandeau publicitaire. |
sasuke83
Newbiiiie
Sexe:
Messages: 9
Localisation: var-83
|
Posté le:
Lun 13 Nov 2006 - 18:08 |
|
CIRCLE (Xold2, Yold2), rayon2, 0
CIRCLE (Xcercle2, Ycercle2), rayon2, 12
Xold2 = Xcercle2
Xcercle2 = Xcercle2 + pasX2
IF (Xcercle2 >= largeurecran) OR (Xcercle2 <= 0) THEN
pasX2 = -pasX2
END IF
Yold2 = Ycercle2
Ycercle2 = Ycercle2 + pasY2
IF (Ycercle2 >= hauteurecran) OR (Ycercle2 <= 0) THEN
pasY2 = -pasY2
END IF
IF ((rayon + rayon2) ^ 2) < ((Ycercle2 - Ycercle) ^ 2) + ((Xcercle2 + Xcercle) ^ 2) THEN
pasY2 = -pasY2
pasX2 = -pasX2
pasY = -pasY
pasX = -pasX
END IF
FOR tempo = 1 TO 10000
NEXT
WEND |
Dernière édition par sasuke83 le Lun 13 Nov 2006 - 20:45; édité 4 fois |
|
|
|
sasuke83
Newbiiiie
Sexe:
Messages: 9
Localisation: var-83
|
Posté le:
Lun 13 Nov 2006 - 18:17 |
|
désoler mais je n'arrivve pas a poster mon code, le forum me bouffe une bonne partie du lieu du code, c pourtant du format texte, quand je fais "editer", c'est le code compler, mais aprés ça me donne k1 partie du code
Question Question Question Question Question Question |
|
|
|
|
elTiGrOu
Forumeur fréquent
Sexe:
Messages: 80
Localisation: Seyssel (01)
|
Posté le:
Lun 13 Nov 2006 - 18:29 |
|
T'as essayé la balise [code*] ... [/code*] sans les étoiles.
TiGrOu. |
_________________ Pouêt Pouêt ! |
|
|
|
sasuke83
Newbiiiie
Sexe:
Messages: 9
Localisation: var-83
|
Posté le:
Lun 13 Nov 2006 - 18:36 |
|
Ca y est j'ai reussi a poster mon code correctement !!!
(sur 2 poste...)
le premier cercle sur le 1er post, et tt le reste sur le second
Je crois qu'il suffisait de cocher "désactiver le htlm et le BBcode"
Voila merci!
quelqu'un aurait'il une solution pour ma programmation ?
merci |
|
|
|
|
sasuke83
Newbiiiie
Sexe:
Messages: 9
Localisation: var-83
|
Posté le:
Mar 14 Nov 2006 - 00:02 |
|
C'est bon j'ai trouvé, merci. |
|
|
|
|
dununfolette
Modérateur
Sexe:
Messages: 2497
Localisation: chambéry (73)
|
Posté le:
Mar 14 Nov 2006 - 09:21 |
|
Si tu as trouvé c'est toujours sympa de donner la solution pour des gens qui se trouveraient dans le même cas que toi ou quelque chose d'approchant |
_________________ Doudou BTS IG ARLE eu et LP Réseaux Sans Fil et Sécurité validée ! Boulot, boulot, boulot...
Pensez à valider votre profil !
|
|
|
|
sasuke83
Newbiiiie
Sexe:
Messages: 9
Localisation: var-83
|
Posté le:
Jeu 16 Nov 2006 - 22:48 |
|
Pas de problémes, voila la solution:
la solution, ou plutot l'erreur étais dans cette ligne:
IF ((rayon + rayon2) ^ 2) =< ((Ycercle2 - Ycercle) ^ 2) + ((Xcercle2 + Xcercle) ^ 2) THEN
IL fallait mettre ((Xcercle2 - Xcercle), et non pas +
Mais ça métonerrais qu'il y est d'autres personnes concerné par mon probléme lol.
Mais je suis tout a fais d'accord avec le principe ! |
|
|
|
|
|