亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? smbfunc.c

?? 用c語言編寫的超級(jí)瑪麗源程序
?? C
?? 第 1 頁 / 共 2 頁
字號(hào):
  {
    if (keybuf[KEY_DOWN])
    {
      x_rect_fill(108,129,117,137,VisiblePageOffs,BACKGROUND);
      numplayers=2;
    }
    if (keybuf[KEY_UP])
    {
      x_rect_fill(108,145,117,153,VisiblePageOffs,BACKGROUND);
      numplayers=1;
    }
    if (numplayers==1)
      offset=129;
    else
      offset=145;
    x_line(110,offset,113,offset,21,VisiblePageOffs);
    x_line(109,offset+1,114,offset+1,21,VisiblePageOffs);
    x_line(109,offset+2,114,offset+2,21,VisiblePageOffs);
    x_line(108,offset+3,115,offset+3,21,VisiblePageOffs);
    x_line(108,offset+4,115,offset+4,21,VisiblePageOffs);
    x_line(108,offset+5,115,offset+5,21,VisiblePageOffs);
    x_put_pix(109,offset+6,VisiblePageOffs,21);
    x_put_pix(114,offset+6,VisiblePageOffs,21);
    x_line(110,offset+6,113,offset+6,20,VisiblePageOffs);
    x_line(110,offset+7,113,offset+7,20,VisiblePageOffs);
  }
  return(numplayers);
}

//CHANGE COLORS FOR MARIO OR LUIGI///////////////////////////////////////////
void setcolors()
{
  if (curplay==0)
  {
    setpalette(1,data.marioc[0]);
    setpalette(2,data.marioc[1]);
  }
  else
  {
    setpalette(1,data.luigic[0]);
    setpalette(2,data.luigic[1]);
  }
}

void rotatepal(int *palloopp, colorpal *tempcp)
{
  int palloop=*palloopp;
  colorpal tempc=*tempcp;
  int loop;
  if (palloop>=16 && palloop%4==0)
  {
    if (palloop<=24)
    {
      tempc=data.palette[20];
      data.palette[20]=data.palette[21];
      data.palette[21]=data.palette[22];
      data.palette[22]=data.palette[23];
      data.palette[23]=tempc;
    }
    else
    {
      tempc=data.palette[23];
      data.palette[23]=data.palette[22];
      data.palette[22]=data.palette[21];
      data.palette[21]=data.palette[20];
      data.palette[20]=tempc;
    }
    for(loop=20;loop<=23;loop++)
      setpalette(loop,data.palette[loop]);
    if (palloop==36)
      palloop=0;
  }
  palloop++;
  *tempcp=tempc;
  *palloopp=palloop;
}

void check_keybuf(int *movep, int *finishp, int *upp, int *downp, int *jumpp)
{
  int move=*movep;
  int finish=*finishp;
  int up=*upp;
  int down=*downp;
  int jumploop=*jumpp;
  if (keybuf[KEY_RIGHT] && !keybuf[KEY_LEFT])
  {
   if (keybuf[KEY_CTRL])
   {
     if (move<16)
       move++;
   }
   else
   {
     if (move>8)
       move--;
     if (move<8)
       move++;
   }
   if (landed) //(data.world[(marioy+1)/16][(mariox+player[curplay].screenx+8)/16]>26)
     data.direction=0;
   }
   if (keybuf[KEY_LEFT] && !keybuf[KEY_RIGHT])
   {
     if (keybuf[KEY_CTRL])
     {
       if (move>-16)
	 move--;
     }
     else
     {
       if (move<-8)
	 move++;
       if (move>-8)
	 move--;
     }
     if (landed) //(data.world[(marioy+1)/16][(mariox+player[curplay].screenx+8)/16]>26)
       data.direction=1;
     }
   if (keybuf[KEY_ALT] && !down)
   {
     up=-17;
     data.sprite=12;
     jumploop++;
     if (jumploop>10)
     {
       down=1;
       jumploop=0;
     }
   }
   if (keybuf[KEY_P])
   {
     graphstring(140,100,"Pause",TEXTCOLOR,VisiblePageOffs);
     clear_key_buffer();
     while(!keybuf[KEY_P]);
     clear_key_buffer();
     graphstring(140,100,"Pause",BACKGROUND,VisiblePageOffs);
   }
   if(keybuf[KEY_Q])
   {
     graphstring(130,100,"Quit(Y/N)",TEXTCOLOR,VisiblePageOffs);
     clear_key_buffer();
     while(!keybuf[KEY_Y] && !keybuf[KEY_N]);
     if (keybuf[KEY_Y] && !keybuf[KEY_N])
       finish=3;
     clear_key_buffer();
     graphstring(130,100,"Quit(Y/N)",BACKGROUND,VisiblePageOffs);
   }
   if ((!keybuf[KEY_RIGHT] && !keybuf[KEY_LEFT]) || (keybuf[KEY_RIGHT] && keybuf[KEY_LEFT]))
   {
    if (move>0)
      move--;
    if (move<0)
      move++;
   }
  *movep=move;
  *finishp=finish;
  *upp=up;
  *downp=down;
  *jumpp=jumploop;
}

