OpenHarmony3.1鍛煉最強大腦
背景
我為什么想要做這樣的一款小游戲呢?
最近孩子在一家思維方面的培訓機構中帶回了一個表格,表格上有隨機的數字,0~25,老師要求孩子們需要用最快的速度連續(xù)的把字卡上的數字按順序讀出,越快越好,起初我以為是個游戲(請原諒我的知識缺失),還打趣的和孩子比賽,當然每次我都讓著孩子,一頁方格很快就結束了,我覺得很有意思,想上網下載一些,驚奇的發(fā)現這個方格游戲竟然是"最強"的專注力游戲,隨后我用時間搜索關鍵字,想找下是否有類似的游戲APP,確實找到了很多,iOS系統(tǒng)、Android系統(tǒng)都支持,但發(fā)現這些APP都內嵌了很多的廣告,在練習的過程中時不時的出現,這本身是一款專注力的游戲,在訓練過程中不斷的被打斷,尤其對孩子不友好,最近正在學習OpenHarmony系統(tǒng),想在此系統(tǒng)上先創(chuàng)建一個純凈版的專注力游戲–舒爾特方格。
啰七八嗦的一堆,好像沒有提到什么是舒爾特方格。別急,往下看…
先看下游戲截圖吧
游戲視頻
來了,來了,開始解釋說明是舒爾特方格。
什么是舒爾特方格呢?
【某度了一下】
“舒爾特方格”,據說是世界公認“最強”的專注力小游戲,每天讓孩子玩上10分鐘,專注力就能有很大的提升。
舒爾特方格最初是用于幫助飛行員提升專注力的一種訓練方式,其基礎形式屬于九宮格的一種,格數的多少代表了等級的高低,格子內填寫了1-25等數字,在訓練時需要訓練者按照1-25的順序,指出并讀出來,而用時越短,則則證明專注力越好。
而發(fā)明這項專注力小游戲的人,是美國神經心理醫(yī)生舒爾特,這套“舒爾特方格”主要是通過視覺、聽覺、動覺進行訓練,提高專注力的穩(wěn)定性,后來因為這個小游戲的效果十分顯著,玩法也比較簡單,所以逐漸被應用到普通人身上。
游戲介紹
游戲目標
1、培養(yǎng)注意力的集中、分配、控制能力。
2、拓展視幅,提高視覺的穩(wěn)定性、辨別力、定向搜索能力。
游戲玩法
游戲設計了三種不同的難度類型,簡單:3×3的方格,中等:4×4的方格,困難:5×5的方格,根據你選擇的游戲難度,請用手指按1~x的順序依次按下對應的數字按鈕,同時大聲讀出來,當游戲完成時會記錄時間,用時越短,表示你的注意力水平越高。
注:“舒爾特方格”既可以是一種測量兒童專注力的工具,也可以作為鍛煉兒童專注力的有效工具,當兒童專注力過差時,可從3×3表格練起,當兒童對于表格完全熟練之后,再逐漸對表格進行升級,依次進行 “4×4”、 “5×5”……方格的訓練。為防止兒童對于方格過于熟練形成前測效應,每次玩時都應對數字進行打亂,重新隨機編入表格。只要父母平時多注意孩子專注力的鍛煉,孩子的專注力一定會有所提升。
時間標準
根據方格數量的不同,時間的要求標準也不同,現在就5×5共25格的舒爾特方格挑戰(zhàn)時間給出參考標準,如下:
等級 | 優(yōu)秀 | 良好 | 中等 | 及格 |
5~6歲 | 30秒內 | 30~40秒 | 40~48秒 | 55秒內 |
7~11歲 | 26秒內 | 26~32秒 | 32~40秒 | 45秒內 |
12~17歲 | 16秒內 | 16~18秒 | 19~23秒 | 24秒內 |
18歲以上 | 12秒內 | 13~16秒 | 17~19秒 | 20秒內 |
項目開發(fā)
游戲功能
1、游戲首頁-閃屏頁,界面顯示預加載圖片,1.5秒后跳轉到登錄頁面。
2、游戲登錄頁面,用戶名輸入框,最大長度為10字符,用戶名內容無類型限制,可以是數字、文本、符號等,點擊確定進入游戲,登錄頁面只有首次需要輸入,用戶名確認后則直接進入游戲設置界面。
3、游戲設置界面,界面包含:游戲難度選擇(簡單、中等、困難、對戰(zhàn))、開始游戲,另外可以查看游戲榜單、游戲規(guī)則、舒爾特方格的基礎知識,點擊不同的按鈕進入相對于的功能。
4、游戲主頁,根據用戶選擇的難度,加載不同方格數的游戲,簡單類型:3X3共9格,數字從19;中等類型:4X4共16格,數字從116;困難類型:5X5共25格,數字從1~25。
5、單獨說明下對戰(zhàn)類型模式,當一臺設備選擇了對戰(zhàn)模式(為了方便描述,我們把當前的設備命名為:設備A)時界面彈窗顯示當前局域網內的其他設備列表,用戶可以選擇其中一臺設備進行認證,通過認證后,會拉起被連接設備(我們把被連接的設備命名為:設備B)的游戲界面,設備B可以選擇游戲的難度,點擊開始游戲,設備A和設備B同時進入游戲界面,在倒計時后用戶可以進行對戰(zhàn)。
6、游戲模式總體分為兩類,練習(簡單、中等、困難)、對戰(zhàn),在練習模式下,游戲結束可以查看當前練習的結果,包含:錯誤次數、當前用時、歷史最佳。如果是對戰(zhàn)模式,游戲結束后顯示挑戰(zhàn)用時、當前用時,挑戰(zhàn)用時表示挑戰(zhàn)者的用時,當前用時表示你在本次對戰(zhàn)的用時,根據對戰(zhàn)結果,用時少,提示:“恭喜你,贏得挑戰(zhàn)!”、用時多,提示:“你輸了,再接再厲!”。
7、游戲榜單頁面,包含三種不同難度(簡單、中等、困難)練習的記錄,根據用時的升序排列,根據順序排列。
8、游戲規(guī)則頁,主要用戶展示舒爾特方格游戲的規(guī)則和一些練習標準。
9、舒爾特方案頁,簡單的介紹舒爾特方格游戲。
環(huán)境
- 開發(fā)板:DAYU200
- 系統(tǒng)版本:OpenHarmony 3.1 release
- SDK版本:ohos-sdk 3.1.6.5, API 8
- 開發(fā)工具:DevEco Studio 3.0.0.900(For OpenHarmony)
項目目錄
使用到的容器與組件
- div
- text
- stack
- block
- divider
- dialog
- button
- image-animator
- image
- textarea
- swiper
- list
- list-item
- label
- input
- tabs
- tab-bar
- tab-content
上述所列舉的所有容器、組件都可以參看官方開發(fā)文檔:
關聯(lián)技術
分布式調度遠程FA
說明:OpenHarmony提供了分布式能力,能夠實現在同一網絡下對遠程設備Ability的拉起。在本游戲中主要體現在游戲對戰(zhàn),用戶啟動對戰(zhàn)模式,即開啟分布式遠程調度能力,可以拉起局域網內的已認證設備。
相關技術說明文章可以參看:
- OpenHarmony分布式 啟動遠程設備的FA。
- OpenHarmony分布式調度啟動遠程FA官方demo。
RDB
說明:關系型數據庫(Relational Database,RDB)是一種基于關系模型來管理數據的數據庫。關系型數據庫基于SQLite組件提供了一套完整的對本地數據庫進行管理的機制,對外提供了一系列的增、刪、改、查等接口,也可以直接運行用戶輸入的SQL語句來滿足復雜的場景需要。
在游戲中主要運用在游戲練習的成績存儲,以及同步對戰(zhàn)結果,根據對戰(zhàn)成績比較對戰(zhàn)雙方的成敗。
相關技術說明文章可以參看:
RPC
RPC(Remote Procedure Call)機制用于實現跨進程通信,使用軟總線驅動,用于跨設備跨進程通信。RPC通常采用客戶端-服務器(Client-Server)模型,服務請求方(Client)可獲取提供服務提供方(Server)的代理 (Proxy),并通過此代理讀寫數據來實現進程間的數據通信。通常,Server會先注冊系統(tǒng)能力(System Ability)到系統(tǒng)能力管理者(System Ability Manager,縮寫SAMgr)中,SAMgr負責管理這些SA并向Client提供相關的接口。Client要和某個具體的SA通信,必須先從SAMgr中獲取該SA的代理,然后使用代理和SA通信。
在游戲中主要運用在對戰(zhàn)模式下,對戰(zhàn)時會有兩臺設備,分別為設備A和設備B,設備A發(fā)起對戰(zhàn)啟動設備B的游戲app,設備B被啟動后,進入游戲設置界面時,通過RPC啟動設備A的服務,在設備B上選擇游戲模式(簡單、中等、困難)后點擊開始游戲時,通過RPC向設備A發(fā)送開始游戲的消息,設備A代理服務收到開始游戲的消息后,通過公共事件將開始游戲的消息(開始游戲、游戲模式)發(fā)送到游戲設置界面,根據消息開始游戲。
相關技術說明文章可以參看:
公共廣播
公共事件提供了應用程序向系統(tǒng)其他應用程序發(fā)布消息、接收來自系統(tǒng)或其他應用特定消息的能力。CES(Common Event Service, 即公共事件服務)為應用程序提供發(fā)布、訂閱及退訂公共事件的能力。
公共事件根據事件發(fā)送方不同可分為系統(tǒng)公共事件和自定義公共事件。
- 系統(tǒng)公共事件:系統(tǒng)將收集到的事件信息,根據系統(tǒng)策略發(fā)送給訂閱該事件的用戶程序。
- 公共事件包括:終端設備用戶可感知的亮滅屏事件,以及系統(tǒng)關鍵服務發(fā)布的系統(tǒng)事件(例如:USB插拔,網絡連接,系統(tǒng)升級)等。自定義公共事件:由應用自身定義的期望特定訂閱者可以接收到的公共事件,這些公共事件往往與應用自身的業(yè)務邏輯相關。
在游戲中主要運用在對戰(zhàn)模式下,確保兩臺設備同時進入游戲。
相關技術說明文章可以參看:
已知問題
1、對戰(zhàn)模式下,設備A啟動設備B的游戲FA頁面時出現設備A應用閃退或者設備 B應用閃退?
問題原因:初步排查導致的原因有兩個:第一個是系統(tǒng)內存問題;第二個是應用多實例問題,具體的原因待排查,如果你知道什么原因還希望可以留言告知,不勝感激。
解決方案:清除設備上運行的應用,重啟游戲應用,重新發(fā)起挑戰(zhàn)。
展望
- 擴展游戲成績數據的曲線圖,直觀的觀察一段時間內專注力的提升情況。
- 擴展截屏分享功能。
- 擴展對戰(zhàn)數據榜單查詢。
- 擴展舒爾特方格古詩版,增加游戲的趣味性和實用性,還能提升背誦水平。
問題與思考
開發(fā)過程中遇到了一些問題,一些比較復雜的問題已經提到issues,希望可以幫助到你在開發(fā)過程中閉坑,具體如下: