亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Manufacturing Technology >> 制造工艺

像素追逐游戏

组件和用品

Arduino Nano R3
× 1
Adafruit NeoPixel Ring:WS2812 5050 RGB LED
× 1
无焊面包板半尺寸
× 1
电阻 10k ohm
× 1
SparkFun 按钮开关 12mm
× 1
跳线(通用)
× 1

应用和在线服务

Arduino IDE

关于这个项目

我曾经是一名游戏开发者,手游开发的圣杯之一就是制作终极的“一键式”游戏。

我想看看我是否可以使用微控制器、按钮和某种形式的视觉反馈来制作一款很棒的一键“物理”游戏。

介绍像素追逐者!

这是一个相当简单的构建,所以让我们开始吧!

我们需要哪些部分?

我们需要以下内容:

  • Arduino Nano(或任何具有 2 个可用 IO 引脚的微控制器)
  • RGB“NeoPixel”环或条
  • 瞬时按钮
  • 10k 电阻
  • 面包板
  • 电线

第一步

将 Nano 放在面包板的一端,USB 连接器在边缘。

步骤 2

将按钮放在面包板的另一端,尽可能靠近边缘,以便轻松够到。

步骤 3

在按钮的一侧和面包板的 GND 导轨之间添加 10k 电阻器。这将是按钮的默认低状态。我们使用电阻来确保按下按钮时VCC和GND之间不会短路,否则会损坏微控制器和其他组件。

第 4 步

将跳线从按钮的另一侧连接到 VCC 导轨。按下时按钮会变高。

第五步

将跳线从按钮的 GND 侧连接到 Nano 上的 D3。我们将读取 D3 来确定按钮的状态。

步骤 6

将 RGB 条/环连接到面包板。将 VCC 线连接到 VCC 电源轨,将 GND 线连接到 GND 电源轨,将 DI(数据输入)线连接到 Nano 上的 D4。我们将使用 D4 控制像素。

第七步

Nano 上的 5V 引脚用跳线连接到 VCC 电源轨,然后将 Nano 上的 GND 引脚的跳线连接到 GND 电源轨。

第八步

上传代码即可玩!

我希望你喜欢这个项目!

你可以在我的 YouTube 频道上找到更多这样有趣的项目。

跟我来:

http://twitter.com/unexpectedmaker

https://www.facebook.com/unexpectedmaker/

https://www.instagram.com/unexpectedmaker/

https://www.patreon.com/unexpectedmaker

https://www.tindie.com/stores/seonr/

代码

  • 像素追逐游戏 - Arduino 代码
像素追逐游戏 - Arduino 代码Arduino
在 Arduino 中添加此代码并按照构建说明进行操作!
/*--------------------------------- -----------------------------------------像素追逐游戏 - v1.0.0 - 24 /03/2019.AUTHOR/LICENSE:由 Seon Rozenblum 创建 - [email protected] 2016 许可证:GNU GPL v3 http://www.gnu.org/licenses/gpl-3.0.htmlLINKS:博客:unexpectedmaker.comYOUTUBE:youtube .com/c/unexpectedmakerDISCLAIMER:该软件按“原样”提供,没有技术支持,并且不提供任何明示或暗示的担保。目的:该控制器是在回流大师上运行的软件Unexpected MakerHISTORY 制作的烤面包机控制器:24/03/2019 v1.0.0 - 初始版本。注意:这是一项正在进行的工作......-------------------- -------------------------------------------------- ------*/// 我们需要从库管理器安装这些库#include #include "OneButton.h"// 连接到什么GPIO 的条带#define PIXELPIN 4// 有多少Ne o条带中的像素#define NUMPIXELS 24//按钮连接的GPIO是什么?#define BUTTON_TAP 3//初始化按钮,使用默认的lowOneButton buttonTAP(BUTTON_TAP, false);//初始化像素stripAdafruit_NeoPixel pixel =Adafruit_NeoPixel(NUMPIXELS , PIXELPIN, NEO_GRB + NEO_KHZ800);// 一堆变量int playerIndex =-1;int playerIndexTrail =-1;int playerDirection =1;float nextMove =0;float currentPlayerSpeed =150;unsigned long countdown =0;int敌人索引 =- 1;int coinIndex =-1;int score =0;int bestScore =0;int lastScore =0;bool gameOver =false;void setup(){ // 使按钮引脚成为输入 pinMode( BUTTON_TAP, INPUT ); // 将点击功能附加到按钮 buttonTAP.attachClick(singleClick); buttonTAP.attachLongPressStart(longClick); // 初始化条带并将其亮度设置为 20% 像素.begin();像素.setBrightness(20); // 在玩家出现并开始移动之前设置 2 秒倒计时 countdown =millis() + 2000;}void loop(){ // 每个周期我们都需要勾选按钮状态 buttonTAP.tick(); // 如果游戏处于游戏结束状态,则提前退出循环 if ( gameOver ) return; // 设置关卡的像素显示状态 // 这里设置敌人位置和硬币位置 SetLevel(); // 等待玩家准备好一秒钟 if ( countdown> millis() ) { pixel.show();返回; } // 所有的玩家显示、移动和游戏逻辑都在这里 DisplayPlayer(); // 这会将更新的像素颜色发送到硬件。 pixel.show();}// 清除关卡,设置所有像素为 blackvoid ClearLevel(){ for(int i=0;i=0 ) pixel.setPixelColor(playerIndexTrail, pixel.Color(0, 0, 0)); if ( playerIndex>=0) { pixel.setPixelColor(playerIndex, pixel.Color(0, 100, 0)); playerIndexTrail =玩家索引; } // 沿当前方向移动玩家 playerIndex +=playerDirection; // 在条带边缘包裹播放器 if ( playerIndex <0 ) playerIndex =NUM​​PIXELS - 1;否则如果(玩家索引 ==NUM​​PIXELS)玩家索引 =0; pixel.setPixelColor(playerIndex, pixel.Color(0, 255, 0)); // 玩家是否击中了硬币? // 如果是这样,增加分数,重置硬币和敌人的位置并清除关卡 // 下一个循环 SetLevel() 将重置敌人和硬币 // 玩家速度也会随着每个硬币命中而增加 if ( playerIndex ==coinIndex ) {敌人指数 =-1;币指数 =-1;得分++; currentPlayerSpeed =约束( currentPlayerSpeed - 10, 50, 150 );清除级别(); pixel.setPixelColor(playerIndex, pixel.Color(0, 255, 0)); } // 玩家是否击中了敌人? // 设置最后/最好的分数并调用游戏结束 else if ( playerIndex ==evilIndex ) { lastScore =score; if ( score>=bestScore ) bestScore =score;游戏结束();游戏结束 =真;敌人指数 =-1;币指数 =-1;玩家指数 =-1; } }}// 单按钮 clickvoid singleClick(){ // 在玩家可见之前没有输入 if ( countdown> millis() ) return; // 切换玩家方向 playerDirection =-playerDirection;} // 长按钮 clickvoid longClick(){ // 切换游戏结束状态 // 如果游戏结束,则开始游戏,否则取消正在进行的游戏 gameOver =!gameOver;如果(游戏结束){敌人指数=-1;币指数 =-1;玩家指数 =-1;当前播放器速度 =150;清除级别(); } else { ClearLevel();分数 =0;当前播放器速度 =150;倒计时 =毫秒()+ 2000; }}

制造工艺

  1. Arduino Gyroscope Game with MPU-6050
  2. Arduino 数字骰子
  3. Arduino Pong Game - OLED 显示器
  4. DIY 37 LED 轮盘游戏
  5. Arduino 游戏控制器
  6. Arduino Touch Breakout 游戏
  7. 自制 16x8 矩阵上的 Arduino Nano 俄罗斯方块游戏
  8. Arduino 排斥电磁悬浮
  9. 使用 arduino 的自动化恐龙游戏
  10. 由 Alexa 激活的 Arduino 家庭控制器
  11. NeoMatrix Arduino Pong
  12. 带 WS2812 LED 灯条的 DIY Arduino 1D 乒乓球游戏