×

Arduino硬恐龙液晶游戏

消耗积分:0 | 格式:zip | 大小:0.28 MB | 2023-07-12

分享资料个

描述

当我们在家里收到 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是恐龙跳跃的字符数,一次跳跃的长度。它必须与游戏的速度同步。

要检查是否存在碰撞,需要检查两件事:

  • 第 1 列是否有障碍物,下行是第 0 行的恐龙
  • 第 1 列上线是否有障碍物,第 1 行是否有恐龙

如果2个中有一个为真,那么我们就减少生命数,显示心脏并播放声音。

如何控制游戏?为了增加游戏的难度,你可以做几件事:

  • 通过减少变量 fix(在此代码中为 500)来提高游戏开始时的速度。
  • 每次增加更多的速度。在代码中时间减少了 30 毫秒,这 30 可以增加。
  • 更频繁地提高速度,这是通过减少变量“InterAugVitess”(代码中为 20 000)来完成的
  • 通过减少指令 random(3, 8) 中的 8 来减少 2 个障碍物之间的距离。

millis 函数的分数只是游戏的持续时间,但也可以是跨越障碍的数量。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !