Arduino小游戏集合(俄罗斯方块)

本文介绍了使用Arduino Mega2560和LCD4884 Joystick Shield制作俄罗斯方块游戏的过程。文章涵盖前期准备,包括硬件材料和所需库;设计思路,包括游戏界面和方块的操作;详细设计,涉及按键检测、初始化、背景绘制、方块生成、移动变换、移动判断、方块绘制及得分计算;最后是结语。
摘要由CSDN通过智能技术生成

一:前期准备

用到的硬件材料Arduino Mega2560 + LCD4884 Joystick Shiled 

屏幕分辨率为48*84

软件平台 Arduino IDE, 需要用到的库 U8glib +MsTime2


二:设计思路

1:游戏整体界面

标准的俄罗斯方块为行宽为10,列高为20,结合屏幕大小每个最小单位点设为2*2像素,共计七种方块,19种形状,使用[10][20]的二维数组存放方块位置信息,需要显示则将相应位置的数组值改为1,空白则为0。并在左侧显示下一个方块形状,右侧显示当前分数和等级

游戏界面如图所示


2:方块的产生、变换和移动

我没有采用使用整体存放方块图形信息的方法,因为不知道怎么使用U8glib库旋转单个图形,采用的是一种比较笨的方法。
每一种方块选取一个中心点,围绕这个中心点来绘制方块,移动的时候也是直接移动中心点然后重新在中心点绘制方块,总共有16种方块图形这里选取其中一种来做例子说明

(1) 方块的产生

例如Z形方块

选取B为中心点,只需要获取B的坐标信息,设为(x,y)那么其他几个方块的坐标也能相应求出来,然后将二维数组中的这几个对应值设为1,循环绘制的时候就能显示出方块图形了


(2)方块的变换和移动

我们想要控制方块旋转的时候就需要重新获取方块生成的方式
  • 7
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值