?? 資源詳細信息
?? 溫馨提示:本資源由用戶 13692533910 上傳分享,僅供學習交流使用。如有侵權,請聯系我們刪除。
資源簡介
本源代碼是基于STM32F4xx硬件平臺設計的貪吃蛇小游戲,主要難點在:隨機點產生、貪吃蛇轉向、貪吃蛇貪吃點;
本部分主要接收產生隨機點,產生隨機點需要注意兩個方面:
1、隨機點在有效的范圍內;
2、貪吃點與貪吃蛇不重合。
產生隨機點主要有兩個函數,分別如下:
//隨機數產生任務
void rng_chansheng(void *p_arg)
{
OS_ERR err;
while(1)
{
OSSemPend(&RNG_SEM,0,OS_OPT_PEND_BLOCKING,0,&err);
zou.x = RNG_Get_RandomRange(0,50)*8 + 40;
zou.y = RNG_Get_RandomRange(0,50)*8 + 260;
lcd_fangkuan(zou.x,zou.y,zou.x+SHE_FAANGKUAN_SIZE,zou.y+SHE_FAANGKUAN_SIZE);
OSTimeDlyHMSM(0,0,0,500,OS_OPT_TIME_HMSM_STRICT,&err); //延時500ms
}
}
//往下方向畫一個實心的正方形,代表貪食蛇的一段
void lcd_fangkuan(u16 x1,u16 y1,u16 x2 ,u16 y2)
{
u16 i,j;
u16 xx,yy;
if(((x2 - x1) != SHE_FAANGKUAN_SIZE)||((y2 - y1) != SHE_FAANGKUAN_SIZE))
return ;
if(x1 > x2)
{
xx = x1;
x1 = x2;
x2 = xx;
}
if(y1 > y2)
{
yy = y1;
y1 = y2;
y2 = yy;
}
if((y1 < 260)|| (y2 > 660)||(x1 < 40)||(x2 > 448))
{
game_yun_error = 1;
LCD_ShowString(150,300,500,24,24,"GAME OVER!!");
return ;
}
for(i=x1; i<x2; i++)
{
for(j=y1; j<y2; j++)
{
LCD_DrawPoint(i,j);
}
}
}
立即下載此資源
資源說明
下載說明
- 下載需消耗 2積分
- 24小時內重復下載不扣分
- 支持斷點續傳
- 資源永久有效
使用說明
- 下載后用解壓軟件解壓
- 推薦 WinRAR 或 7-Zip
- 如有密碼請查看說明
- 解壓后即可使用
積分獲取
- 上傳資源獲得積分
- 每日簽到免費領取
- 邀請好友注冊獎勵
- 查看詳情 →