void animate_mario(int move)
{
  if (landed)
  {
    if (data.sprite==10 && ((move>0 && data.direction==0) || (move<0 && data.direction==1)))
      data.sprite=1;
    if (move==0)
      data.sprite=0;
    if ((move>0 && data.direction==0) || (move<0 && data.direction==1))
    {
      if(abs(move)<16)
	data.sprite++;
      else
	data.sprite+=2;
      if (data.sprite>=10)
	data.sprite=2;
    }
    if ((move>0 && data.direction==1) || (move<0 && data.direction==0))
      data.sprite=10;
  }
}

void move_mario(int *movep)
{
  int move=*movep;
  int loop1,loop2;
  if (marioy>16)
  {
    if (move>0)
      for (loop1=0;loop1<16;loop1++)
	for (loop2=0;loop2<=move;loop2++)
	  if (data.world[(marioy-loop1)/16][(mariox+player[curplay].screenx+13+loop2/4)/16]>26)
	    move=loop2;
    if (move<0)
      for (loop1=0;loop1<16;loop1++)
	for (loop2=0;loop2>=move;loop2--)
	  if (data.world[(marioy-loop1)/16][(mariox+player[curplay].screenx+2+loop2/4)/16]>26 || (mariox+loop1/2)<=0)
	    move=loop2;
  }
  if(mariox>100 && move>0)
    player[curplay].screenx+=move/4;
  else
    if (mariox+move/4>0)
      mariox+=move/4;
  *movep=move;
}

void addcoin(int x, int y)
{
  cointype *temp,*c;
  c=bcoin;
  while ((c->next)!=NULL)
    c=c->next;
  temp=(cointype *)malloc(sizeof(cointype));
  temp->next=NULL;
  temp->coinx=x;
  temp->coiny=y;
  temp->coinloop=-10;
  temp->dy=0;
  c->next=temp;
}

void removecoin()
{
  cointype *temp;
  cointype *c=bcoin;
  temp=c->next;
  c->next=c->next->next;
  addscore(temp->coinx,temp->coiny,"200");
  free(temp);
}

void drawcoin(int x)
{
  cointype *c=bcoin;
  int loop,num=0;
  while ((c->next)!=NULL)
  {
    num++;
    c=c->next;
  }
  c=bcoin;
  for (loop=0;loop<num;loop++)
  {
    c=c->next;
    if (((c->coinx)*16+32-x)>16)
      x_put_masked_pbm((c->coinx)*16+32-x,(c->coiny)*16+c->dy,HiddenPageOffs,data.coin[abs((c->coinloop)%3)]);
    c->coinloop++;
    c->dy+=c->coinloop;
    if (c->coinloop>=10)
       removecoin();
  }
}

void addscore(int x, int y, char *pscore)
{
  scoretype *temp,*s;
  s=bscore;
  while ((s->next)!=NULL)
    s=s->next;
  temp=(scoretype *)malloc(sizeof(scoretype));
  temp->next=NULL;
  temp->scorex=x;
  temp->scorey=y;
  temp->scoreloop=0;
  strcpy(temp->num,pscore);
  s->next=temp;
}

void removescore()
{
  scoretype *temp;
  scoretype *s=bscore;
  temp=s->next;
  s->next=s->next->next;
  free(temp);
}

void drawscore(int x)
{
  scoretype *s=bscore;
  while ((s->next)!=NULL)
  {
    s=s->next;
    if (((s->scorex)*16+32-x)>16)
      graphstring((s->scorex)*16+32-x,(s->scorey)*16+(s->scoreloop),s->num,TEXTCOLOR,HiddenPageOffs);
    s->scoreloop--;
    if (s->scoreloop<=-20)
       removescore();
  }
}

void exitgame()
{
  int loop;
  for (loop=0;loop<52;loop++)
    farfree(data.block[loop]);
  for (loop=0;loop<3;loop++)
    farfree(data.coin[loop]);
  free(bcoin);
  free(bscore);
  uninstall_new_key_handler();
  x_remove_vsync_handler();
  x_text_mode();
}

void check_jump(int *upp, int *downp, int *jumploopp)
{
  int loop1,loop2;
  int up=*upp;
  int down=*downp;
  int jumploop=*jumploopp;
  loop1=3;
  landed=0;
  while (loop1<13 && landed==0)
  {
    if (data.world[(marioy+1)/16][(mariox+player[curplay].screenx+loop1)/16]>26)
      landed=1;
    else
      landed=0;
    loop1++;
  }
  if (!landed || marioy<16)
    if (up<17)
      up+=1;
  if (up>0)	//CHECK IF MARIO LANDED//
  {
    down=1;
    loop1=marioy;
    if (marioy<207)
    {
      while(loop1++<marioy+up/4)
      {
	for (loop2=3;loop2<14;loop2+=9)
	  if (data.world[loop1/16][(mariox+player[curplay].screenx+loop2)/16]>26)
	  {
	    marioy=loop1-1;
	    loop1=marioy+up/4;
	    loop2=13;
	    up=0;
	    down=0;
	    data.sprite=0;
	  }
      }
    }
    marioy+=up/4;
  }
  if (up<0)	//CHECK IF MARIO HIT A BLOCK/
  {
    if (!keybuf[KEY_ALT])
    {
      down=1;
      jumploop=0;
    }
    loop1=marioy;
    marioy+=up/4;
    if (marioy>24)
    {
      while(loop1-->=marioy+up/4)
      {
	if(data.world[loop1/16-1][(mariox+player[curplay].screenx+8)/16]>26 ||data.world[loop1/16-1][(mariox+player[curplay].screenx+8)/16]==18)
	{
	  marioy=loop1;
	  loop1=marioy+up/4-1;
	  up=-up;
	  down=1;
	  jumploop=0;
	  if (data.bumped[0]==0 && data.bumped[1]==0)
	  {
	    data.bumped[0]=(mariox+player[curplay].screenx+8)/16;
	    data.bumped[1]=marioy/16-1;
	    data.bumploop=-3;
	  }
	}
	if (data.world[loop1/16-1][(mariox+player[curplay].screenx+12)/16]>26 && data.world[loop1/16-1][(mariox+player[curplay].screenx+8)/16]<26)
	  mariox-=1;
	if (data.world[loop1/16-1][(mariox+player[curplay].screenx+3)/16]>26 && data.world[loop1/16-1][(mariox+player[curplay].screenx+8)/16]<26)
	  mariox+=1;
      }
    }
  }
  *upp=up;
  *downp=down;
  *jumploopp=jumploop;
}

void check_blocks()
{
  int bumpedblock=0;
  if (data.world[(marioy-8)/16][(mariox+player[curplay].screenx+8)/16]==10)
  {
    data.world[(marioy-8)/16][(mariox+player[curplay].screenx+8)/16]=0;
    player[curplay].score[0]+=200;
    player[curplay].coins[0]++;
  }
  if (data.bumploop==-3)
  {
    bumpedblock=data.world[marioy/16-1][(mariox+player[curplay].screenx+8)/16];
    switch (bumpedblock)
    {
      case 18:
      case 28:
	data.world[marioy/16-1][(mariox+player[curplay].screenx+8)/16]=27;
	player[curplay].score[0]+=200;
	player[curplay].coins[0]++;
	addcoin(data.bumped[0],data.bumped[1]-1);
      case 29:
	if (data.world[data.bumped[1]-1][data.bumped[0]]==10)
	{
	  data.world[data.bumped[1]-1][data.bumped[0]]=0;
	  player[curplay].score[0]+=200;
	  player[curplay].coins[0]++;
	  addcoin(data.bumped[0],data.bumped[1]-1);
	}
	break;
      default:
	data.bumped[0]=data.bumped[1]=0;
	data.bumploop=0;
	break;
    }
  }
  if (player[curplay].coins[0]==100)
  {
    player[curplay].lives++;
    player[curplay].coins[0]=0;
  }
}

void check_finish(int *finishp)
//CHECK FOR END OF CURRENT PLAYER LOOP///////////////////////////////////////
{
  int finish=*finishp;
  if (marioy>=250)
    finish=1;
  if ((mariox+player[curplay].screenx+16)/16==data.maxlength-13)
    finish=2;
  if (times[0]==0)
    finish=1;
  *finishp=finish;
}
//END////////////////////////////////////////////////////////////////////////

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美成人一区| 中文字幕 久热精品 视频在线 | 在线亚洲高清视频| 日韩成人一区二区三区在线观看| 国产亚洲一区二区三区四区| 欧亚一区二区三区| 国产传媒日韩欧美成人| 天天综合网天天综合色| 中文字幕亚洲电影| 2021久久国产精品不只是精品| 日本电影亚洲天堂一区| 成人午夜av影视| 九色综合狠狠综合久久| 亚洲在线视频一区| 国产欧美一区二区精品婷婷| 日韩欧美中文一区| 欧美网站大全在线观看| 91免费看视频| 成人97人人超碰人人99| 国产综合成人久久大片91| 日日摸夜夜添夜夜添国产精品| 亚洲欧洲综合另类| 中文字幕精品一区| 国产天堂亚洲国产碰碰| 欧美sm极限捆绑bd| 欧美一级二级三级蜜桃| 欧美日韩亚洲综合在线| 日本伦理一区二区| 色哟哟亚洲精品| 成人av免费网站| 成人中文字幕合集| 大胆亚洲人体视频| 国产高清无密码一区二区三区| 捆绑紧缚一区二区三区视频| 免费一级欧美片在线观看| 视频一区二区三区在线| 亚洲国产综合色| 亚洲线精品一区二区三区八戒| 亚洲激情校园春色| 亚洲综合在线第一页| 一区二区视频在线| 亚洲在线视频免费观看| 亚洲午夜av在线| 亚洲第一综合色| 午夜电影网亚洲视频| 视频一区视频二区中文字幕| 男人的j进女人的j一区| 午夜精品影院在线观看| 视频一区二区不卡| 日韩精品色哟哟| 久久精品国产在热久久| 国产一区久久久| 国产99久久久国产精品潘金| 精品一区二区三区免费| 国产一区二区三区黄视频 | 国产91精品一区二区麻豆亚洲| 国产精品123区| av在线这里只有精品| 99精品视频免费在线观看| 91免费小视频| 欧美视频一区二区在线观看| 欧美肥胖老妇做爰| 欧美va亚洲va香蕉在线| 日本一区二区三区在线不卡| 自拍av一区二区三区| 一级精品视频在线观看宜春院 | 国产一区二区三区在线观看免费视频| 精品一区二区三区视频| 国产99精品视频| 91视频在线观看免费| 欧美日韩一级黄| 2017欧美狠狠色| 亚洲同性同志一二三专区| 亚洲国产精品视频| 韩国v欧美v日本v亚洲v| 91同城在线观看| 在线不卡a资源高清| 国产欧美日韩麻豆91| 亚洲精品免费在线观看| 老汉av免费一区二区三区| 成人黄色片在线观看| 在线不卡中文字幕| 欧美—级在线免费片| 亚洲国产欧美日韩另类综合| 奇米亚洲午夜久久精品| 粗大黑人巨茎大战欧美成人| 欧美精品一二三| 国产精品美女久久久久久久久 | 欧美性生活大片视频| 精品欧美乱码久久久久久| 亚洲欧美电影一区二区| 日韩欧美一区在线观看| 99精品黄色片免费大全| 国产亚洲一二三区| 亚洲综合一二区| 国产电影精品久久禁18| 5566中文字幕一区二区电影| 国产精品视频一二| 蜜臀av一区二区三区| 91小视频在线观看| 精品不卡在线视频| 亚洲成人av在线电影| 成人av在线资源| 精品电影一区二区| 婷婷成人综合网| 色噜噜狠狠色综合欧洲selulu | 国产精品久久免费看| 奇米影视7777精品一区二区| 91麻豆福利精品推荐| 久久久久久久久久久久电影| 视频一区二区三区入口| 91美女在线视频| 国产精品蜜臀av| 韩国三级中文字幕hd久久精品| 欧美日韩一区二区三区视频 | 蜜臀av性久久久久蜜臀aⅴ流畅| 91蜜桃视频在线| 国产精品久久777777| 国产成人精品一区二区三区网站观看| 69av一区二区三区| 亚洲国产三级在线| 色94色欧美sute亚洲线路一久| 欧美国产禁国产网站cc| 国产一区二区三区免费播放| 日韩欧美国产综合| 日韩精品福利网| 91精品国产综合久久精品app | 麻豆精品视频在线观看| 欧美日韩高清一区二区三区| 一区二区三区在线影院| 91老师国产黑色丝袜在线| 18欧美亚洲精品| 91视视频在线观看入口直接观看www| 国产精品人成在线观看免费| 国产ts人妖一区二区| 国产日韩欧美麻豆| 粉嫩欧美一区二区三区高清影视 | 亚洲国产精品久久人人爱| 在线观看免费视频综合| 亚洲综合色视频| 欧美日韩免费电影| 青青草精品视频| 日韩精品一区二区在线观看| 久久成人麻豆午夜电影| wwwwxxxxx欧美| 岛国精品一区二区| 成人欧美一区二区三区1314| 91无套直看片红桃| 亚洲韩国精品一区| 8x8x8国产精品| 激情综合五月天| 国产网红主播福利一区二区| 暴力调教一区二区三区| 综合久久给合久久狠狠狠97色| 色噜噜久久综合| 香港成人在线视频| 日韩三级视频在线看| 国产自产视频一区二区三区| 国产日韩精品视频一区| 91麻豆国产香蕉久久精品| 亚洲6080在线| www欧美成人18+| av高清久久久| 天天综合日日夜夜精品| 欧美精品一区二区精品网| 成人免费视频播放| 亚洲一区在线看| 欧美变态tickle挠乳网站| 丰满放荡岳乱妇91ww| 亚洲国产综合人成综合网站| 日韩av中文在线观看| 久久日韩粉嫩一区二区三区| 成人免费视频caoporn| 亚洲国产精品久久人人爱| 欧美精品一区二区高清在线观看| 成人h动漫精品一区二| 亚洲成av人片| 国产色一区二区| 欧美三级资源在线| 国产乱子轮精品视频| 亚洲大片精品永久免费| 久久午夜电影网| 欧美日韩一区二区三区在线看| 国产精品一卡二卡在线观看| 有码一区二区三区| 久久先锋资源网| 欧美日韩国产首页| 国产91在线看| 青青草成人在线观看| 亚洲天堂中文字幕| 精品久久免费看| 欧美日韩免费一区二区三区视频| 国产酒店精品激情| 日韩精品久久理论片| 亚洲精品v日韩精品| 国产精品无码永久免费888| 日韩一区二区三| 色婷婷国产精品久久包臀| 国产在线乱码一区二区三区| 亚洲成人精品影院|