基于MSP430的游戏开发(贪吃蛇和是男人就下一百层).doc
《基于MSP430的游戏开发(贪吃蛇和是男人就下一百层).doc》由会员分享,可在线阅读,更多相关《基于MSP430的游戏开发(贪吃蛇和是男人就下一百层).doc(19页珍藏版)》请在三一文库上搜索。
1、uchar a= 0;uchar big=0;uchar big2=0;uchar flg=0;uchar levelcnt=0;uchar dir_last=KEY_RIGHT;void tanchishe();/贪吃蛇实现函数void man();/是男人就下一百层实现函数void gamer() char jt=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); / drawpicfr
2、ee(2,45,9,58,*mubiao); Delay(50000); Delay(50000);while(1) switch(key()case 5: if(jt>34)jt-=15;jiantou(20,jt+15,0);jiantou(20,jt,1);Delay(100000);break; case 3: if(jt<32)jt+=15;jiantou(20,jt-15,0);jiantou(20,jt,1);Delay(100000);break; case 9: if(jt=21) goto tcs1; else if(jt=36) goto mn; break;
3、 /case 0:/goto ;break;mn:man();推荐精选tcs1:tanchishe();void tanchishe()int xx=0 ; int yy=0 ; uint speed=22001; Set_Drawq(); drawpicfree(0,0,15,63,*SNAKE); track.trackend=3 ; while(1) if(a) LPM3; uint i,j ; keypad.key=key(); /-keypad case- switch(keypad.key) case 11: if(speed>1000)speed-=1000; else i
4、f(speed>500) speed-=500;break; case 10:speed+=1000;break; case 7 : if(flag.direction!=KEY_LEFT)flag.direction=KEY_RIGHT ; break ; case 1 : / if(flag.direction!=KEY_RIGHT)flag.direction=KEY_LEFT ; break ; 推荐精选 case 5: if(flag.direction!=KEY_DOWN)flag.direction=KEY_UP;break ; case 3: if(flag.direct
5、ion!=KEY_UP)flag.direction=KEY_DOWN;break ; case 9: /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 ; case 4: if(flag.start=0) /LCD_INT(); /LCD_CLR(); Set_Draw(); track
6、.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 ; /-draw snake-推荐精选 / if(drawcnt>speed) / /if(flag.direction) / drawRectangle(xx+0,yy+0,xx+3,yy+3,2,0);/ /-draw bean begin- if(bean.number<1) bean.coor0=r
7、and()/1024*4 ; bean.coor1=rand()/2048*4 ; bean.number=1; levelcnt+; if(levelcnt=15) if(speed>2000)speed-=2000; else if(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
8、(flag.start) if(big=3) drawRectangle(bean.coor0+0,bean.coor1+0,bean.coor0+3,bean.coor1+3,1,1); else if(big2=10) drawyuan(bean.coor0+1,bean.coor1+0,bean.coor0+1,bean.coor1+3,2,1); else drawRectangle(bean.coor0+0,bean.coor1+0,bean.coor0+2,bean.coor1+2,1,1); /-清楚头部- switch(dir_last)推荐精选 case KEY_RIGHT
9、: headright(xx,yy+0,0); break ; case KEY_LEFT : headleft(xx,yy+0,0); break ; case KEY_UP : headup(xx,yy,0); break ; case KEY_DOWN : headdown(xx+0,yy,0); break ; if(flag.direction) switch(flag.direction) case KEY_RIGHT: /drawRectangle(xx,yy-2,xx+7,yy+5,4,0); shenx(xx,yy+0,1);break; case KEY_LEFT: / d
10、rawRectangle(xx-4,yy-2,xx+3,yy+5,4,0); shenx(xx,yy+0,1);break; case KEY_UP: / drawRectangle(xx-2,yy-5,xx+5,yy+3,4,0); sheny(xx+0,yy,1);break; case KEY_DOWN: / drawRectangle(xx-2,yy,xx+5,yy+7,4,0); sheny(xx+0,yy,1);break; /draw snake head /-eat bean- if(xx=bean.coor0&&yy=bean.coor1) if(big=3)
11、 track.trackend+=2; else if(big2=8) track.trackend+=4; else track.trackend+; bean.number-; else 推荐精选 for(i=0;i<track.trackend-1;i+) if(xx=track.tracki0&&yy=track.tracki1&&(xx!=0&&yy!=0) if(flag.gameover=0) Lcd_flash(500,5); drawpicfree(0,0,15,63,*over); flag.direction=KEY_
12、HOLD ; flag.gameover=1 ; flag.start=0 ; for(j=0;j<4;j+) track.trackij=track.tracki+1j;/ 后一节获得前一节的坐标 /-save snake track- track.tracktrack.trackend-10=xx+0 ; track.tracktrack.trackend-11=yy+0 ; track.tracktrack.trackend-12=xx+3 ; track.tracktrack.trackend-13=yy+3 ; / /- /drawcnt=0 ; /-move snake- s
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MSP430 游戏 开发 贪吃 男人 一百
链接地址:https://www.31doc.com/p-12050814.html