emmm,虽然标题是Arduino,但我其实用的不是Arduino,是chipKIT。为什么标题叫Arduino呢,因为玩Arduino的小白多啊。
你看,这就叫标题党【Doge】

虽然我的确不是用的Arduino,但我的确用的是Arduino的IDE编译的啊。单片机芯片是chipKIT,开发板是老师做的,我拿来写个俄罗斯方块,顺便水一个大作业。所以说想复制粘贴直接白嫖的朋友,对不起啦。

话虽如此,既然用Arduino的IDE,好多关键字也是跟Arduino一样的,所以只要会C语言,应该就可以看懂了(虽然我大部分跟单片机相关的部分都是用位操作实现的)
而且有一说一,俄罗斯方块也不是什么很难写的东西,大致看看思路就好,具体的代码还是要自力更生的。
PS:第二篇和单片机没有什么关系,如果只想看游戏设计思路的,可以直接移步第二篇

第一部分先说一下思路吧。其实就是把一个C语言写的俄罗斯方块放在单片机上去实现。这里我是分成了三部分去设计。分别是硬件部分,单片机部分,游戏部分。

硬件部分就是线路啦。我用了一个chipKIT的开发板,一块160*80的LCD屏幕扩展板,以及四个游戏按键。四个按键连接到四个引脚上,输入一侧配置了下拉电阻,另一侧连接3v。按键不按时IO口为低电平,按下后IO口为高电平。然后以这些IO口的电平变化作为外部中断的触发源。因为LCD屏幕占用的一些IO口,中断不太够用,所以下的按键没有用中断,其他三个中断均配置为上升沿出发。

当时自己画的一个简单的线路图,如果单片机有下拉电阻可直接用单片机的,Vcc注意选3v不要选5v:

好久没用过洞洞板,及其丑陋的布局和失败的走锡和飞线…唉

然后是单片机部分,这一部分主要就是LCD的通信问题(用Arduino的同学可以直接pass了,有现成的库U8glib,不过效果怎么样我就不知道了,可能画面会卡顿?还是建议不要用库自己写一下试试,挺锻炼能力的)以及中断的配置。这也是我第一次直接通过操作寄存器而非用现成的库函数来实现相应的功能,不得不说,自己去看芯片的说明手册,然后自己尝试去实现,还是十分有成就感的。
这一部分我就不讲解了,因为我用的单片机和你们用的大概率不是一款,有兴趣的朋友可以移步源码的链接自己看一下。这里大概介绍一下某写游戏部分用到的函数的功能,以供参考:

//设置前景色的RGB值
void gui_set_frontColor(unsigned char fv_red, unsigned char fv_grn, unsigned char fv_blu);/*这两个函数用于横屏时显示字符,光标位置为字符的左上角,字符大小高12宽8*/
void lcd_putChar2(unsigned char fv_char);
void gui_put_str2(char *str_ptr, unsigned char str_len);//绘制游戏的框架
void DrawFrame();//绘制类型为form,形状为shape,基点坐标为(x,y)的俄罗斯方块
void DrawTetris(u8 x, u8 y, u8 form, u8 shape);//清除类型为form,形状为shape,基点坐标为(x,y)的俄罗斯方块
void ClearTetris(u8 x, u8 y, u8 form, u8 shape);

然后是游戏部分了,这一部分放到下一篇说吧。

Arduino制作俄罗斯方块小游戏(一)整体设计思路相关推荐

  1. Arduino制作俄罗斯方块小游戏(三)程序源码

    #include <avr/pgmspace.h> #include <Wire.h>#define u8 unsigned char// 1. LCD显示屏的接口定义 #de ...

  2. pyqt5制作俄罗斯方块小游戏-----源码解析

    一.前言 最近学习pyqt5中文教程时,最后一个例子制作了一个俄罗斯方块小游戏,由于解释的不是很清楚,所以源码有点看不懂,查找网上资料后,大概弄懂了源码的原理. 二.绘制主窗口 将主窗口居中,且设置了 ...

  3. python编的俄罗斯方块游戏_手把手制作Python小游戏:俄罗斯方块(一)

    手把手制作Python小游戏:俄罗斯方块1 大家好,新手第一次写文章,请多多指教 A.准备工作: 这里我们运用的是Pygame库,因为Python没有内置,所以需要下载 如果没有pygame,可以到官 ...

  4. python图形小游戏代码_手把手制作Python小游戏:俄罗斯方块(一)

    手把手制作Python小游戏:俄罗斯方块1 大家好,新手第一次写文章,请多多指教 A.准备工作: 这里我们运用的是Pygame库,因为Python没有内置,所以需要下载 如果没有pygame,可以到官 ...

  5. 塔防小游戏的开发设计经历

    前段时间微信朋友圈里微信经常向我推塔防小游戏,一时心血来潮,研究了下这类小游戏的开发设计,仿造了经典塔防游戏<Field Runner>.文章在其它平台发表过,为了让更多同学可以看到,作者 ...

  6. c++ 小游戏_C/C++编程新手入门基础系列:俄罗斯方块小游戏制作源代码

    这篇文章主要为大家详细介绍了C语言实现俄罗斯方块小游戏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下. 1.要先下载一个 graphics.h 的头文件来绘图. 2.初始化窗口:initgraph ...

  7. 3d游戏编程大师技巧 源代码_C/C++编程入门基础系列:俄罗斯方块小游戏制作,直接源代码分享...

    这篇文章主要为大家详细介绍了C语言实现俄罗斯方块小游戏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.要先下载一个 graphics.h 的头文件来绘图. 2.初始化窗口:initgraph( ...

  8. C/C++编程新手入门基础系列:俄罗斯方块小游戏制作源代码

    这篇文章主要为大家详细介绍了C语言实现俄罗斯方块小游戏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下 1.要先下载一个 graphics.h 的头文件来绘图. 2.初始化窗口:initgraph( ...

  9. 2048java课程设计报告_2048小游戏-Java-课程设计报告书

    <2048小游戏-Java-课程设计报告书>由会员分享,可在线阅读,更多相关<2048小游戏-Java-课程设计报告书(31页珍藏版)>请在金锄头文库上搜索. 1.JAVA 语 ...

最新文章

  1. 单片机红绿灯电路灯有几种_LED路灯电源防雷与设计方案
  2. 需要注意的小问题------闹的笑话
  3. python学多久可以做项目-怎么自学python,大概要多久?
  4. LeetCode 47全排列Ⅱ48旋转图像
  5. 解析《中国互联网软件测试行业2018年度调研报告》
  6. DataTable的Merge\COPY\AcceptChange使用说明
  7. mongodb如何写入图片_CTO之瞳-数据库-MongoDB
  8. 一篇文章教会你使用Python中三种简单的函数
  9. Mr.J-- jQuery学习笔记(九)--事件绑定移除冒泡
  10. python对文件的相关操作
  11. php+mysql模板个人记账系统
  12. 微型计算机原理与接口技术 试卷,微机原理与接口技术试卷和答案4套.doc
  13. tp810c桥接_TP-Link双无线路由器开启WDS桥接设置步骤
  14. 风寒感冒和风热感冒 区别
  15. 交易系统架构演进之路(二):2.0版
  16. c++类与对象(一)
  17. 代理机制说明及JDK动态代理的使用
  18. 51单片机 | LCD12864 液晶显示实验
  19. SIGIR论文写作技巧
  20. 分布式系统架构---SOA服务体系架构

热门文章

  1. AndroidStudio使用properties资源文件
  2. 【笔记】STM32F4xx 时钟定时器
  3. D盘需要管理员权限问题
  4. 招聘网探究分析报告(以描述性分析为主)
  5. 用Cadence Virtuoso绘制反相器教程
  6. 化繁为简,微软 Desktop Flow(“RPA”)正式在华商用!
  7. 在安卓系统中集成YAHFA框架
  8. ue4设置默认打开的地图和默认游戏模式
  9. 安卓TV开发(九) Android模拟事件 遥控器变身成鼠标来操作TV
  10. 使用Qt常见报错及解决方案