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

📄 graph.c

📁 通过c语言编写的坦克大战游戏
💻 C
字号:
/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/
#define BLACK     makecol(0,0,0)         /*黑色*/
#define WHITE     makecol(255,255,255)   /*白色*/
#define RED       makecol(255,0,0)       /*红色*/
#define GREEN     makecol(0,255,0)       /*绿色*/
#define BLUE      makecol(0,0,255)       /*蓝色*/
#define LIGHTGRAY makecol(192,192,192)   /*浅灰色*/
#define DARKGRAY  makecol(124,124,124)   /*深灰色*/
#define YELLOW    makecol(255,255,0)     /*黄色*/
#define DARKGREEN makecol(0,128,0)       /*深绿色*/
#define LIGHTBLUE makecol(0,168,252)     /*浅蓝色*/
#define CYAN      makecol(0,255,255)     /*青色*/
#define PINK      makecol(255,128,192)   /*粉红色*/
#define ORANGE    makecol(255,128,0)     /*橙色*/
#define MAGENTA   makecol(255,0,255)     /*紫色*/
#define BROWN     makecol(128,0,64)      /*褐色*/


/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/

BITMAP *buffer;    /*定义显存双缓冲图位*/

char HZK12[196272];

/*+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*/




void VGA_RESET()  /*图形模式初始化*/
{
 set_color_depth(16);
 set_gfx_mode(GFX_AUTODETECT, 640, 480, 0, 0); /*设置屏幕显示模式 */

 buffer = create_bitmap(SCREEN_W, SCREEN_H); /*建立双缓冲图位*/
}





/*加载中文字库*/
void LoadCharLib()
{
 FILE *fp;

 fp=fopen("font/HZK12","rb");
 fread(HZK12,196272,1,fp);
 fclose(fp);
}




void vpost() /*输出到屏幕*/
{
  blit(buffer, screen, 0,0, 0,0,SCREEN_W, SCREEN_H); /*输出到屏幕*/
}




void DISPLAY_HZ(
                int cx,           /*横坐标*/
                int cy,           /*纵坐标*/
                int Width,        /*宽的放大倍数*/
                int Height,       /*长的放大倍数*/
                int w,            /*字间隔*/
                int color,        /*汉字颜色*/
                char *s           /*汉字*/
               )
{


char Cb[24];          /*buffer用来存储一个汉字*/

int m,n,i,j,k;

unsigned char qh,wh;

long position;     /*长整型 以支持长文件*/

char EC[2];



while(*s)              /*循环条件:指针为真*/
{

if(*s<0)  /*是汉字的话*/
  {
 qh=*(s)-0xa0;         /*汉字区位码*/

 wh=*(s+1)-0xa0;

 position=(94*(qh-1)+(wh-1))*24;          /*计算该汉字在字库中偏移量*/


   memcpy(Cb,HZK12+position,24);


 /*将24位字节的点阵按位在屏幕上打印出来(1:打印,0:不打印),显示汉字*/
 for(i=0;i<12;i++)         /*字模的12个行*/

 for(n=0;n<Height;n++)     /**/

 for(j=0;j<2;j++)          /*每个行的个2字节*/

 for(k=0;k<8;k++)          /*每个字节8位*/

 for(m=0;m<Width;m++)      /**/

if (((Cb[i*2+j]>>(7-k))&0x1)!=0)

putpixel(buffer, cx+8*j*Width+k*Width+m,  cy+i*Height+n, color);



s+=2;              /*因为一个汉字内码占用两个字节,所以s必须加2 */

cx+=w;                      /*字间隔*/

 }



else
    {

     EC[0]=*s;
     EC[1]='\0';



     textout_ex(buffer, font, EC, cx,cy+3, color,-1);

     cx+=w-6;
     s++;

    }


}





}








void alphaimage(int x,int y,BITMAP *bmp,int alpha)  /*显示透明的图片*/
{
 set_trans_blender(0,0,0,alpha);
 draw_trans_sprite(buffer,bmp,x,y);
}

⌨️ 快捷键说明

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