[uCOS/RTOS] 基于UCOSIII的贪吃蛇设计

[复制链接]
2384|4
 楼主| liuzhemin22 发表于 2019-2-19 19:58 | 显示全部楼层 |阅读模式
本次的贪吃蛇是基于STM32F409的硬件平台而设计的,主要难点有:产生随机点、判断游戏失败,贪吃蛇如何转弯,本处只详解产生随机点的设计。产生随机点的要求有:
1、在显示屏范围内产生;
2、在贪吃蛇的外部产生;
产生随机点的步骤:
1、首先产生x轴和y轴随机位置的两个点(随机点的为正方形,大小为SHE_FAANGKUAN_SIZE[payamount]5.00[/payamount]
[pay]请在此处填写付费后可见内容[/pay][payamount]5.00[/payamount]
[pay]请在此处填写付费后可见内容[/pay]),如函数void  rng_chansheng(void *p_arg);
2、然后判断两个随机点是否在范围内,不在范围内则重新执行第1步,否则在显示屏上绘制一个小的正方形,函数void lcd_fangkuan(u16 x1,u16 y1,u16 x2 ,u16 y2);
3、当贪吃蛇吃掉该随机点后,重新执行第1步,否则继续等贪吃蛇吃掉该点。
//随机点产生函数
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);
                }
        }
}


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
 楼主| liuzhemin22 发表于 2019-2-19 20:06 | 显示全部楼层

RE: 基于UCOSIII的贪吃蛇设计

内容真实可靠
[payamount]5.00[/payamount]
[pay]请在此处填写付费后可见内容[/pay]
airwill 发表于 2019-2-23 10:20 | 显示全部楼层
贪吃蛇, 为啥要基于UCOSIII设计?
17630065432 发表于 2019-3-1 09:55 | 显示全部楼层
谢谢楼主分享
ciciper 发表于 2022-5-22 19:32 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

4

主题

6

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部