基于s3c2440的小明过马路游戏

一、游戏功能

实现小明过马路游戏,功能如下:

随机产生马路上的车辆,车型有三种,小轿车、面包车、公交车;

通过按键控制小明移动,按一次“1”键小明走过一个车道;

按键控制通过中断判断;

小明每过一次马路回到原点,加快车辆移动速度;

判断小明所在车道上车辆与小明位置关系,实现碰撞检测;

小明每过一个车道加10分,游戏结束显示总分数;

二、程序原理

程序主要利用了两个外设,键盘和LCD,没有用到线程和进程的知识。

键盘

键盘驱动有一点需要说明,读取键盘数值时会阻塞进程直至产生按键中断,因此需要将wait_event_interruptible_timeout(button_waitq, ev_press,5);此处的数值设置为5,意为等待5ms,超时自动退出。

键盘读取函数

//键盘读取处理函数
int read_key()
{
	//持续检测键盘输入,为了防止长时间等待,超时5ms即退出,驱动代码需要更改
		//int key_value = 0;
		char current_buttons[2];
		//char realchar;
		
	if (read(buttons_fd, current_buttons, sizeof current_buttons) != sizeof current_buttons) 
	{
		printf("nothing\n");
		return 0;
		
	}

	if (buttons[0] != current_buttons[0] || buttons[1] != current_buttons[1]) 
	{
		buttons[0] = current_buttons[0];
		buttons[1] = current
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值