c - C中的矩阵排序图形

标签 c bgi

我正在用 C 中的 graphics.h 制作一个程序。我正在尝试实现矩阵屏幕保护程序,但我被困在代码中。字母只下降一次。我希望它们继续下降(之前删除文本) .请指导我如何清除旧内容

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

最佳答案

难道你不必删除或重写旧位置的字符吗?所以你可以自下而上而不是自上而下,最后打印一些空白?

添加:好吧,这是一种非常蛮力的方法,我不喜欢。将循环中的代码替换为:

            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,"     ");

关于c - C中的矩阵排序图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4186807/

相关文章:

c++ - 如何为 dy>dx 编写 bresenhams 画线程序?

c - 使用管道在进程之间交换信息

c - 以不规则速率存储二维数据

c - 使用 ncurses 接收异步用户和外部输入

c - 为什么它们都指向同一个地方?

c - 加载图形文件

C:使用floodfill填充一个圆

c - 使用 C 识别等差

c++ - graphics.h 没有输出