当我们在家里收到 Arduino 入门套件时,我 12 岁的儿子看到了 LCDS 屏幕。每场比赛有3场直播。
游戏过程中,障碍物的速度每20秒增加一次,障碍物之间的距离缩短。这使得游戏越来越难。
游戏结束时显示得分和最佳得分
每次碰撞都会显示现场人数,蜂鸣器会发出失望的声音。
有一个布线草图。但是 Arduino 项目书也可以提供帮助。按钮作为 Arduino 项目手册的第 2 课进行连接。屏幕的连接与第 11 课相同。蜂鸣器的连接与第 6 课相同,但使用额外的电位计 10k 欧姆来设置音量。
所有部件都是 Arduino 入门套件中的标准部件。
标准的 Arduino 循环 void loop() 使游戏在每次“游戏结束”后重新启动。只要游戏还没有结束,里面还有另一个循环,可以在一段时间内继续计划。当一个生命丢失时,它只是游戏中断以减少生命数量(不是循环)。
在这个 while 循环中,游戏的每个参数按照以下顺序一一检查。
1- 管理和显示障碍物
2- 检查按钮是否被按下,如果是的话开始跳跃并启动跳跃计时器
3-检查跳跃计时器是否结束以结束跳跃
4- 在上面定义的行上写下恐龙角色
5- 检查玩家是否松开按钮。这是为了避免玩家通过长时间按下按钮来跳过多个障碍物来作弊。
6- 检查顶线或底线是否发生碰撞
7- 检查是否到了提高游戏速度的时候
游戏的速度由变量“Fix”控制。Fix 是障碍物冻结的持续时间(以毫秒为单位),在此期间它们不会移动。游戏开始时0.5秒。
2 个障碍物之间的距离由函数设置:random(3, 8)。因此,游戏开始时 2 个障碍物之间的下一个距离将在 3 到 8 个字符之间。它存储在 EspaceAl。障碍物每向左移动一次,Espace 就增加一个。当 Espace = EspaceAl 时,在右侧第 15 列添加一个新障碍物。然后第二个随机函数决定障碍物是放在顶部还是底部。我想在下面的线上设置 mor 障碍物,所以指令是 'if(random(1, 10) >2)'
障碍物存储在 2 x 16 的表格中。这是因为没有 LCD 屏幕功能来检查屏幕上有什么。
定义所有障碍物后,使用带有变量 II 和 LL 的 2“For”循环将它们打印在屏幕上。II 为 15 列,LL 为 2 行。
有一个检查“if(II!= ColBonh)”以避免在我们想要清除障碍物时清除恐龙。
当按下按钮并且恐龙处于底线时,恐龙就会跳跃,跳跃计时器开始计时。dino 行变为 1。我们通过写入一个空格来擦除下行的 dino。
当计时器超过固定时间的 3 倍时,我们在跳跃结束时执行相反的操作。这个数字3是恐龙跳跃的字符数,一次跳跃的长度。它必须与游戏的速度同步。
要检查是否存在碰撞,需要检查两件事:
如果2个中有一个为真,那么我们就减少生命数,显示心脏并播放声音。
如何控制游戏?为了增加游戏的难度,你可以做几件事:
millis 函数的分数只是游戏的持续时间,但也可以是跨越障碍的数量。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !