⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 turbccartoon.c

📁 用Turbo C 实现动画的一个简单的实现方法 这种简单方法利用cleardevice()和delay()函数相互配合
💻 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 + -