[debutant] [Allegro] ligne blanche [Resolut --> Bouble Buffering]

ligne blanche [Resolut --> Bouble Buffering] [debutant] [Allegro] - C++ - Programmation

Marsh Posté le 27-10-2003 à 22:25:15    

Lut
 
J'ai fait un ptit jeux de casse brique avec Allegro et Dev C++... C'est un casse brique tout con (je debut c mon 2eme jeux avec allegro)
 
En fait j'ai un probleme (en + d' autres bugs mais c juste des truc que g pas encore fait/mal fait):
 
Il y a une ligne blanche qui apparait sur l'ecran tout le temps aleatoirement... A vu de nez elle fait 1 Pixel de hauteur et la largeur de l'ecran...
 
Quand je diminue la vitesse d'execution ( avec un rest(10) je voi les ligne qui parcour l'ecran de haut en bas...
 
Qu'est ce que je peux faire???
 
(J'upload la source et l'executable si ca peux servir)
 
merci


Message édité par Toam le 28-10-2003 à 20:03:04
Reply

Marsh Posté le 27-10-2003 à 22:25:15   

Reply

Marsh Posté le 27-10-2003 à 22:52:21    

Alors le prog:
http://192.70.34.57/toam/Allegro/Casse%20Brique.exe
 
Dll pour le prog a mettre dans le meme dossier:
http://192.70.34.57/toam/Allegro/alleg40.dll
 
Et le code:
http://192.70.34.57/toam/Allegro/Casse%20Brique.cpp
 
Je presise quand meme les bug connu (ils ont rien a voire je pense mais bon):
- Pas de detection de collision sur "l'arriere" des briques
- Bug ou la balle reste bloquer entre la raquete et le mur gauche
- On peux pas gagner (je jeu stop que si on pert ou si on fait escape)


Message édité par Toam le 27-10-2003 à 22:53:39
Reply

Marsh Posté le 28-10-2003 à 00:00:13    

bo ptit prog j'aime bien (c simple mais bon)
 
jai aussi le probleme des lignes blanche (donc c pas un probleme venant de ta carte graphique)
 
un autre truc que jai remarque c la balle qui se colle et longe le pad au lieu de rebondir (meme qui rebondit qd meme a la fin)
 
je regarde le code mais je te promet rien jai utilise Allegro qu'une seule fois, dhabite jutilise directement les api (directx, opengl)

Reply

Marsh Posté le 28-10-2003 à 09:23:55    

oki merci, (ca c'est le bug 2 en fait) Je pense que c'est quand je fais le test de collision et que la balle est deja deriere la raquette...
Pour les ligne blanches j'ai tester chez un pote ca le fait aussi... Peut etre un truc d'allegro alors si tu l'a aussi

Reply

Marsh Posté le 28-10-2003 à 09:26:59    

1) Utilise un double buffer au lieu de tout blitter comme un mal propre.
2) mets tes balles/raquettes etc ... dans des bitmaps et utilise draw_sprite()
3) utilise vsync() pour te synchroniser sur le balaygae ecran.

Reply

Marsh Posté le 28-10-2003 à 12:40:38    

la solution : double buffering.
Tu crée un bitmap de la taille de l'écran, tu dessine tout dedant (draw_sprite()) et à la fin de ta boucle de jeu tu blit ce buffer sur l'écran.
Sinon, au lieu de faire de multiples Brique1.Draw(); brique2.Draw(); .. je te conseillerai de faire un tableau de cBrique (ou mieux utilise un vector).

Reply

Marsh Posté le 28-10-2003 à 14:37:54    

Merci beaucoup pour vos reponse pour la 3) de joel je l'utilise deja...
 
Donc si j'ai bien compris la soluce est le Double Buffering, j'vais modifier mon code avec vos conseil... encore merci :)
 
Et pour le tableau j'y avais pas penser car j'ai pas encore lu ce chapitre dans mon bouquin lol

Reply

Marsh Posté le 28-10-2003 à 14:38:39    

toujours groupé la creation des bitmap et autres sprite en dehors de ttes boucles d'affichage. this is da rulez :p

Reply

Marsh Posté le 28-10-2003 à 20:01:39    

Merci a tous j'ai modifier la source en ajoutant le double buffering :)
 
Et maintenant ca marche nikel (J'ai mi a jour les liens du 2eme post si vous voulez voir ce que ca donne)
 
encore merci ++

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed