首页|资源下载
登录|注册

您现在的位置是:电子研发网 > 资源下载 > 基于STM32F4xx和UCOSIII设计的贪吃蛇小游戏

基于STM32F4xx和UCOSIII设计的贪吃蛇小游戏

  • 资源大小:827
  • 上传时间: 2023-08-30
  • 上传用户:zhou5631
  • 资源积分:2 下载积分
  • 标      签: stm32 ucosiii 贪吃蛇游戏

资 源 简 介

本源代码是基于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);

}

}

}

文 件 预 览

文件名文件大小修改时间
贪吃蛇UCOSSIII/CORE/core_cm4.h107KB2013-11-07 18:54:16
贪吃蛇UCOSSIII/CORE/core_cm4_simd.h22KB2013-11-07 18:54:16
贪吃蛇UCOSSIII/CORE/core_cmFunc.h17KB2014-07-17 21:52:48
贪吃蛇UCOSSIII/CORE/core_cmInstr.h20KB2014-07-17 21:52:48
贪吃蛇UCOSSIII/CORE/startup_stm32f40_41xxx.s29KB2014-10-25 11:12:44
贪吃蛇UCOSSIII/FWLIB/STM32F4xx_StdPeriph_Driver/inc/misc.h7KB2014-08-01 23:18:04
贪吃蛇UCOSSIII/FWLIB/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_adc.h32KB2014-08-01 23:18:04
贪吃蛇UCOSSIII/FWLIB/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_can.h27KB2014-08-01 23:18:04
贪吃蛇UCOSSIII/FWLIB/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_crc.h2KB2014-08-01 23:18:04
贪吃蛇UCOSSIII/FWLIB/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_cryp.h14KB2014-08-01 23:18:04
贪吃蛇UCOSSIII/FWLIB/STM32F4xx_StdPeriph_Driver/inc/stm32f4xx_dac.h15KB2014-08-01 23:18:04
...

相 关 资 源