STM32实现贪吃蛇.docVIP

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STM32实现贪吃蛇.doc

STM32实现贪吃蛇 STM32学习笔记二 竹天笑 题记:离写第一篇学习笔记,已经好久了,那时还在学校,而我已经离开那个使我忧伤使我愁的地方。走的时候,荷花差不多谢了,西大的荷花花期是那么长,而总是要谢了。花看了三年,只是离开的时候想再看看,却没有了。 来公司快两个星期了,上班下班办手续,洗被子洗衣服,订门窗理柜子。哎,没心没肺的,匆匆忙忙的过完一天又一天,还没来得及伤感,就赶上了忙碌。工作就黑压压的埋过来来了,好在晚上还不要加班。乘晚上还有点空,就把这个在学ucgui的时候想测试ucgui各函数功能的东西,花了一个晚上写完,写到12点多,只好做了简单的测试,没问题,算是半实验品吧,里面肯定存在很多问题,纯属自娱自乐。 呵呵,界面非常简单 要点:1、触摸屏校准信息保存在SD卡,不必每次开机都校准。(读写SD卡,请参阅野火SD的教程,触摸屏校准信息保存在SD卡,请参阅定点原子SD的教程。))uint8_t rand_dot(void) { uint8_t r; srand(RTC_GetCounter()); //产生随机种子,实现真正的随机函数,如果没有此句就是伪随机函数。 r=rand()%58+1;//将随机函数产生点的范围放到1-58 return r; } RTC的初始化是固定格式,不在此处贴出。 画点函数:(将一个点扩展成4*4,另外除去四个角上的点,就类似于圆形了。) void My_DrawPoint(uint8_t x,uint8_t y) { uint8_t i; GUI_SetPenSize(1); for(i=0;i2;i++) { GUI_DrawPoint(x*4+i+1,y*4); } for(i=0;i4;i++) { GUI_DrawPoint(x*4+i,y*4+1); } for(i=0;i4;i++) { GUI_DrawPoint(x*4+i,y*4+2); } for(i=0;i2;i++) { GUI_DrawPoint(x*4+i+1,y*4+3); } } 全局参数 #define snake_MaxLength 20//最大长度 int8_t snake_xDiv=1;//0上,0下,-1左,1右 int8_t snake_yDiv=0;//-1上,1下,0左,0右 uint8_t snake_OK;//确定 uint8_t snake_Length=1;//蛇的长度,初始化为1 uint8_t xPos[snake_MaxLength];//存蛇每个数据点的x轴坐标 uint8_t yPos[snake_MaxLength];//存蛇每个数据点的y轴坐标 uint8_t i,flag;//标志量 uint8_t rand_x,rand_y;//随机点的坐标 uint16_t snake_Speed=1000;//蛇的速度,延时函数的参数:1000最慢,100最快 uint8_t snake_Score=0;//分数 //注意,防止数据截断,u8:0-255,有正有负时要用符号。一不小心就出错了。 初始化界面的参数: #define countof(Array) (sizeof(Array)/sizeof(Array[0])) //画外框,从x:0-239,y:0-239,外框厚度4. const GUI_POINT aPoints[]={{0,0},{239,0},{239,239},{0,239}}; const GUI_POINT bPoints[]={{1,1},{238,1},{238,238},{1,238}}; const GUI_POINT cPoints[]={{2,2},{237,2},{237,237},{2,237}}; const GUI_POINT dPoints[]={{3,3},{236,3},{236,236},{3,236}}; //画按键,按键大小长20,宽20. const GUI_POINT aButtons[]={{0,0},{20,0},{20,20},{0,20}}; 初始化界面: void snake_Init(void) { GUI_SetBkColor(GUI_RED); GUI_SetColor(GUI_YELLOW); GUI_Clear(); GUI_SetPenSize(1); //画外框 GUI_DrawPolygon(aPoints,countof(aPoints),0,0); GUI_DrawPolygon(bPoints,countof(bPoints),0,0); GUI_DrawPolygon(cPoints,counto

文档评论(0)

cai + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档