2010-11-15 51 views
2

我正在用CI中的graphics.h製作一個程序,我試圖實現矩陣屏幕保護程序,但是我在代碼中停留在這裏。字母只會掉落一次。我希望它們繼續下降(刪除文本前)。請指導我如何清除舊內容在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

回答

1

你沒有刪除或舊的位置上寫的字?所以你可能會自下而上,而不是自上而下,最後,最後打印一些空白?

補充:好吧,這是一個非常蠻力的方式來做到這一點,我不喜歡。用你的循環替換你的循環中的代碼:

  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

我沒有得到如何幫助。 – 2010-11-15 18:04:22

+0

@fahad:通常,如果我想在屏幕上顯示移動的對象,我需要弄清楚如何刪除/替換舊圖像。也許我不完全明白你在做什麼,但我在低帶寬設備上用動態圖形做了很多。順便說一句,一個有用的技術是雙緩衝,即繪製到背景位圖並將其繪製到屏幕上。知覺地說,它是瞬間的。 – 2010-11-15 20:24:46

+0

@mike:我如何向程序添加位圖圖像? – 2010-11-16 12:30:19