基于STM32F407的俄罗斯方块小游戏的设计

这篇具有很好参考价值的文章主要介绍了基于STM32F407的俄罗斯方块小游戏的设计。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

    本文讲述的是基于STM32F407的俄罗斯方块小游戏的设计思路和测试结果,具体的代码分析见文章 基于STM32F407的俄罗斯方块游戏代码分析_钻仰弥坚的博客-CSDN博客

一、课题实现思路说明

1.1 可行性分析

可行性分析能够对新系统进行各方面的分析与研究,确定新系统是否具有开发的可行性和必要性。以免进行不必要的投资,保证新系统开发成功。基于STM32的俄罗斯的游戏设计系统将从以下三个方面进行研究:技术可行性、经济可行性、操作可行性。

(1)技术可行性:

本系统采用STM32开发版其自带的函数进行开发,俄罗斯方块需要用的是界面显示有LCD模块,游戏操纵可以用按键或者遥控器都可以实现,游戏的逻辑可以借用工具软件以及掌握的编程语言即可运行实现,在技术实现方面不存在问题。

而我们可以通过使用Keil μVision IDE/调试器和ULINK USB-JTAG转换器,用户可以很方便地编辑、下载和在实际的目标硬件上测试嵌入的程序。通过使用 Keil μvision IDE 调试器和 ULINK USB-JTAG 转换器,用户可以很方便地编辑、下载和在实际的目标硬件上测试嵌入的程序。因此本系统在技术上具有可行性。

(2)经济可行性:

本系统是要在STM32开发板上实现俄罗斯方块小游戏,只需要用现有的STM32自带的模块,不需要额外添加模块,在设计实现过程中不会产生较大的成本,经济上具有可行性。

(3)操作可行性:

基于STM32的俄罗斯的游戏设计系统具备的基本操作可以通过开发板上的按键或者自带的遥控器实现其方块的移动与旋转,这个系统操作起来还是比较简便的,不会很难控制。

1.2 需求分析

俄罗斯方块游戏基本规则是玩家通过旋转和移动来操纵方块,方块在下落、旋转或左右移动前要判断方块的下一个位置是否全部位置都没有方块,并且没有超出界限,如果满足条件方可移动,否则就不能移动。当方块不能继续下落时,也要判断所有行是否有满行,如果有则要消除所有的满行,并且将剩下行整行下降,以及给玩家加分。

而关于该游戏主要包含5大功能:模式选择、方块预览、等级设置、方块移动、行满消除。

(1)模式选择:点击触摸屏,可以选择出想要选择的模式,完成模式选择。

(2)方块预览提示:因为下一个将要出现的方块是随机的,所以设置了方块预览功能。玩家在移动控制当前的方块时,玩家可以在游戏界面右侧中看到下一个将要出现的方块的形状。这样有利于玩家在下一个方块出现时第一时间做出合适的判断。

(3)等级设置:等级设置包括了分数设置,当分数达到一定高度时可以升级,增加游戏的趣味性和挑战性。

(4)方块移动:利用开发板上的按键或者遥控器操纵方块的移动,包括旋转,左右移动以及加速下移,帮助玩家完成游戏。

(5)行满消除:如果有某行的方块是填满的,则消除这行的方块,并且上面的所有方块下移,并且加上相应的分数。

对于上述需求概述做出了更为细化的需求分析表,包含游戏界面设计,按键控制方块移动,游戏的逻辑设计,如下表所示。

俄罗斯方块小游戏需求分析表

注:1、优先级分为P1、P2,重要性依次递减,即P1为必须完成功能,P2为最好完成功能

序号

功能模块名称

使用角色

子功能模块名称

1

2

1

游戏界面

玩家

触摸屏点击游戏开始

操控模式选择

关卡难度选择

分数显示

等级显示

下一个方块提示

最高分数显示

游戏操纵提示

方块界面显示

游戏用时

2

按键控制(遥控器控制模式同)

玩家

开始键,点击游戏重新开始,(游戏失败时触发)

左移键,按键方块左移

右移键,按键方块右移

下移键,按键方块下移

旋转键,按键方块旋转

重启键(仅遥控器模式存在)

3

游戏功能逻辑设计

玩家

生成随机方块

冲突检测(方块不能重叠及超出游戏范围)

自由下落

满行消除

判断模块(又叫冲突检测,用于判断无法继续下落或者旋转移动)

控制方块下落速度

方块移动(受遥控器或按键控制)

方块旋转(受遥控器或按键控制)

计算最高分

1.3 功能结构分析

通过需求分析,我进一步明确了我需要设计的俄罗斯方块小游戏需要的模块。我还是把该游戏分为两个方面,一为游戏显示页面二为游戏逻辑实现。前者是面向玩家的一个窗口,通过LED显示出方便玩家使用的功能。而后者是项目的灵魂,游戏能否正常使用在于游戏的逻辑能否实现。而对于该项目的两部分还可以继续拆分,其功能结构图如图1所示。游戏界面设计包括时间显示,模式选择,分数显示,界面显示,下一个方块提示。而游戏的逻辑设计包括玩家操纵,冲突检测,方块移动,分数计算,时间计算。其中玩家操纵也可以分为按键模式和遥控器模式,方块移动可以分为左移,右移,下移,旋转四种方式。

基于STM32F407的俄罗斯方块小游戏的设计

游戏功能结构图

1.4  系统方案设计

根据上述分析游戏所需的功能模块,我们也可以对系统进行总体规划设计,我们选择以STM32F407系列微控制器作为主要控制单元,以LCD显示屏、按键、红外线模块作为主要应用,系统模块图如图2所示。STM32接收控制信息并处理,并且运行游戏的核心代码和算法,并控制LCD显示屏显示相应的游戏效果。

基于STM32F407的俄罗斯方块小游戏的设计  

图2 系统模块图

1.5界面设计

(1)首页模块页面

设计的首页页面主要是欢迎玩家,玩家点击后进入游戏选择模式,具体页面如图3所示。

基于STM32F407的俄罗斯方块小游戏的设计

首页模块页面

(2)模式选择页面

游戏控制模式的设计和难度选择的设计基本一样,这里不再重复,只展示游戏控制模式页面。页面如图4所示。

基于STM32F407的俄罗斯方块小游戏的设计

4 模式选择页面

(3)游戏显示页面

该游戏的具体显示页面如图5所示,该页面的设计需要包含五个功能模块,其功能描述表如表3-4所示。

基于STM32F407的俄罗斯方块小游戏的设计

5 游戏界面

1.6  程序主流程图

首先通过随机函数生成方块并且在右侧界面中提前展示下一个要下落的方块给玩家,然后将方块按一定的速度自由下落,在STM32开发板中玩家自行选择按键或者遥控器来控制方块的运动,各种方块运动方式包括:下降时左右移动、翻转,其中翻转又根据不同的方块有不同的翻转次数。当方块不能再下落定后,对每一行进行判断,如果有某行的方块是填满的,则消除这行的方块,并且在该行上面的所有方块整体下移。总程序流程图如图6所示。

基于STM32F407的俄罗斯方块小游戏的设计

图6 主流程图

二、课题测试

项目启动后选择对应的操纵模块和游戏难度,即可开始游戏,观察屏幕显示出来的下一个方块,让方块在合适的位置下落,满行消除后即可得分,方块堆积到一定的高度会显示失败,需要重新选择模式后才能继续游戏。

实验预期效果:在按键模式中,4个可以操纵方块的按键分别是KEY0,KEY1,KEY2,WK_UP。当按下 KEY2(左键)时,屏幕上方格会左移,按下 KEY0(右键)时,屏幕上方格会右移,当按下 KEY1(下键)时,屏幕上方格会加速下移,当按下 WK_UP(上键)时,屏幕上方格可以旋转。而在红外线遥控器模式中,则是靠对应的按键来实现。

2.1  模式选择测试

当首先从keil编译下载之后,LCD屏幕会显示游戏欢迎界面,点击Click on Start后可以进入操纵模式选择页面。

基于STM32F407的俄罗斯方块小游戏的设计

游戏欢迎界面

进入操纵模式,key mode指的是按键操控模式,remote mode指的是遥控器操控模式。这里不支持两种操控模式交替。

基于STM32F407的俄罗斯方块小游戏的设计

操纵模式选择界面

进入难度选择,easy mode是简单版,方块下落速度慢,而difficult mode是困难版,方块下落速度快。

基于STM32F407的俄罗斯方块小游戏的设计

 难度选择界面

2.2  下一个方块显示测试

当我们选择好模式后,我们直接进入游戏显示界面,我们可以发现一旁的时钟开始显示计时,玩家没有操作的时候,该方块开始按照设定的速度自由地下落,并且在右侧方向显示下一个将要出现的方块。

基于STM32F407的俄罗斯方块小游戏的设计

游戏显示页面(一)

当第一个方块完成下落地时候,很快就会出现第二个方块继续下落。我们可以发现上图4.4提示的下一个方块,正是下图第二个出现的方块,说明该模块测试没有问题。

基于STM32F407的俄罗斯方块小游戏的设计

游戏显示页面(二)

2.3方块移动测试

操纵对应的按键和遥控器,我们发现按下KEY_UP键(或者遥控器上键)就可以实现方块的旋转,原本方块是竖着下落的方块,按键后变成横着下落的方块。 

基于STM32F407的俄罗斯方块小游戏的设计

方块旋转

当按下 KEY2(或者遥控器左键)时,屏幕上方格会左移。

基于STM32F407的俄罗斯方块小游戏的设计

方块左移

按下 KEY0(右键)时,屏幕上方格会右移。当按下 KEY1(下键)时,屏幕上方格会加速下移。

基于STM32F407的俄罗斯方块小游戏的设计

方块右移

2.4满行消除测试

当方块下落完成后出现满行的时候,此图为方块刚下落的那一瞬间。

基于STM32F407的俄罗斯方块小游戏的设计

满行的瞬间

之后程序会识别为满行,方块整行可以消除,玩家得分,方块可以继续下落。

基于STM32F407的俄罗斯方块小游戏的设计

满行消除

2.5游戏失败测试

当方块堆积到一定的高度时,在右下方就会弹出显示游戏失败的提示,需要点击触摸该处后即可重新开始选择模式。

基于STM32F407的俄罗斯方块小游戏的设计

       游戏失败显示文章来源地址https://www.toymoban.com/news/detail-513174.html

到了这里,关于基于STM32F407的俄罗斯方块小游戏的设计的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python课程设计 基于python的俄罗斯方块小游戏

    目录 基于python的俄罗斯方块小游戏 1.概述 1.1 摘要 1.2 开发背景 1.3 开发环境 1.4 实现功能 2.代码描述 2.1 模块导入 2.2 初始化变量 2.3 播放音乐 2.4 创建方块类 2.5 绘制游戏地图 2.6 游戏初始化 2.7 绘制有边框矩形 2.8 绘制我的文字 2.9 游戏主体 2.10 主程序运行 3.运行效果 4.注

    2024年02月22日
    浏览(51)
  • 基于Python的PyGame的俄罗斯方块游戏设计与实现

    近年来,随着游戏产业的突飞猛进,游戏玩家的技术也是与日俱增,当你看见游戏高手完美的表演时,你是否想过我也能达到那种水平,本程序用Python语言编写俄罗斯方块,左侧显示正在运行的游戏,右边显示下一个出现的形状、等级和积分等。游戏运行时随着等级的提高而

    2024年02月04日
    浏览(46)
  • 基于Python+Pygame实现一个俄罗斯方块小游戏【完整代码】

    俄罗斯方块,一款起源于上世纪80年代的经典电子游戏,凭借简单的规则和独特的魅力,一跃成为全球家喻户晓的经典。你知道其实只需要一些基础的编程知识,就可以自己实现它吗?今天,我们将使用Python的Pygame库,一步步带你构建属于自己的俄罗斯方块小游戏! 游戏初始

    2024年02月04日
    浏览(39)
  • 免费分享一套Python俄罗斯方块源码 PyQt5俄罗斯方块源码,太好玩了~

    大家好,我是java1234_小锋老师,看到一个不错的Python俄罗斯方块源码 PyQt5俄罗斯方块源码,分享下哈。 【免费】Python俄罗斯方块源码 PyQt5俄罗斯方块源码 Python小游戏源码_哔哩哔哩_bilibili 【免费】Python俄罗斯方块源码 PyQt5俄罗斯方块源码 Python小游戏源码项目来自互联网,免

    2024年01月25日
    浏览(36)
  • 编写一个俄罗斯方块

    编写俄罗斯方块 思路。 1、创建容器数组,方块, 2、下落,左右移动,旋转,判断结束,消除。  定义一个20行10列的数组表示游戏区。初始这个数组里用0填充,1表示有一个方块,2表示该方块固定了, 然后随机出一个方块,操作左右转,触底变2后,再随机下一个方块,循

    2024年02月12日
    浏览(43)
  • pygame俄罗斯方块游戏

    1.安装python 2.引入游戏库pygame 3.引入随机数 俄罗斯方块初始形状 这里使用一个二维数组 用来标记俄罗斯相对应的方块形状 代码如下: 游戏移动方向是否可能判断 这里为了不让他出现穿墙,跨过方块下落 都做对应的碰撞判断 具体代码如下: 俄罗斯方块旋转变形代码实现 俄

    2024年02月08日
    浏览(36)
  • python制作俄罗斯方块

    作者简介 :一名后端开发人员,每天分享后端开发以及人工智能相关技术,行业前沿信息,面试宝典。 座右铭 :未来是不可确定的,慢慢来是最快的。 个人主页 :极客李华-CSDN博客 合作方式 :私聊+ 这个专栏内容 :BAT等大厂常见后端java开发面试题详细讲解,更新数目10

    2024年02月12日
    浏览(42)
  • c语言——俄罗斯方块

    俄罗斯方块是久负盛名的游戏,它也和贪吃蛇,扫雷等游戏位列经典游戏的⾏列。 《俄罗斯方块》(Tetris,俄文:Тетрис)是一款由俄罗斯人阿列克谢·帕基特诺夫于1984年6月发明的休闲游戏。 该游戏曾经被多家公司代理过。经过多轮诉讼后,该游戏的代理权最终被任天堂

    2024年02月05日
    浏览(37)
  • Javascript 俄罗斯方块 游戏代码

    本俄罗斯方块代码采用 JavaScript 脚本代码写成,简单易懂; 全代码采用静态类及静态变量成员组成; 全脚本通过实现代码全局配置 OLSFK.Options = {...} 定义方块起始坐标及定义各自的旋转点; 从初始化俄罗斯方块界面开始,再监听键盘事件;以及左右,向下及旋转动作判断,

    2024年02月07日
    浏览(40)
  • 用python制作俄罗斯方块

    代码如下,可以直接运行:

    2024年02月11日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包