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