一. 前言

在这之前俄罗斯方块代码,一直想写一个基于FPGA俄罗斯方块的游戏,但是感觉太复杂了,就一直没有行动。

但是最近看到有好多人需要这方面的资料参考学习,所以我这才下定决心开始完成这个小游戏。下面来看一下效果吧。

使用到的硬件有

FPGA开发板

VGA屏幕

四个独立按键

二.框架介绍

这个游戏从地图的显示来看,主要可以分为四个部分 :边界,下一个图形,当前图形和存储。由于这四部分的显示数据是独立的,互不冲突,所以我们是从这四个部分入手,一一实现其具体功能。

边界

边界是静止的,位置也是固定的,这部分较为简单,只需要根据当前的显示位置和边界区域进行对比,是在边界区域内的话,就输出使能信号和显示数据。

//generate Teris Wall datamodule TerisWall(  input      clk,  input      rst,  //input current display position  input[8:0]    x_addr,  input[8:0]    y_addr,  //output cuurent display position is Wall or not,and data  output    Wall,  output[23:0]   WallData)

下一个图形

俄罗斯方块的每一个图形都是由四个方块组成的,这里只需要四个寄存器即可存储,用高位和低位分别表示x的位置和y的位置。

对照每一个图形的形状,来给定对应的位置即可。然后根据LFSR位移寄存器来随机选择下一个的形状。

根据输入进来的xy的位置,对四个点的位置进行判断,输出对应的使能信号和显示数据。

然后下一个图形的数据和图形类型也要输出,用于对当前图形的赋值和旋转。

module TerisNextChart(  input      clk,  input      rst,  input[8:0]    x_addr,  input[8:0]    y_addr,  input      UpdateEnable,   //更新使能,对下个图形进行更新  output    NextDisplayEn,  output[23:0]  NextDisplayData,  output[2:0]    CurrIndex,  output[9:0]  NextDot1,  output[9:0]  NextDot2,  output[9:0]  NextDot3,  output[9:0]  NextDot4  );

3.当前图形

这部分是整个游戏中,最核心的部分了,理所应当也是最复杂的部分。其中包括: 图形的移动,图形的下落以及图形的旋转。

1. 图形的移动 :通过按键,来对图形的x位置进行加一或者减一,需要判断图形是否在边界上。

2. 图形的下落 : 通过定时器,固定时间产生一个使能信号,当信号来的时候,图形的y值就加一。

3. 图形的旋转 : 通过输入进来图形的类别,来对图像进行操作。这里事先在草稿纸上绘制出每一个图形每一步旋转的坐标变化,计算出坐标的变化量。

以下图为例,图形3的变化共有四种情况。

4. 存储

这里存储的是地图中的数据,地图的大小为10*20,这里直接用一个memory即可。如下,第一个维度代表每一行,第二代表每一列,例如Row[2][4]代表第三行,第五列。值为1的话,就代表这里有方块。

reg[9:0] Row[19:0];

当前图形的数据输入其中,如果当前数据满足条件,就会产生一个Update信号,并且将当前图形的数据存储到地图中。

当地图中,有一行全部为1的时候,就对这一行进行消除,当前行的数据等于上一行的数据,依次类推俄罗斯方块代码,代码如下。

到这里整体框架就介绍完成了。

需要项目代码的可以对话框回复关键词“FPGA俄罗斯方块”获取,别忘记点赞分享哦。

END

发表回复

后才能评论

本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。

最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。 若排除这种情况,可在对应资源底部留言,或联络我们。

对于会员专享、整站源码、程序插件、网站模板、网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。

如果您已经成功付款但是网站没有弹出成功提示,请联系站长提供付款信息为您处理

源码素材属于虚拟商品,具有可复制性,可传播性,一旦授予,不接受任何形式的退款、换货要求。请您在购买获取之前确认好 是您所需要的资源