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

📄 logo.c

📁 一个C做的蛇蛇游戏阿
💻 C
字号:
/******************************************/
/*          logo.c of goldenbugs          */
/*                                        */
/*             show the logo              */
/*                                        */
/*          Cat Tom   5.4.2003            */
/******************************************/


struct RGB_color
{
 unsigned char red;
 unsigned char green;
 unsigned char blue;
}RGB_reg[16];
int Index[16]={0,1,2,3,4,5,20,7,56,57,58,59,60,61,62,63};


void SetPaletteRegister(int index,struct RGB_color *rgb_ptr)
{
  outportb(0x3c8,index);
  outportb(0x3c9,rgb_ptr->red);
  outportb(0x3c9,rgb_ptr->green);
  outportb(0x3c9,rgb_ptr->blue);
}


void GetPaletteRegister(int index,struct RGB_color *rgb_ptr)
{
  outportb(0x3c7,index);
  rgb_ptr->red=inportb(0x3c9);
  rgb_ptr->green=inportb(0x3c9);
  rgb_ptr->blue=inportb(0x3c9);
}


int mydelay3(int time)
{
 int i;
 struct RGB_color black={0,0,0};
 Timercounter=0;
 while(Timercounter<time)
   if(kbhit())
   {
    bioskey(0);
    for(i=0;i<16;i++)
      SetPaletteRegister(Index[i],&black);
    return 1;
   }
 return 0;
}


void showlogo()
{
 int i,j,k=1;
 struct RGB_color temp={0,0,0},black={0,0,0},white={63,63,63};

 Timercounter=0;
 settimer(newhandler);

 /*save the r,g,b*/
 for(i=0;i<16;i++)
   GetPaletteRegister(Index[i],&RGB_reg[i]);

 /*set it black*/
 for(i=0;i<16;i++)
   SetPaletteRegister(Index[i],&black);

 showgbp(0,0,"pic\\logo1.gbp");

 /*step in*/
 k=1;
 for(i=0;i<64;i++)
 {
  for(j=0;j<16;j++)
  {
   GetPaletteRegister(Index[j],&temp);
   if(temp.red!=RGB_reg[j].red)temp.red++;
   if(temp.green!=RGB_reg[j].green)temp.green++;
   if(temp.blue!=RGB_reg[j].blue)temp.blue++;
   SetPaletteRegister(Index[j],&temp);
  }
  k++;
  if(k==3)
  {
   if(mydelay3(1)==1)
   {
    killtimer();
    return;
   }
   k=1;
  }
 }

 if(mydelay3(40)==1)
 {
  killtimer();
  return;
 }

 /*step out*/
 k=1;
 for(i=0;i<64;i++)
 {
  for(j=0;j<16;j++)
  {
   GetPaletteRegister(Index[j],&temp);
   if(temp.red!=0)temp.red--;
   if(temp.green!=0)temp.green--;
   if(temp.blue!=0)temp.blue--;
   SetPaletteRegister(Index[j],&temp);
  }
  k++;
  if(k==3)
  {
   if(mydelay3(1)==1)
   {
    killtimer();
    return;
   }
   k=1;
  }
 }

 showgbp(0,0,"pic\\logo2.gbp");

 /*show Cats in Dark*/
 k=1;
 for(i=0;i<64;i++)
 {
  GetPaletteRegister(Index[YELLOW],&temp);
  if(temp.red!=RGB_reg[YELLOW].red)temp.red++;
  if(temp.green!=RGB_reg[YELLOW].green)temp.green++;
  if(temp.blue!=RGB_reg[YELLOW].blue)temp.blue++;
  SetPaletteRegister(Index[YELLOW],&temp);
  k++;
  if(k==3)
  {
   if(mydelay3(1)==1)
   {
    killtimer();
    return;
   }
   k=1;
  }
 }

 /*show the bkground of Cats in Dark*/
 k=1;
 for(i=0;i<64;i++)
 {
  GetPaletteRegister(Index[WHITE],&temp);
  if(temp.red!=RGB_reg[WHITE].red)temp.red++;
  if(temp.green!=RGB_reg[WHITE].green)temp.green++;
  if(temp.blue!=RGB_reg[WHITE].blue)temp.blue++;
  SetPaletteRegister(Index[WHITE],&temp);

  GetPaletteRegister(Index[DARKGRAY],&temp);
  if(temp.red!=RGB_reg[DARKGRAY].red)temp.red++;
  if(temp.green!=RGB_reg[DARKGRAY].green)temp.green++;
  if(temp.blue!=RGB_reg[DARKGRAY].blue)temp.blue++;
  SetPaletteRegister(Index[DARKGRAY],&temp);
  k++;
  if(k==3)
  {
   if(mydelay3(1)==1)
   {
    killtimer();
    return;
   }
   k=1;
  }
 }

 /*Cats in Dark and Shadow turn white*/
 k=1;
 for(i=0;i<64;i++)
 {
  GetPaletteRegister(Index[YELLOW],&temp);
  if(temp.red!=63)temp.red++;
  if(temp.green!=63)temp.green++;
  if(temp.blue!=63)temp.blue++;
  SetPaletteRegister(Index[YELLOW],&temp);

  GetPaletteRegister(Index[DARKGRAY],&temp);
  if(temp.red!=63)temp.red++;
  if(temp.green!=63)temp.green++;
  if(temp.blue!=63)temp.blue++;
  SetPaletteRegister(Index[DARKGRAY],&temp);
  k++;
  if(k==3)
  {
   if(mydelay3(1)==1)
   {
    killtimer();
    return;
   }
   k=1;
  }
 }

 /*set all white*/
 for(i=1;i<16;i++)
   SetPaletteRegister(Index[i],&white);

 /*show Love Parents*/
 showgbp(0,0,"pic\\logo3.gbp");

 k=1;
 for(i=0;i<64;i++)
 {
  GetPaletteRegister(Index[LIGHTBLUE],&temp);
  if(temp.red!=0)temp.red--;
  if(temp.green!=0)temp.green--;
  if(temp.blue!=0)temp.blue--;
  SetPaletteRegister(Index[LIGHTBLUE],&temp);
  k++;
  if(k==3)
  {
   if(mydelay3(1)==1)
   {
    killtimer();
    return;
   }
   k=1;
  }
 }

 k=1;
 for(i=0;i<64;i++)
 {
  GetPaletteRegister(Index[DARKGRAY],&temp);
  if(temp.red!=0)temp.red--;
  if(temp.green!=0)temp.green--;
  if(temp.blue!=0)temp.blue--;
  SetPaletteRegister(Index[DARKGRAY],&temp);
  k++;
  if(k==3)
  {
   if(mydelay3(1)==1)
   {
    killtimer();
    return;
   }
   k=1;
  }
 }

 k=1;
 for(i=0;i<64;i++)
 {
  GetPaletteRegister(Index[LIGHTRED],&temp);
  if(temp.red!=0)temp.red--;
  if(temp.green!=0)temp.green--;
  if(temp.blue!=0)temp.blue--;
  SetPaletteRegister(Index[LIGHTRED],&temp);
  k++;
  if(k==3)
  {
   if(mydelay3(1)==1)
   {
    killtimer();
    return;
   }
   k=1;
  }
 }

 k=1;
 for(i=0;i<64;i++)
 {
  GetPaletteRegister(Index[LIGHTGRAY],&temp);
  if(temp.red!=0)temp.red--;
  if(temp.green!=0)temp.green--;
  if(temp.blue!=0)temp.blue--;
  SetPaletteRegister(Index[LIGHTGRAY],&temp);
  k++;
  if(k==3)
  {
   if(mydelay3(1)==1)
   {
    killtimer();
    return;
   }
   k=1;
  }
 }

 k=1;
 for(i=0;i<64;i++)
 {
  for(j=0;j<16;j++)
  {
   GetPaletteRegister(Index[j],&temp);
   if(temp.red!=0)temp.red--;
   if(temp.green!=0)temp.green--;
   if(temp.blue!=0)temp.blue--;
   SetPaletteRegister(Index[j],&temp);
  }
  k++;
  if(k==3)
  {
   if(mydelay3(1)==1)
   {
    killtimer();
    return;
   }
   k=1;
  }
 }


 killtimer();
}

⌨️ 快捷键说明

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