PONG en sdl - C - Programmation
Marsh Posté le 23-06-2006 à 18:15:02
Ben, si pballe.y est égal à 451 on va un peu tourner en rond, j'ai l'impression.
Marsh Posté le 24-06-2006 à 13:16:08
En realité pballe.y est unsigned donc jamais inferieur a zero
Marsh Posté le 24-06-2006 à 14:40:10
Ca ne change rien et ça montre que c'est programmé un peu "bizarrement", ty peux virer ton test inutile).
A toi de voir ce que tu dois faire lorsque pballe.y devient supérieur à 450. y négatif correspond à quoi ?
Marsh Posté le 24-06-2006 à 17:52:53
je ne comprend pas ce que tu dis.
le prog marche avec un if(pballe.y == 0).
le test sert a detecter une collision avec le bord de l'ecran.
et y corresond a la "vitesse" verticale de la balle qui s'inverse lors de la collision pour simuler un rebond.
Voila.
Le code est certainement un peu alambiqué, premierement parce que je ne suis pas un pro en C et aussi parce que je fais un pong un peu perso, la gestion est "artisanale" et c'est pourquoi j'aurai aimé des critiques sur le code. Pour l'ameliorer, le simplifier, bref le rapprocher d'un pong traditionnel.
Marsh Posté le 24-06-2006 à 22:30:11
OK.
Je regarde simplement ton code, je ne peux pas tester je n'ai pas SDL.
Je viens de voir ça aussi :
Code :
|
Si tu veux faire un et logique il faut mettre && et non pas & qui est le et binaire.
Marsh Posté le 25-06-2006 à 12:16:40
ok merci je n'avais pas fait attention et tout semblait se passer normalement.
Je modifie. Le pong est terminé, avec un peu de mal pour gerer des trajectoire qui ne soit pas trop monotone lorsque la raquette est gérée par l'ordi.
A ce propos comment peut on generer un nombre entier relatif aleatoirement en C ?
Marsh Posté le 25-06-2006 à 13:50:02
Pour obtenir un nombre compris entre a et b entiers quelconques, tu fais
int randomValue = a + (int)((float)rand() / RAND_MAX * (b - a));
Marsh Posté le 23-06-2006 à 18:06:40
Salut,
je m'initie en ce moment a la programmation en 2D en C avec la librairie sdl.
Pour commencer doucement j'essaie de coder un PONG (tres basique).
Le jeu n'est pas terminé mais déjà je n'arrive pas a gerer la collision avec le haut de l'ecran pour que la "bille" redescende.
Voila le code:
je pense que le probleme vient de cette partie (d'ou sinon)
Pourquoi ca ne marche pas ?
Par ailleurs pourriez vous me donner quelques conseil sur le code pour l'ameliorer ou l'epurer ...
Merci