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

📄 advertisement.c

📁 svga演示代码,需要安装svgalib方可运行
💻 C
字号:
#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>#include <stdlib.h>#include <stdio.h>#include <vga.h>#include <vgagl.h>void draw_bmp(int x,int y,int w,int h,char *filename);void draw_text(int x,int y,unsigned char *ch);main (){int i;vga_init();vga_setmode(G800x600x256);gl_setcontextvga(G800x600x256);for(;;){sleep(2);draw_hello();sleep(2);gl_clearscreen(0);draw_bmp(200,200,320,200,"thi.bmp");for(i=200;i>0;i-=5){gl_fillbox(0,570,800,30,0);draw_text(i,580,(unsigned char *)"你猜你中什么毒了?");usleep(200000);//gl_clearscreen(0);}gl_clearscreen(0);//sleep(1);draw_bmp(0,0,800,600,"0002.bmp");sleep(2);gl_clearscreen(0);}vga_getch();vga_setmode(TEXT);return 0;}void draw_text(int x,int y,unsigned char *ch){	int i,j,k,c,l;	unsigned char mat[16][2];	unsigned char mat1[16];	char *p;	FILE *hzk,*ywk;	vga_setcolor(1);	hzk=fopen("hzk16","rb");	ywk=fopen("asc16","rb");	if (hzk==NULL)	{		perror("Open hzk16 file error");		exit(1);	}	if(ywk==NULL)	{		perror("Open asc16 file error");		exit(1);	}	l=strlen(ch);	vga_setrgbcolor(251,251,0);	for(c=0;c<l;c++)	{		if(ch[c]>127)		{			i=ch[c]-0xa0;j=ch[c+1]-0xa0;			fseek(hzk,(94*(i-1)+(j-1))*32,SEEK_SET);			fread(mat,32,1,hzk);			for(i=0;i<16;i++)				for(j=0;j<2;j++)					for(k=0;k<8;k++)						if(mat[i][j]&(0x80>>k))							vga_drawpixel(x+c*8+8*j+k,y+i);			c++;		}		else		{			fseek(ywk,ch[c]*16,SEEK_SET);			fread(mat1,16,1,ywk);			for(i=0;i<16;i++)				for(k=0;k<8;k++)					if(mat1[i]&(0x80>>k))						vga_drawpixel(x+c*8+k,y+i);		}	}	}void draw_bmp(int x,int y,int w,int h,char *filename){int fd;char header[50];void *image;unsigned char *rgb;unsigned char *data;int i;gl_setrgbpalette();image = alloca(w*h);if((fd = open(filename,O_RDONLY)) == -1){printf("can not open file\n");exit(0);}read(fd, header, 54);rgb = alloca(3);data = alloca(4);for (i=0; i<256; i++) {read(fd, data, 4);rgb[0] = (char)((int)data[2] /4);rgb[1] = (char)((int)data[1] /4);rgb[2] = (char)((int)data[0] /4);gl_setpalettecolors(i,1,rgb);}read(fd, image, w*h);close(fd);gl_putbox(x,y,w,h,image);}draw_hello(){int i;unsigned char *colors;for(i=0;i<100;i++)	{        	vga_drawscansegment(colors,70,10+i,30);		vga_drawscansegment(colors,145,10+i,30);		vga_drawscansegment(colors,100,50+i/4,45);		}	for(i=0;i<100;i++)	{	        vga_drawscansegment(colors,220,10+i,30);		vga_drawscansegment(colors,220,10+i/4,80);	        vga_drawscansegment(colors,220,50+i/4,80);		vga_drawscansegment(colors,220,90+i/4,80);		}	for(i=0;i<100;i++)		{		vga_drawscansegment(colors,350,10+i,30);		vga_drawscansegment(colors,350,90+i/4,80);	}	for(i=0;i<100;i++)		{		vga_drawscansegment(colors,470,10+i,30);		vga_drawscansegment(colors,470,90+i/4,80);	}		for(i=0;i<100;i++)	{		vga_drawscansegment(colors,600,10+i,30);		vga_drawscansegment(colors,630,10+i/4,30);		vga_drawscansegment(colors,630,85+i/4,30);		vga_drawscansegment(colors,660,10+i,30);		}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -