根据MSP430的游戏开发贪吃蛇和是男人就下一百层.docx
- 文档编号:7566052
- 上传时间:2023-01-25
- 格式:DOCX
- 页数:21
- 大小:17.97KB
根据MSP430的游戏开发贪吃蛇和是男人就下一百层.docx
《根据MSP430的游戏开发贪吃蛇和是男人就下一百层.docx》由会员分享,可在线阅读,更多相关《根据MSP430的游戏开发贪吃蛇和是男人就下一百层.docx(21页珍藏版)》请在冰豆网上搜索。
根据MSP430的游戏开发贪吃蛇和是男人就下一百层
uchara=0;
ucharbig=0;
ucharbig2=0;
ucharflg=0;
ucharlevelcnt=0;
uchardir_last=KEY_RIGHT;
voidtanchishe();//贪吃蛇实现函数
voidman();//是男人就下一百层实现函数
voidgamer()
{
charjt=36;
Set_Draw();
jiantou(20,jt,1);
drawpicfree(3,0,7,13,*mulu);
drawpicfree(2,15,7,28,*menutcs);
drawpicfree(2,30,4,43,*menuman);
//drawpicfree(2,45,9,58,*mubiao);
Delay(50000);
Delay(50000);
while
(1)
{
switch(key())
{case5:
if(jt>34)jt-=15;jiantou(20,jt+15,0);jiantou(20,jt,1);Delay(100000);break;
case3:
if(jt<32)jt+=15;jiantou(20,jt-15,0);jiantou(20,jt,1);Delay(100000);break;
case9:
if(jt==21)
gototcs1;
elseif(jt==36)
gotomn;
break;
//case0:
//goto;break;
}
}
mn:
man();
tcs1:
tanchishe();
}
voidtanchishe()
{intxx=0;
intyy=0;
uintspeed=22001;
Set_Drawq();
drawpicfree(0,0,15,63,*SNAKE);
track.trackend=3;
while
(1)
{
if(a)
LPM3;
uinti,j;
keypad.key=key();
//----------------------keypadcase-----------------------
switch(keypad.key)
{case11:
{if(speed>1000)speed-=1000;
elseif(speed>500)speed-=500;break;
}
case10:
speed+=1000;break;
case7:
if(flag.direction!
=KEY_LEFT)
flag.direction=KEY_RIGHT;
break;
case1:
//
if(flag.direction!
=KEY_RIGHT)
flag.direction=KEY_LEFT;
break;
case5:
if(flag.direction!
=KEY_DOWN)flag.direction=KEY_UP;break;
case3:
if(flag.direction!
=KEY_UP)flag.direction=KEY_DOWN;break;
case9:
{
//LCD_INT();
//LCD_CLR();
Set_Draw();
track.trackend=3;
bean.number=0;
xx=0;
yy=0;
flag.start=1;
flag.clear=1;
flag.direction=KEY_LEFT;
flag.gameover=0;
//speed=2000;
}
break;
case4:
if(flag.start==0)
{
//LCD_INT();
//LCD_CLR();
Set_Draw();
track.trackend=3;
bean.number=0;
xx=0;
yy=0;
flag.start=1;
flag.clear=1;
flag.direction=KEY_RIGHT;
flag.gameover=0;
//speed=2000;
}
break;
}
//---------------------------drawsnake-------------------------------------
//if(drawcnt>speed)
//{//if(flag.direction)
//drawRectangle(xx+0,yy+0,xx+3,yy+3,2,0);///////
//-----------------------------drawbeanbegin----------------------------
if(bean.number<1)
{
bean.coor[0]=rand()/1024*4;
bean.coor[1]=rand()/2048*4;
bean.number=1;
levelcnt++;
if(levelcnt==15)
{if(speed>2000)speed-=2000;
elseif(speed>500)speed-=500;
levelcnt=0;
flg=0;
WriteCom(0x01);//清屏
drawpicfree(0,0,15,63,*sj);
while(flg<8);
Set_Draw();
}
big++;
if(big==5)
big=0;
big2++;
if(big2==11)
big2=0;
}
if(flag.start)
{if(big==3)
drawRectangle(bean.coor[0]+0,bean.coor[1]+0,bean.coor[0]+3,bean.coor[1]+3,1,1);
elseif(big2==10)
drawyuan(bean.coor[0]+1,bean.coor[1]+0,bean.coor[0]+1,bean.coor[1]+3,2,1);
else
drawRectangle(bean.coor[0]+0,bean.coor[1]+0,bean.coor[0]+2,bean.coor[1]+2,1,1);
}
//------------------------------清楚头部---------------------------
switch(dir_last)
{caseKEY_RIGHT:
headright(xx,yy+0,0);
break;
caseKEY_LEFT:
headleft(xx,yy+0,0);
break;
caseKEY_UP:
headup(xx,yy,0);
break;
caseKEY_DOWN:
headdown(xx+0,yy,0);
break;
}
if(flag.direction)
{switch(flag.direction)
{caseKEY_RIGHT:
//drawRectangle(xx,yy-2,xx+7,yy+5,4,0);
shenx(xx,yy+0,1);break;
caseKEY_LEFT:
//drawRectangle(xx-4,yy-2,xx+3,yy+5,4,0);
shenx(xx,yy+0,1);break;
caseKEY_UP:
//drawRectangle(xx-2,yy-5,xx+5,yy+3,4,0);
sheny(xx+0,yy,1);break;
caseKEY_DOWN:
//drawRectangle(xx-2,yy,xx+5,yy+7,4,0);
sheny(xx+0,yy,1);break;
}}//drawsnakehead
//----------------------eatbean------------------------------------------
if(xx==bean.coor[0]&&yy==bean.coor[1])
{if(big==3)
track.trackend+=2;
elseif(big2==8)
track.trackend+=4;
elsetrack.trackend++;
bean.number--;
}
else
{
for(i=0;i { if(xx==track.track[i][0]&&yy==track.track[i][1]&&(xx! =0&&yy! =0)) { if(flag.gameover==0) { Lcd_flash(500,5); drawpicfree(0,0,15,63,*over); flag.direction=KEY_HOLD; flag.gameover=1; flag.start=0; } } for(j=0;j<4;j++) { track.track[i][j]=track.track[i+1][j];//后一节获得前一节的坐标 } } } //----------------------savesnaketrack-------------------------- track.track[track.trackend-1][0]=xx+0; track.track[track.trackend-1][1]=yy+0; track.track[track.trackend-1][2]=xx+3; track.track[track.trackend-1][3]=yy+3; //} //--------------------------------------------- //drawcnt=0; //------------------------movesnake---------------------------- switch(flag.direction) { caseKEY_RIGHT: //headright(xx+0,yy+0,0); xx+=4; //drawRectangle(xx,yy,xx-1,yy+3,2,0); headright(xx,yy+0,1); break; caseKEY_LEFT: //headleft(xx+4,yy+0,0); xx-=4; //drawRectangle(xx+4,yy,xx+7,yy+3,2,0); headleft(xx,yy+0,1); break; caseKEY_UP: //headup(xx,yy,0); yy-=4; //drawRectangle(xx,yy+4,xx+3,yy+7,2,0); headup(xx,yy,1); break; caseKEY_DOWN: yy+=4; //drawRectangle(xx,yy-4,xx+3,yy-1,2,0); headdown(xx+0,yy,1); break; } //------------------------------drawbeanend---------------------------------------- if(track.track[0][0]||track.track[0][1]||track.track[0][2]||track.track[0][3]) { if(flag.direction) {drawRectangle(track.track[0][0],track.track[0][1],track.track[0][2],track.track[0][3],2,0); if(big! =4&&big2! =9) { drawRectangle(track.track[1][0],track.track[1][1],track.track[1][2],track.track[1][3],2,0); if(track.track[1][0]==track.track[2][0]+4) {//shenx(track.track[1][0],track.track[1][1],0); tailleft(track.track[1][0],track.track[1][1],1); //drawRectangle(track.track[0][0]+3,track.track[0][1],track.track[0][2]+3,track.track[0][3],2,0); } elseif(track.track[2][0]==track.track[1][0]+4) {//shenx(track.track[1][0],track.track[1][1],0); tailright(track.track[1][0],track.track[1][1],1); //tailright(track.track[0][0],track.track[0][1],0); } elseif(track.track[1][1]==track.track[2][1]+4) {//sheny(track.track[1][0],track.track[1][1],0); tailup(track.track[1][0],track.track[1][1],1); //tailup(track.track[0][0],track.track[0][1],0); } elseif(track.track[2][1]==track.track[1][1]+4) {//sheny(track.track[1][0],track.track[1][1],0); taildown(track.track[1][0],track.track[1][1],1); //taildown(track.track[0][0],track.track[0][1],0); }//clearn(track.track[0][0],track.track[0][1],track.track[0][2],track.track[0][3],0); } } } //clearsnaketail if(xx==128)xx=0; if(yy==64)yy=0; if(flag.direction==KEY_LEFT&&xx==-4)xx=124; if(flag.direction==KEY_UP&&yy==-4)yy=60; //if(xx==252)xx=124; //if(yy==252)yy=60; if(flag.start==0)flag.direction=KEY_HOLD; if(flag.clear==1) { LCD_CLR(); flag.clear=0; } dir_last=flag.direction; Delay(speed); } } //***********************是男人就下一百层****************************** //*****************************2010.11.5****************************** //*******************************byone************************************ //******************************v0.1beta********************************** voidman() {ucharguanstart=1; DCOCTL|=0X60; ucharmannum=1; ucharlife=5; uchari=0; ucharscocnt=0; ucharguan=0; uintguancnt=0; uintcnt=0; uintscore=0; charxx=0,yy=0; uintsban=3,sdown=2; Set_Drawq(); ban.number=2; drawpicfree(0,0,15,63,*manface); while (1) { if(a) LPM3; keypad.key=key(); //**********************************keypadcase************************************ switch(keypad.key) {case11: if(sban>5)speed-=1; break; case10: sban+=1;break; //***************************************startgame*************************************one case9: if(flag.start==0) { Set_Draw(); score=0; guan=1; xx=50; yy=0; flag.start=1; flag.clear=1; flag.gameover=0; ban.number=2; ban.coor[1][0]=rand()%46+33; ; ban.coor[2][0]=rand()%46+33; ban.coor[1][1]=40; ban.coor[2][1]=20; drawRectangle(ban.coor[1][0]+0,ban.coor[1][1],ban.coor[1][0]+16,ban.coor[1][1]+2,1,1); drawRectangle(ban.coor[2][0]+0,ban.coor[2][1],ban.coor[2][0]+16,ban.coor[2][1]+2,1,1); drawman(xx,yy,1);} WriteCom(0x01); drawpicfree(0,0,15,63,*manui); drawpicfree(0,18,3,25,*clearnmin); drawnum2(14,18,guan,1); break; } //************************************************************************************ //*******************************************过关重画********************************** if(guanstart==0) { //Set_Draw(); //score=0; //guan=1; xx=50; yy=0; guanstart=1; //flag.clear=1; //flag.gameover=0; ban.number=2; ban.coor[1][0]=rand()%46+33; ; ban.coor[2][0]=rand()%46+33; ban.coor[1][1]=40; ban.coor[2][1]=20; drawRectangle(ban.coor[1][0]+0,ban.coor[1][1],ban.coor[1][0]+16,ban.coor[1][1]+2,1,1); drawRectangle(ban.coor[2][0]+0,ban.coor[2][1],ban.coor[2][0]+16,ban.coor[2][1]+2,1,1); drawman(xx,yy,1); WriteCom(0x01); drawpicfree(0,0,15,63,*manui); drawpicfree(0,18,3,25,*clearnmin); drawnum2(14,18,guan,1); } //******************************************************************************** //-----------------------------drawbanbegin---------------------------- if(mannum<1) {xx=rand()%56+33; yy=4; drawman(xx,yy,1); mannum=1; } if(ban.number<3) { ban.coor[0][0]=rand()%46+33; ban.coor[0][1]=62; ban.number=3; drawRectangle(ban.coor[0][0]+0,ban.coor[0][1],ban.coor[0][0]+16,ban.coor[0][1]+2,1,1); } /*big++; if(big==15) big=0; big2++; if(big2==35) big2=0;*/ //**************************人走动**********************one switch(keypad.key) {case1: if(xx>33) {drawman(xx,yy,0); xx-=2; drawman(xx,yy,1); } break; /*if((yy==ban.coor[0][1]-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 根据 MSP430 游戏 开发 贪吃 男人 一百