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