0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RT-Badge V2.0制作俄罗斯方块小游戏

RTThread物联网操作系统 来源:RTThread物联网操作系统 作者:RTThread物联网操作 2022-01-27 18:57 次阅读

思路

在看到 ART-Badge V2.0 支持了 2048 小游戏之后,萌生了制作一个 俄罗斯方块的小游戏,毕竟是童年的经典。

整个工程是在原有的 ART_Game 工程的基础上进行开发的。

在游戏列表中添加跳转的页面选项:card1 中添加 panel4 以及 imagebox3 的子控件,用于列表中游戏的选择。

RT-Badge V2.0制作俄罗斯方块小游戏

在 JS 中添加 游戏名称,以及跳转页面的代码

RT-Badge V2.0制作俄罗斯方块小游戏

RT-Badge V2.0制作俄罗斯方块小游戏

之后就新建页面(Game_Tetris)完全由自己开发了

界面设计

其实界面没有一点美感可言,都是方框直接堆积而成的,

不过考虑到一些重复的工作(一些方格的绘制),看到界面是 XML 格式的,就直接吧这些重复的方块使用 python 生成输出,然后直接放在了 XML 里,(不建议这样使用,这样可能有很多问题,不详细说明)

RT-Badge V2.0制作俄罗斯方块小游戏

整体思路

说白了俄罗斯方块其实很简单,七种方块随机出现,随机方向,从顶部落下,可以左右下移动,可以旋转方块,一样的一行消除得分。只要把这些事情考虑清楚就可以了

一些函数的功能,

reduceMatrix 去除全为零的行和列:简化之后的一些碰撞的判断,方便旋转之后的显示,

rotateMatrix 旋转方块:分别以90、180、270旋转用于手动旋转还有显示下一个方块时随机显示方块

nextTetrominoDisplay 随机显示下一个出现的方块

fillColor 填充颜色 :用于填充并显示有两个功能,1、将消失的方块恢复底色。2、将方块新走到的地方填充为方块的颜色(这里有优化的空间,例如:将两次不改变的方块颜色不做处理)

fillBlock 对一整个“棋盘”做一个占位处理,这里仅一个方块结束时才进行占位填充,为了之后进行一个方块的结束判断,以及消除一行时的判断

isDeleteRow 判断哪一行要删除,通过 fillBlock 函数的填充去判断

deleteRow 删除行通过 isDeleteRow 判断出要删除之后,去删除该行,并把上面行的方块向下填充

blockEnd 判断一个方块下一个位置是否结束(针对的是方向向下、向左、向右)还有旋转的下一个位置是否碰撞

定时器:方块的自动向下移动,

最后下载这里就不细说了,相信大多说有 ART-Badge V2.0 的都是去过现场体现过下载的(其实我没去,哈哈哈)

spacer.gif?t=B8DJ5M3

1、上键:方块旋转

2、下键:方块下移

3、左键:方块左移

4、右键:方块右移

最后这里有一些小问题还未完善

虽然我已经尽力在优化,但还是有一些可以优化,未优化完全的部分

1、在方块移动和变形时,目前使用的是先将该方块对应控件改为默认颜色,然后再填充移动或变形后的方块,其实同种前后都一样的颜色没有必要先改为默认色,然后再填充

2、在删除行时,使用的是一行一行的删除,同时消除多行的时候,也是一行一行的删除,可以优化

3、在旋转后如果超出边界或重叠到现有方块,将会无效果,不旋转,可以优化,可以放下旋转后的方块的话,就贴着边界或现有方格。

4、目前多行消除,不会有额外的得分,待优化

5、界面待优化,太丑了

望大家有兴趣的一起开发完善呀!

原文标题:ART-Badge V2.0 之俄罗斯方块开发

文章出处:【微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 游戏
    +关注

    关注

    2

    文章

    696

    浏览量

    26039
  • 代码
    +关注

    关注

    30

    文章

    4555

    浏览量

    66744
  • 工程
    +关注

    关注

    0

    文章

    165

    浏览量

    27566

原文标题:ART-Badge V2.0 之俄罗斯方块开发

文章出处:【微信号:RTThread,微信公众号:RTThread物联网操作系统】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    基于单片机实现的俄罗斯方块游戏

    基于单片机实现的俄罗斯方块游戏
    发表于 08-20 12:06

    俄罗斯方块游戏实例

    一个很完善的俄罗斯方块游戏
    发表于 01-10 17:45

    俄罗斯方块

    单片机做的俄罗斯方块游戏
    发表于 07-31 19:56

    好玩的俄罗斯方块游戏仿真

    好玩的俄罗斯方块游戏仿真,学protues看到的,很好玩,分享下
    发表于 10-21 20:31

    俄罗斯方块仿真

    网上找的俄罗斯方块游戏,自己连接的图,程序,希望大家喜欢
    发表于 12-02 12:16

    游戏手柄俄罗斯方块

    本帖最后由 依然Dirk 于 2015-1-21 15:52 编辑 游戏手柄俄罗斯方块
    发表于 01-21 15:27

    谁有俄罗斯方块游戏机的源码

    如题,谁有俄罗斯方块游戏机的源码
    发表于 10-24 18:02

    带AI的俄罗斯方块

    本帖最后由 shi_dongyu 于 2017-2-11 08:05 编辑 这周花了几天时间研究了下俄罗斯方块,并写了一个带AI的俄罗斯方块游戏。我想这个游戏对每个人都很熟悉,很
    发表于 02-10 20:08

    基于51单片机的俄罗斯方块游戏的设计与制作 相关资料下载

    《单片机实践项目》《电子DIY》基于51单片机的俄罗斯方块游戏的设计与制作(LCD12864带中文字库的显示屏)...
    发表于 07-01 06:48

    采用单片机来实现的智能俄罗斯方块游戏

    俄罗斯方块游戏算法请参考俄罗斯方块游戏的算法1.概述俄罗斯方块是一款风靡全球的益智游戏。它规则简
    发表于 11-19 08:26

    基于STM32与MSP43051的俄罗斯方块游戏设计

    单片机 STM32 MSP430 51 俄罗斯方块 游戏 战舰
    发表于 02-15 06:44

    基于单片机实现的俄罗斯方块游戏

    自己弄的分享给大家,关于单片机的俄罗斯方块游戏
    发表于 11-10 10:47 22次下载

    STM32F103ZET6开发板实现俄罗斯方块小游戏

    使用STM32F103ZET6开发板实现俄罗斯方块小游戏
    发表于 12-19 15:27 38次下载

    基于51单片机的俄罗斯方块游戏

    俄罗斯方块游戏算法 请参考俄罗斯方块游戏的算法1.概述俄罗斯方块是一款风靡全球的益智游戏。它规
    发表于 11-13 10:21 56次下载
    基于51单片机的<b class='flag-5'>俄罗斯方块</b><b class='flag-5'>游戏</b>

    采用STM32开发板制作俄罗斯方块小游戏

    俄罗斯方块》(Tetris, 俄文:Тетрис)是一款由俄罗斯人阿列克谢·帕基特诺夫于1984年6月发明的休闲游戏
    的头像 发表于 05-30 09:13 3028次阅读
    采用STM32开发板<b class='flag-5'>制作</b><b class='flag-5'>俄罗斯方块</b><b class='flag-5'>小游戏</b>