📄 turbccartoon.c
字号:
#include<graphics.h>
#include<stdlib.h>
#include<dos.h>
int x,y,maxcolor;
void graphone(char *str); /*这个函数实现的是字符串str 左右运动,线条上下运动*/
void graphtwo(char *str); /*这个函数实现的是字符串str 上下运动,线条左右运动*/
void graphthree(char *str);
/*这个函数实现的是字符串str 由小变大,再由大变小,直线也随之变化*/
main()
{
int i,driver,mode;
char *str="W E L C O M E !";
driver=DETECT;
mode=0;
initgraph(&driver,&mode,""); //系统初始化
cleardevice(); // 清屏
settextjustify(CENTER_TEXT,CENTER_TEXT); // 设置字符串的定位模式
x=getmaxx(); // 返回当前图形模式下的最大有效的x 值
y=getmaxy(); // 返回当前图形模式下的最大有效的y 值
maxcolor=getmaxcolor(); // 返回当前图形模式下的最大有效的颜色值
while(!kbhit())
{
graphone(str); // 第一个动画
graphtwo(str); // 第二个动画
graphthree(str); // 第三个动画
}
getch();
closegraph(); // 关闭图形模式
}
void graphone(char *str)
{
int i;
for(i=0;i<40;i++)
{
setcolor(1);
settextstyle(1,0,4);
setlinestyle(0,0,3);
cleardevice();
line(150,y-i*15,150,y-300-i*15);
line(170,y-i*15-50,170,y-350-i*15);
line(130,y-i*15-50,170,y-i*15-50);
line(150,y-300-i*15,190,y-300-i*15);
line(x-150,i*15,x-150,300+i*15);
line(x-170,i*15-50,x-170,250+i*15);
line(x-150,i*15,x-190,i*15);
line(x-130,250+i*15,x-170,250+i*15);
outtextxy(i*25,150,str);
outtextxy(x-i*25,y-150,str);
delay(5000);
}
}
void graphtwo(char *str)
{
int i;
for(i=0;i<30;i++)
{
setcolor(5);
cleardevice();
settextstyle(1,1,4);
65
line(i*25,y-100,300+i*25,y-100);
line(i*25,y-120,300+i*25,y-120);
line(x-i*25,100,x-300-i*25,100);
line(x-i*25,120,x-300-i*25,120);
outtextxy(150,i*25,str);
outtextxy(x-150,y-i*25,str);
delay(5000);
}
}
void graphthree(char *str)
{
int i,j,color,width;
color=random(maxcolor); // 随机得到颜色值
setcolor(color);
settextstyle(1,0,1); // 设置字符串的格式
outtextxy(x/2,y/2-100,str); // 显示字符串
delay(8000);
for(i=0;i<8;i++) // 字符串由小变大
{
cleardevice(); // 清屏
settextstyle(1,0,i);
outtextxy(x/2,y/2-i*10-100,str);
outtextxy(x/2,y/2+i*10-100,str);
width=textwidth(str); // 得到当前字符串宽度
setlinestyle(0,0,1); // 设置画线格式
line((x-width)/2+10*(8-i),y/2+i*15-70,(x+width)/2-10*(8-i),y/2+i*15-70);
line((x-width)/2+5*(8-i),y/2+i*15-60,(x+width)/2-5*(8-i),y/2+i*15-60);
line((x-width)/2,y/2+i*15-50,(x+width)/2,y/2+i*15-50);
line((x-width)/2,y/2+i*15-20,(x+width)/2,y/2+i*15-20);
line((x-width)/2+5*(8-i)-10,y/2+i*15-10,(x+width)/2-5*(8-i),y/2+i*15-10);
line((x-width)/2+10*(8-i),y/2+i*15,(x+width)/2-10*(8-i),y/2+i*15);
delay(8000);
}
for(i=7;i>=0;i--) // 字符串由大变小
{
cleardevice(); // 清屏
settextstyle(1,0,i);
outtextxy(x/2,y/2-i*10-100,str);
outtextxy(x/2,y/2+i*10-100,str);
width=textwidth(str);
setlinestyle(0,0,1);
line((x-width)/2+10*(8-i),y/2+i*15-70,(x+width)/2-10*(8-i),y/2+i*15-70);
line((x-width)/2+5*(8-i),y/2+i*15-60,(x+width)/2-5*(8-i),y/2+i*15-60);
line((x-width)/2,y/2+i*15-50,(x+width)/2,y/2+i*15-50);
line((x-width)/2,y/2+i*15-20,(x+width)/2,y/2+i*15-20);
line((x-width)/2+5*(8-i),y/2+i*15-10,(x+width)/2-5*(8-i),y/2+i*15-10);
line((x-width)/2+10*(8-i),y/2+i*15,(x+width)/2-10*(8-i),y/2+i*15);
delay(8000);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -