2010-11-15 7 views
2

Je fais un programme avec graphics.h dans CI essaie d'implémenter l'économiseur d'écran matriciel mais je suis coincé ici dans le code. Les alphabets tombent juste une fois. Je veux qu'ils continuent de tomber (retrait du texte avant) Veuillez me guider comment effacer l'ancien contenumatrice sorte de graphiques en C

void main_page(void) 
{ 
    int i,j,k,l,m,n,size; 
    setcolor(BLUE); 
    for(i=0;i<500;i+=50) 
    { 
      settextstyle(GOTHIC_FONT,1,1); 
      outtextxy(50,50+i,"a b c"); 
      outtextxy(100,150+i,"H I J"); 
      outtextxy(150,250+i,"X Y Z"); 
      outtextxy(300,50+i,"D E F"); 
      outtextxy(350,350+i,"D E F"); 
      outtextxy(400,350+i,"D E F"); 
      outtextxy(450,350+i,"D E F"); 
      outtextxy(500,50+i,"D E F"); 
      outtextxy(550,350+i,"D E F"); 
      outtextxy(600,350+i,"D E F"); 

      delay(100); 
    } 

alt text

Répondre

1

ne vous devez effacer ou sur-écrire les caractères dans les anciens emplacements? Donc, vous pourriez le faire de bas en haut plutôt que de haut en bas, et, enfin, enfin imprimer des blancs?

AJOUTÉ: Eh bien, voici une façon vraiment brute de le faire, que je n'aime pas. Remplacez le code à l'intérieur de votre boucle avec ceci:

  settextstyle(GOTHIC_FONT,1,1); 
      outtextxy(50, 50+i,"a b c"); 
      outtextxy(100,150+i,"H I J"); 
      outtextxy(150,250+i,"X Y Z"); 
      outtextxy(300, 50+i,"D E F"); 
      outtextxy(350,350+i,"D E F"); 
      outtextxy(400,350+i,"D E F"); 
      outtextxy(450,350+i,"D E F"); 
      outtextxy(500, 50+i,"D E F"); 
      outtextxy(550,350+i,"D E F"); 
      outtextxy(600,350+i,"D E F"); 

      delay(100); 

      outtextxy(50, 50+i,"  "); 
      outtextxy(100,150+i,"  "); 
      outtextxy(150,250+i,"  "); 
      outtextxy(300, 50+i,"  "); 
      outtextxy(350,350+i,"  "); 
      outtextxy(400,350+i,"  "); 
      outtextxy(450,350+i,"  "); 
      outtextxy(500, 50+i,"  "); 
      outtextxy(550,350+i,"  "); 
      outtextxy(600,350+i,"  "); 
+0

Je n'ai pas compris comment cela aiderait. –

+0

@fahad: Généralement, si je veux afficher des objets en mouvement sur l'écran, je dois trouver comment enlever/remplacer les anciennes images. Peut-être que je ne comprends pas complètement ce que vous faites, mais j'ai fait beaucoup avec les graphiques dynamiques sur les appareils à faible bande passante. BTW, une technique utile est le double-buffering, c'est-à-dire peindre à un bitmap d'arrière-plan et le blt à l'écran. Perceptivement, c'est instantané. –

+0

@mike: comment ajouter une image bitmap à un programme? –