0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

RT-Badge V2.0制作俄羅斯方塊小游戲

RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 來(lái)源:RTThread物聯(lián)網(wǎng)操作系統(tǒng) ? 作者:RTThread物聯(lián)網(wǎng)操作 ? 2022-01-27 18:57 ? 次閱讀

思路

在看到 ART-Badge V2.0 支持了 2048 小游戲之后,萌生了制作一個(gè) 俄羅斯方塊的小游戲,畢竟是童年的經(jīng)典。

整個(gè)工程是在原有的 ART_Game 工程的基礎(chǔ)上進(jìn)行開(kāi)發(fā)的。

在游戲列表中添加跳轉(zhuǎn)的頁(yè)面選項(xiàng):card1 中添加 panel4 以及 imagebox3 的子控件,用于列表中游戲的選擇。

RT-Badge V2.0制作俄羅斯方塊小游戲

在 JS 中添加 游戲名稱,以及跳轉(zhuǎn)頁(yè)面的代碼

RT-Badge V2.0制作俄羅斯方塊小游戲

RT-Badge V2.0制作俄羅斯方塊小游戲

之后就新建頁(yè)面(Game_Tetris)完全由自己開(kāi)發(fā)了

界面設(shè)計(jì)

其實(shí)界面沒(méi)有一點(diǎn)美感可言,都是方框直接堆積而成的,

不過(guò)考慮到一些重復(fù)的工作(一些方格的繪制),看到界面是 XML 格式的,就直接吧這些重復(fù)的方塊使用 python 生成輸出,然后直接放在了 XML 里,(不建議這樣使用,這樣可能有很多問(wèn)題,不詳細(xì)說(shuō)明)

RT-Badge V2.0制作俄羅斯方塊小游戲

整體思路

說(shuō)白了俄羅斯方塊其實(shí)很簡(jiǎn)單,七種方塊隨機(jī)出現(xiàn),隨機(jī)方向,從頂部落下,可以左右下移動(dòng),可以旋轉(zhuǎn)方塊,一樣的一行消除得分。只要把這些事情考慮清楚就可以了

一些函數(shù)的功能,

reduceMatrix 去除全為零的行和列:簡(jiǎn)化之后的一些碰撞的判斷,方便旋轉(zhuǎn)之后的顯示,

rotateMatrix 旋轉(zhuǎn)方塊:分別以90、180、270旋轉(zhuǎn)用于手動(dòng)旋轉(zhuǎn)還有顯示下一個(gè)方塊時(shí)隨機(jī)顯示方塊

nextTetrominoDisplay 隨機(jī)顯示下一個(gè)出現(xiàn)的方塊

fillColor 填充顏色 :用于填充并顯示有兩個(gè)功能,1、將消失的方塊恢復(fù)底色。2、將方塊新走到的地方填充為方塊的顏色(這里有優(yōu)化的空間,例如:將兩次不改變的方塊顏色不做處理)

fillBlock 對(duì)一整個(gè)“棋盤”做一個(gè)占位處理,這里僅一個(gè)方塊結(jié)束時(shí)才進(jìn)行占位填充,為了之后進(jìn)行一個(gè)方塊的結(jié)束判斷,以及消除一行時(shí)的判斷

isDeleteRow 判斷哪一行要?jiǎng)h除,通過(guò) fillBlock 函數(shù)的填充去判斷

deleteRow 刪除行通過(guò) isDeleteRow 判斷出要?jiǎng)h除之后,去刪除該行,并把上面行的方塊向下填充

blockEnd 判斷一個(gè)方塊下一個(gè)位置是否結(jié)束(針對(duì)的是方向向下、向左、向右)還有旋轉(zhuǎn)的下一個(gè)位置是否碰撞

定時(shí)器:方塊的自動(dòng)向下移動(dòng),

最后下載這里就不細(xì)說(shuō)了,相信大多說(shuō)有 ART-Badge V2.0 的都是去過(guò)現(xiàn)場(chǎng)體現(xiàn)過(guò)下載的(其實(shí)我沒(méi)去,哈哈哈)

spacer.gif?t=B8DJ5M3

1、上鍵:方塊旋轉(zhuǎn)

2、下鍵:方塊下移

3、左鍵:方塊左移

4、右鍵:方塊右移

最后這里有一些小問(wèn)題還未完善

雖然我已經(jīng)盡力在優(yōu)化,但還是有一些可以優(yōu)化,未優(yōu)化完全的部分

1、在方塊移動(dòng)和變形時(shí),目前使用的是先將該方塊對(duì)應(yīng)控件改為默認(rèn)顏色,然后再填充移動(dòng)或變形后的方塊,其實(shí)同種前后都一樣的顏色沒(méi)有必要先改為默認(rèn)色,然后再填充

2、在刪除行時(shí),使用的是一行一行的刪除,同時(shí)消除多行的時(shí)候,也是一行一行的刪除,可以優(yōu)化

3、在旋轉(zhuǎn)后如果超出邊界或重疊到現(xiàn)有方塊,將會(huì)無(wú)效果,不旋轉(zhuǎn),可以優(yōu)化,可以放下旋轉(zhuǎn)后的方塊的話,就貼著邊界或現(xiàn)有方格。

4、目前多行消除,不會(huì)有額外的得分,待優(yōu)化

5、界面待優(yōu)化,太丑了

望大家有興趣的一起開(kāi)發(fā)完善呀!

原文標(biāo)題:ART-Badge V2.0 之俄羅斯方塊開(kāi)發(fā)

文章出處:【微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 游戲
    +關(guān)注

    關(guān)注

    2

    文章

    762

    瀏覽量

    26583
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4876

    瀏覽量

    69966
  • 工程
    +關(guān)注

    關(guān)注

    0

    文章

    166

    瀏覽量

    28198

原文標(biāo)題:ART-Badge V2.0 之俄羅斯方塊開(kāi)發(fā)

文章出處:【微信號(hào):RTThread,微信公眾號(hào):RTThread物聯(lián)網(wǎng)操作系統(tǒng)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    俄羅斯方塊游戲實(shí)例

    一個(gè)很完善的俄羅斯方塊游戲
    發(fā)表于 01-10 17:45

    俄羅斯方塊

    單片機(jī)做的俄羅斯方塊游戲
    發(fā)表于 07-31 19:56

    好玩的俄羅斯方塊游戲仿真

    好玩的俄羅斯方塊游戲仿真,學(xué)protues看到的,很好玩,分享下
    發(fā)表于 10-21 20:31

    俄羅斯方塊仿真

    網(wǎng)上找的俄羅斯方塊游戲,自己連接的圖,程序,希望大家喜歡
    發(fā)表于 12-02 12:16

    游戲手柄俄羅斯方塊

    本帖最后由 依然Dirk 于 2015-1-21 15:52 編輯 游戲手柄俄羅斯方塊
    發(fā)表于 01-21 15:27

    帶AI的俄羅斯方塊

    本帖最后由 shi_dongyu 于 2017-2-11 08:05 編輯 這周花了幾天時(shí)間研究了下俄羅斯方塊,并寫了一個(gè)帶AI的俄羅斯方塊游戲。我想這個(gè)游戲對(duì)每個(gè)人都很熟悉,很
    發(fā)表于 02-10 20:08

    采用單片機(jī)來(lái)實(shí)現(xiàn)的智能俄羅斯方塊游戲

    俄羅斯方塊游戲算法請(qǐng)參考俄羅斯方塊游戲的算法1.概述俄羅斯方塊是一款風(fēng)靡全球的益智游戲。它規(guī)則簡(jiǎn)
    發(fā)表于 11-19 08:26

    基于單片機(jī)實(shí)現(xiàn)的俄羅斯方塊游戲

    自己弄的分享給大家,關(guān)于單片機(jī)的俄羅斯方塊游戲
    發(fā)表于 11-10 10:47 ?22次下載

    俄羅斯方塊游戲設(shè)計(jì)原理

    俄羅斯方塊游戲是VHDL 應(yīng)用于復(fù)雜數(shù)字系統(tǒng)的一個(gè)經(jīng)典設(shè)計(jì),本章將詳細(xì)介紹該游戲的設(shè)計(jì)原理和設(shè)計(jì)方法。其中包括系統(tǒng)構(gòu)成、系統(tǒng)設(shè)計(jì)原理和系統(tǒng)各個(gè)模塊的實(shí)現(xiàn)方法。
    發(fā)表于 09-01 17:24 ?0次下載

    STM32F103ZET6開(kāi)發(fā)板實(shí)現(xiàn)俄羅斯方塊小游戲

    使用STM32F103ZET6開(kāi)發(fā)板實(shí)現(xiàn)俄羅斯方塊小游戲。
    發(fā)表于 12-19 15:27 ?39次下載

    使用labview進(jìn)行俄羅斯方塊游戲程序

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用labview進(jìn)行俄羅斯方塊游戲程序。
    發(fā)表于 05-21 08:00 ?97次下載
    使用labview進(jìn)行<b class='flag-5'>俄羅斯方塊</b>的<b class='flag-5'>游戲</b>程序

    使用單片機(jī)制作萬(wàn)用板俄羅斯方塊的資料合集免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)制作萬(wàn)用板俄羅斯方塊的資料合集免費(fèi)下載b包括了:程序,器件引腳等資料,PCB板版本俄羅斯方塊,PCB版本電路圖,俄羅斯方塊布線截圖,萬(wàn)用板板版本
    發(fā)表于 07-04 16:58 ?39次下載
    使用單片機(jī)<b class='flag-5'>制作</b>萬(wàn)用板<b class='flag-5'>俄羅斯方塊</b>的資料合集免費(fèi)下載

    基于51單片機(jī)的俄羅斯方塊游戲

    俄羅斯方塊游戲算法 請(qǐng)參考俄羅斯方塊游戲的算法1.概述俄羅斯方塊是一款風(fēng)靡全球的益智游戲。它規(guī)
    發(fā)表于 11-13 10:21 ?58次下載
    基于51單片機(jī)的<b class='flag-5'>俄羅斯方塊</b><b class='flag-5'>游戲</b>

    采用STM32開(kāi)發(fā)板制作俄羅斯方塊小游戲

    俄羅斯方塊》(Tetris, 俄文:Тетрис)是一款由俄羅斯人阿列克謝·帕基特諾夫于1984年6月發(fā)明的休閑游戲。
    的頭像 發(fā)表于 05-30 09:13 ?3909次閱讀
    采用STM32開(kāi)發(fā)板<b class='flag-5'>制作</b><b class='flag-5'>俄羅斯方塊</b><b class='flag-5'>小游戲</b>

    自制Arduino Nano俄羅斯方塊游戲

    電子發(fā)燒友網(wǎng)站提供《自制Arduino Nano俄羅斯方塊游戲.zip》資料免費(fèi)下載
    發(fā)表于 12-07 15:18 ?3次下載
    自制Arduino Nano<b class='flag-5'>俄羅斯方塊</b><b class='flag-5'>游戲</b>

    電子發(fā)燒友

    中國(guó)電子工程師最喜歡的網(wǎng)站

    • 2931785位工程師會(huì)員交流學(xué)習(xí)
    • 獲取您個(gè)性化的科技前沿技術(shù)信息
    • 參加活動(dòng)獲取豐厚的禮品