8Fermer10
philip-lynxLe 03/02/2011 à 17:14
RYGAR (./8) :
Bon j'avance mais c'est lent tongue
Je suis parti sur l'idée d'un petit pong qui me semble assez simple et permettrait de bien comprendre l'histoire des collisions.
J'ai donc deux raquette une rouge une bleu et une balle blanche qui ce ballade de droite à gauche (oui je vais pas me lancer dans les histoires de trajectoires c'est pas le moment)

Donc la balle commence à ce déplacer à droite si je ne fais rien la balle rebondi sur le mur et par dans l'autre sens. Moi je voudrais que si je dirige la raquette de droite en face la balle la balle change de direction à son contact. J'ai tenté cela mais ça marche po sad

if (balley>raquetterougey-5)
{
--ballex;SCBX(SCBballe) = ballex;

}

C'est normal que ça marche pas. Ta balle est un objet, et tout objet doit avoir un état... un peu comme les humains wink
exemple:
Si philippe = 0 Alors philippe fait dodo
Si philippe = 1 Alors philippe est réveillé
Si philippe = 2 Alors philippe marche tout droit
Si philippe = 4 Alors philippe se dirige vers à droite
Si philippe = 5 Alors philippe se dirige vers à gauche

Pour le jeu Fission, j'ai utilisé une variable, que j'ai nommé bdirx (ball direction X),
et j'ai décidé que:
Si bdirx = 1 Alors la balle va à droite
Si bdirx = -1 Alors la balle va à gauche

ça devrait donner ça: if (bdir == 1 & balley>raquetterougey-5) { bdir = -1; } if (bdir == 1) // Si ball va à droite, Alors... { ++ballex;SCBX(SCBballe) = ballex; } if (bdir == -1) // Si ball va à gauche, Alors... { --ballex;SCBX(SCBballe) = ballex; }


ps: Si tu as compris le code ci dessus, tu placera ensuite la première condition dans la 2ème, afin de limiter le nombre de condition lu par la machine à chaque boucle/cycle (la LYNX codé en C a des limites (8 bit))