Problème graphique en C [C] - Algo - Programmation
Marsh Posté le 02-04-2003 à 21:46:57
Si personne ne se manifeste, y a le principe sur http://www.brackeen.com/home/vga/unchain.html. Voir si code suffisant pour s'en sortir...
Marsh Posté le 02-04-2003 à 22:16:13
Ouais le principe j'ai compris mais le code je comprends pas tout en fait.
Le x et le y qu'ils utilisent sont des float ou des int ?
Quelles librairies faut inclure pour que les termes VGA, INPUT_STATUS_1, VRETRACE soient reconnus par Turbo C?
Marsh Posté le 03-04-2003 à 18:38:01
J'ai pas regardé (manque de temps pour ça, prog que le soir).
Les spécialistes du DOS semblent partis à la retraite...
Marsh Posté le 03-04-2003 à 19:15:19
non ils finissent leur vieux jour dans ma fac et nous obligent à nous en servir
Marsh Posté le 11-04-2003 à 17:06:59
Si tu utilises des BGI, c'est normal que ce soit lent ...
Tu es sous Dos, profite du mode 13h, il est très pratique ...
Tu bosses sur un buffer à côté et quand tu as fini, tu envoies le buffer sur l'écran (tu peux même attendre le VBlank pour être tranquille ...)
Marsh Posté le 11-04-2003 à 17:55:14
Oh la la !!! Mais pourquoi t'emmerder à ce point quand tu pourrais faire bien plus efficace :
1. Utilise le mode 13h (320*200*256)
2. Tu créé ensuite une zone mémoire ou le dessin sera effectué. Cette zone ne sera pas affichée à l'écran
3. Tu effaces cette zone
4. Tu fais tes opérations de dessin dans cette zone
5. Tu attends le VBL (=début de rafraichissement vertical de l'écran)
6. Tu bascules ton tampon en A000h
7. Retour au 3 tant que les conditions de défaite/victoire ne sont pas atteintes
Marsh Posté le 11-04-2003 à 17:57:14
Harkonnen a écrit : |
c'est ce que je voulais dire !
Marsh Posté le 11-04-2003 à 18:00:29
theShOcKwAvE a écrit : |
je viens effectivement de m'apercevoir que je me suis fait griller en beauté sur ce coup
Marsh Posté le 11-04-2003 à 18:08:31
Harkonnen a écrit : |
On va dire que c'est pas tout à fait grillé : tu donnes quand même plus de précisions que moi ...
Allez, pour le coup, juste pour dire ...
Pour passer en mode 13h :
MOV AL, 13h
INT 10h
Marsh Posté le 11-04-2003 à 18:51:10
j'ai trouvé une solution , j'utilise la fonction delay() et l'effet saccadé n'est plus là.
Marsh Posté le 12-04-2003 à 00:01:06
sylsau a écrit : j'ai trouvé une solution , j'utilise la fonction delay() et l'effet saccadé n'est plus là. |
Tu serais pas en train de nous dire que tu rejette notre belle solution commune, là ? Ca te plait pas, le 13h ?
Marsh Posté le 12-04-2003 à 00:02:54
encore un qui ne sait pas ce qu'il loupe...
Marsh Posté le 02-04-2003 à 21:06:08
salut
je programme en C sous turbo C (ouais je sais c un vieux compilo tout pourri lol mais ils y nous imposent ça à la fac ).
Et j'ai un petit pb avec le mode graphique.
En fait je fais un casse briques tout marche à peu près bien mais le déplacement de la balle se fait de manière saccadé.
La balle (représenté par un cercle) se déplace comme il faut mais ça se voit qu'à chaque fois la position précédente est effacée.
voici juste comme je fais descendre un cercle depuis le haut de l'écran :
voilà donc ma question : comment enlever cet effet saccadé ? Il existerait pas une fonction dans Turbo C permettant justement d'enlever cet effet ?
on m'a dit que ça proviendrait de la lenteur de rafraîchissement de la mémoire video en simple-buffering, la seule façon de supprimer cet effet étant d'utiliser le double-buffering.
Vous sauriez comment faire ?
merci d'avance
a+
sylvain