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

📄 asc16.h

📁 c游戏编程从入门到精通_全部源代码和文档
💻 H
字号:
void Read_Asc16(int key,unsigned char *buf)
{
int handle;
long address;
handle=open("asc16",O_RDONLY|O_BINARY);
address=key*16l;
lseek(handle,address,SEEK_SET);
read(handle,buf,16);
close(handle);
}
void Put_Asc16(int cx,int cy,int key,int fcolor)
{
int a,b;
unsigned char buf[16];
Read_Asc16(key,buf);
for(a=0;a<16;a++)
for(b=0;b<8;b++)
if((buf[a]>>7-b)&1)
video_buffer[(((cy+a)<<8)+((cy+a)<<6))+cx+b]=fcolor;
}

void Put_Asc16_Size(int cx,int cy,int xsize,int ysize,int key,int fcolor)
{
	int a,b,o,k;
	unsigned char buf[16];
	Read_Asc16(key,buf);
	for(a=0;a<16;a++)
		for(o=1;o<=ysize;o++)
			for(b=0;b<8;b++)
				for(k=1;k<=xsize;k++)
					if((buf[a]>>7-b)&1)
						video_buffer[(((cy+o+a*ysize)<<8)+((cy+o+a*ysize)<<6))+cx+xsize*b+k]=fcolor;
}


void Put_Asc16_Size_Format(int cx,int cy,int xsize,int ysize,int key,int fcolor,int bold,int i)
{
	int a,b,o,k;
	long address;
	unsigned char buf[16];
	Read_Asc16(key,buf);
	for(a=0;a<16;a++)
		for(o=1;o<=ysize;o++)
			for(b=0;b<8;b++)
				for(k=1;k<=xsize;k++)
					if((buf[a]>>7-b)&1)
						if(fcolor!=-1)
							if(i==0)
							{
								video_buffer[(((cy+o+a*ysize)<<8)+((cy+o+a*ysize)<<6))+cx+xsize*b+k]=fcolor;
								if(bold==1)
									video_buffer[(((cy+o+a*ysize)<<8)+((cy+o+a*ysize)<<6))+cx+xsize*b+k+1]=fcolor;
							}
							else
							{
								video_buffer[(((cy+o+a*ysize)<<8)+((cy+o+a*ysize)<<6))+cx+xsize*b+k+16-a]=fcolor;
								if(bold==1)
									video_buffer[(((cy+o+a*ysize)<<8)+((cy+o+a*ysize)<<6))+cx+xsize*b+k+1+16-a]=fcolor;
							}
						else
							if(i==0)
							{
								video_buffer[(((cy+o+a*ysize)<<8)+((cy+o+a*ysize)<<6))+cx+xsize*b+k]=rand()%100;
								if(bold==1)
									video_buffer[(((cy+o+a*ysize)<<8)+((cy+o+a*ysize)<<6))+cx+xsize*b+k+1]=rand()%100;
							}
							else
							{
								video_buffer[(((cy+o+a*ysize)<<8)+((cy+o+a*ysize)<<6))+cx+xsize*b+k+16-a]=rand()%100;
								if(bold==1)
									video_buffer[(((cy+o+a*ysize)<<8)+((cy+o+a*ysize)<<6))+cx+xsize*b+k+1+16-a]=rand()%100;
							}

}

unsigned char buffer[4096];

char Load_Asc16()
{
  int handle;
  handle=open("asc16",O_RDONLY|O_BINARY);
  read(handle,buffer,4096);
  close(handle);
  return(0);
}

void Read_Asc16_Array(int key,unsigned char *buf)
{
int i;
long address;
address=key*16l;
for(i=0;i<16;i++)
buf[i]=buffer[address+i];
}

void Put_Asc16_Array(int cx,int cy,int key,int fcolor)
{
int a,b;
unsigned char buf[16];
Read_Asc16_Array(key,buf);
for(a=0;a<16;a++)
for(b=0;b<8;b++)
if((buf[a]>>7-b)&1)
video_buffer[(((cy+a)<<8)+((cy+a)<<6))+cx+b]=fcolor;
}

void Put_Asc16_Size_Array(int cx,int cy,int xsize,int ysize,int key,int fcolor)
{
	int a,b,o,k;
	unsigned char buf[16];
	Read_Asc16_Array(key,buf);
	for(a=0;a<16;a++)
		for(o=1;o<=ysize;o++)
			for(b=0;b<8;b++)
				for(k=1;k<=xsize;k++)
					if((buf[a]>>7-b)&1)
						video_buffer[(((cy+o+a*ysize)<<8)+((cy+o+a*ysize)<<6))+cx+xsize*b+k]=fcolor;
}


void Put_Asc16_Size_Format_Array(int cx,int cy,int xsize,int ysize,int key,int fcolor,int bold,int i)
{
	int a,b,o,k;
	long address;
	unsigned char buf[16];
	Read_Asc16_Array(key,buf);
	for(a=0;a<16;a++)
		for(o=1;o<=ysize;o++)
			for(b=0;b<8;b++)
				for(k=1;k<=xsize;k++)
					if((buf[a]>>7-b)&1)
						if(fcolor!=-1)
							if(i==0)
							{
								video_buffer[(((cy+o+a*ysize)<<8)+((cy+o+a*ysize)<<6))+cx+xsize*b+k]=fcolor;
								if(bold==1)
									video_buffer[(((cy+o+a*ysize)<<8)+((cy+o+a*ysize)<<6))+cx+xsize*b+k+1]=fcolor;
							}
							else
							{
								video_buffer[(((cy+o+a*ysize)<<8)+((cy+o+a*ysize)<<6))+cx+xsize*b+k+16-a]=fcolor;
								if(bold==1)
									video_buffer[(((cy+o+a*ysize)<<8)+((cy+o+a*ysize)<<6))+cx+xsize*b+k+1+16-a]=fcolor;
							}
						else
							if(i==0)
							{
								video_buffer[(((cy+o+a*ysize)<<8)+((cy+o+a*ysize)<<6))+cx+xsize*b+k]=rand()%100;
								if(bold==1)
									video_buffer[(((cy+o+a*ysize)<<8)+((cy+o+a*ysize)<<6))+cx+xsize*b+k+1]=rand()%100;
							}
							else
							{
								video_buffer[(((cy+o+a*ysize)<<8)+((cy+o+a*ysize)<<6))+cx+xsize*b+k+16-a]=rand()%100;
								if(bold==1)
									video_buffer[(((cy+o+a*ysize)<<8)+((cy+o+a*ysize)<<6))+cx+xsize*b+k+1+16-a]=rand()%100;
							}

}

⌨️ 快捷键说明

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