石劉帥, 張天壯, 代 槿, 申清源
(鄭州大學 軟件與應用科技學院, 鄭州 450000)
親子互動是指父母與子女之間發生的一切交互作用和影響。傳統的親子互動對時空、材質的要求性很高,比如去看電影、旅游、沙包、積木之類。如今社會的快節奏,讓大部分父母都沒有充裕時間與孩子融入這樣的互動。艾瑞發布的《2015年中國上班人群洞察報告》數據顯示:‘26-30歲是上班人群比例最高的年齡段。并且作為經常照顧孩子的“媽媽”這一角色,在這一年齡段中仍舊有很大的比例’[1]。再加上現在的孩子學習任務繁重,娛樂互動時間有限,傳統的親子互動方式很難對孩子成長產生好的效果。父母們都需要通過更加簡單方便的操作去實現與孩子之間的互動,并且最好是家庭之間的多人交互,增進家庭親近氛圍,父母作為孩子的第一位教師,親子間開展親子游戲是孩子運動、認知、情感、創造力、社交等多種能力成長的關鍵[2]。
基于Android的智能手機、智能設備為親子之間進行便捷、高效的互動提供了支持。但是以平板電腦與智能手機為應用形式容易導致孩子形成設備依賴,對設備的依賴包括難以控制時間、沉迷游戲和自制力薄弱等,對兒童的生活習慣和學習發展造成直接的影響[3]。這時候,就需要父母對孩子的疏導調控,讓智能設備對孩子發揮有利的影響。在《APP在親子互動中的調查研究》[4](簡稱《研究》)中顯示,0~12歲的孩子中,APP等電子設備在孩子的喜愛玩物中占47.8%,僅次于普通的玩具,并且隨著APP的不斷完善及APP與智能硬件的強勢結合,APP在孩子心中的地位也在持續上升。《研究》也顯示,兒童在玩APP的頻率上為每周3~4次,多則高達五次、及五次以上,這種平均頻率如果運用到親子互動上,結合父母的工作時間與孩子的學習時間,就會成為一個比較理想的參考選擇次數。
結合目前安卓機的廣闊市場,本親子互動產品以游戲為模型,基于Android設計研究了親子游戲的開發。
本次研究是以移動設備為硬件支撐,并基于Android技術,開發提出一款新型親子互動游戲。游戲以簡單便捷為特點,以營造和諧的家庭氛圍為目標,親子均有份參與,以完成游戲的任務為驅動,創造平等交流、獨立自主的親子互動環境。從而不斷提升家庭的親和力與凝聚力。
1.1.1 環境支持
本產品采用的是Java語言(Jdk1.8),使用了Android SDK 21,兼容Android5.0及以上版本。服務器選擇了Apache Tomcat 8.0;數據庫為MySQL 5.7;前端開發工具為Android Studio 2.2.2;后端開發工具為IntelliJ IDEA 2016;項目管理、版本控制工具則選擇了Maven3.5+Git。
本產品是基于Android技術進行開發實現的,結合目前安卓機的重要市場地位,使用安卓手機充當軟件的運行設備。
1.1.2 技術支持
本產品使用Android技術與后臺Web技術相結合的開發思想。Android提供了各種設計類庫,使得在較短操作時間內、規模較小的團隊就可成功推出作品問世。本次研發中,涉及到的設計技術可闡釋如下:
(1)Android前臺采用MVP(Model-View-Presenter)設計模式。MVP 是從經典的模式MVC演變而來,繼承了MVC的優秀設計,具體就是:Controller/Presenter重點針對邏輯的處理,Model提供數據,View用于顯示。但作為一種新模式,MVP與MVC也呈現有一個重大差別:在MVP中View并不直接使用Model,兩者間的通信是通過Presenter (MVC中的Controller)來進行的,所有的交互都發生在Presenter內部,而在MVC中View會直接從Model中讀取數據、而不是通過 Controller[5]。
(2)Android端與Web交互采用RxJava+Retrofit+OkHttp技術。RxJava+Retrofit+OkHttp將請求過程中的處理進行了統一封裝,回傳給調用者,根據自定義回傳類型方便查詢錯誤類型和信息。
(3)Web端采用SSM框架。SSM(Spring+ SpringMVC+ MyBatis)框架集由Spring、SpringMVC、MyBatis三個開源框架整合而成,常作為數據源較簡單的Web項目的框架。其中,Spring是一個輕量級的控制反轉(IoC)和面向切面(AOP)的容器框架。SpringMVC分離了控制器、模型對象、分派器以及處理程序對象的角色,這種分離使其更易于實現研究定制。
MyBatis是一個支持普通SQL查詢、存儲過程和高級映射的優秀持久層框架[6]。
1.1.3 游戲設計策略
軟件中研發了多種集智力與體力于一身的趣味游戲,提供游戲規則,在親子游戲設計中遵守平等性、互動性、安全性、趣味性、情感化、發展性、適齡性、教育性、藝術性以及個性化原則[7]。讓父母與孩子共同遵守相同的規則,智力與體力游戲平衡孩子的身心發展,并結合心理學、運動學的研究,根據孩子獨特心理與生理特點,設計游戲規則與任務,達到孩子全面、健康發展的目標。同時,又細致考慮了父母的感受,不斷變換游戲任務種類,避免父母對游戲產生無聊心理。游戲的核心是增強親子之間的互動程度,親子在平等的基礎上投入參與,共同娛樂。
該產品通過在APP客戶端上生成2個角色,一個代表父母,一個代表孩子,這2個角色共享同一條游戲路線,線路則由若干個網格組成。雙方起點位置相同,當2個角色的位置重合時,會顯示為紅色。當其中一方角色點擊了“開始旋轉”按鈕,界面會產生一個隨機數,表示該角色向前運動的步數,如此移動后系統會隨機彈出一個運動提示,此時父母或者孩子需依據提示完成相應的運動通過該關卡,然后另一個角色也依次做出相應的動作,直至系統提示游戲結束。
采用了自定義組件LeadGuideViewPager(繼承于ViewPager)作為展示界面的控件。一個LeadGuideViewPager中可以容納若干個Fragment(每個Fragment可顯示一個界面),可以向左或者向右切換不同的Fragment,若干個Fragment將引導用戶如何使用本產品。為提升用戶的興趣,引導界面添加了炫酷的動畫效果,例如:小圖標的若隱若現等。
選擇場景部分直接選擇了ViewPager作為展示界面,加入畫廊特效,ViewPager中每一個Fragment是一種場景,每一個場景上均標示有對應該場景的背景圖片、名稱、以及與其相鄰的上/下場景的名稱。通過向左或者向右滑動Fragment即可切換喜歡的游戲場景,隨著軟件后續的不斷升級,游戲場景內容也會越來越豐富[8]。
游戲場景可分為已解鎖場景和未解鎖場景,系統初始化會提供5種已解鎖場景,若要解鎖場景,即需不斷地闖關獲得金幣用于解鎖場景。
選擇情景后進入選擇工具界面,可以選擇用戶家中已有的工具作為本次游戲運動的道具。同時,支持一鍵全選功能、系統推薦功能,界面顯示通過RecyclerView呈現給用戶。RecylerView是support-v7包中的新組件,是一個強大的滑動組件,與經典的ListView相比,同樣擁有item回收復用的功能,這一點從對其命名RecyclerView、即回收View中也可以看出。
系統采用了RecyclerView的原因如下:
(1)RecylerView封裝了Viewholder的回收復用,也就是說RecylerView對ViewHolder建立了標準化,編寫Adapter面向的是 ViewHolder而不再是View。而且,因為封裝了復用的邏輯,流程編寫也更趨簡單。
(2)提供了一種插拔式體驗,高度解耦,且異常靈活,針對一個Item的顯示RecylerView專門研發抽取了相應類來控制Item的顯示,使其呈現出十足優秀的擴展性。例如Recyclerview不局限于下拉列表,同時還可支持GridView效果和瀑布流效果。
(3)可以控制Item增刪的動畫,運行中是通過ItemAnimator類進行控制。當然,針對增刪的動畫,RecylerView也有其自身默認的實現。
對于游戲界面中的不同的地圖,采用了Fragment來顯示,為了制定統一的標準,定義一個接口IGameFragment.java。這里,給出該接口主要方法可見如下:
(1) setWidgetsFromActivity: Activity與Fragment之間的通訊。
(2)getGameService:獲取游戲GameManager對象(見2.4.1)。
(3)startGame: 開始游戲,調用該方法即可進入游戲。
為方便開發,定義游戲接口IGame.java。研究可得該接口中主要方法表述如下:
(1)resumeGame:處理游戲開始之前的業務。
(2)startGame:游戲開始時要處理的業務。
(3)moveOnce: 某一玩家走了若干步后處理的業務。
(4)showMessage:顯示提示信息。
(5)gaming: 監聽玩家狀態。
(6)gameSucess: 某一玩家獲得勝利,游戲結束后處理的業務。
(7)reGame:恢復游戲到初始狀態。
2.4.1 游戲核心類-GameManager.java
構造函數-推薦使用傳入2個參數,一個是游戲配置對象GameCfg(見2.4.2),一個是Context、即可構建一個GameManager對象。GameManager是游戲居于核心的設計類,整合掌握著諸如封裝玩家的數據,控制游戲的行為進程,處理玩家信息,監聽游戲運動情況,提示運動消息(通過彈框向用戶反饋消息),配置開始游戲接口,封裝了全自動構建地圖算法等一系列的業務邏輯。
GameManager是一個重量級的類,為此使用了單例模式。在創建了一個GameManger對象后將會留于緩存,下次使用將直接從緩存中提取,減少內存占用空間。
2.4.2 游戲配置類-GameCfg.java
在游戲配置類中,可以分別配置網格的寬/高度、連接網格的線長度,每一段的網格個數(數組格式),運動網格的下標(從0開始)、前臺界面LinearLayout的集合。undes是一個數組,表示反向排列的下標集合(規定向右或者向下為正方向,向左或者向上為反方向),isFirstVertical則表示第一段路線是否為垂直的。
2.4.3 全自動構建游戲地圖算法
在算法設計中,為方便實現自動化,將一個地圖分成若干段,每當地圖走向改變時即劃分為一段,如圖 1所示。這樣,一個復雜的地圖將會劃分為若干條直線小地圖。其中,每段地圖都在一條水平線上。引入此種設計處理后,只要確定了第一段地圖的位置,再根據傳入的數據參數通過運算即可判定下一段地圖的方向、長度、運動網格位置。
該算法需要一個GameCfg(游戲配置)對象作為參數。GameCfg參數中保存了地圖中每一個方格的寬/高度、連接方格線的長度、每一段方格的個數集合、運動方格的位置索引集合、地圖方格的總數、地圖走向向左和向上段的索引集合、地圖中第一段的走向(垂直或水平)、用于顯示的ViewGroup組件集合。根據約定,將GameCfg對象中的數據進行邏輯處理。

圖1 全自動構建地圖算法分割段分析圖
Fig.1Analysismapofautomaticconstructionofmapsegmentationalgorithm
根據初始產生的一個隨機數。開始游戲,點擊“開始”的時候,通過一個匿名線程對界面不斷地提供渲染,產生一種角色在網格上運動的效果。
玩家的位置根據游戲的進度在不斷地發生變化,為了有效判斷玩家是否到達了帶有運動的方格,此時就需要系統的游戲監聽服務。在游戲開始后,系統將隨即在后臺啟動游戲監聽服務,每當某一玩家到達一個新位置時,監聽服務即會判斷該位置是否為運動方格。若為運動方格,就彈出對應的運動故事情節;若不是,則進入下一步監聽,直到游戲結束,該服務自動停止。
體感技術也稱為動作感應控制技術,就是通過電子設備的獨特設計,而最終達到的可以非觸摸式操作為交互形式的智能應用技術。用戶只是手持移動設備,僅憑動作、聲音就可以與機器進行交互。為更加自然地實現親子互動提供了有效技術支持。
微軟打造的Kinect是利用光學技術著重研發了對人體關節的識別,從而探討實現了人體動作識別的體感操作技術。Kinect通過體感外設、3D攝像頭等成像裝置、以及陣列式麥克風等設備偵測探知使用者的感官動作,獲取彩色、深度與聲音的數據流,通過數據分析、技術與處理,并與內置人體動作進行對比分析,觸發相應的應用程序,再以視覺或者聽覺的形式在系統界面上生成效果響應[9]。
父母與孩子無需通過移動設備,只需在攝像頭前做出指定動作即可實現對游戲的控制,計算機虛擬系統根據玩家的動作姿態來形成判斷,并反饋給玩家,雙方可以親身體驗游戲角色,完善游戲體驗度,滿足孩子好動天性,有利于孩子的身心發展,同時提升親子互動分享程度。基于Kinect的親子互動流程設計如圖2所示。

圖2 Kinect親子互動流程圖Fig. 2 Kinect parent-child interaction flow chart
在體感游戲設計策略上,以肢體動作變化來指揮操作的體感游戲,應該是一個運動和游戲相結合的整體設計過程[10]。將游戲和運動相結合,并在其中設計加入增強孩子德智的環節,親子雙方共同遵守游戲規則,在平等的意識下,相互交流,共同暢享游戲互動樂趣。
親子游戲產品應用到市場上將會改變大部分的親子娛樂方式,能夠有效地改善移動互聯網帶來的一些負面影響。本文開發的基于Android的親子互動平臺,能夠在短時間內實現較高質量的親子互動,有利于孩子的健康成長以及家庭的和諧。在文章最后,還進一步闡釋了基于Kinect的非接觸式親子互動,為更加高維度的親子互動方式的研發提供了理論探索空間和未來發展方向。
[1] 艾瑞咨詢. 2015年中國上班人群洞察報告[EB/OL]. [2015-10-13]. http:www.iresearch.com.cn.
[2] 陳喆,曾彬. 我國親子游戲研究綜述[J]. 成都師范學院學報,2014,30(12):14-19.
[3] 王軍,程文婷. 教育類移動應用技術接受模型構建[J]. 圖書情報工作,2017,61(16):60-65.
[4] 姚莉. APP在親子互動中的調查研究[D]. 上海:上海師范大學,2015.
[5] 曾露. MVP 模式在 Android 中的應用研究 [J]. 軟件, 2016,37(6):75-78.
[6] 李洋. SSM框架在Web應用開發中的設計與實現[J]. 計算機技術與發展,2016,26(12):190-194.
[7] 許纖纖. 基于學前兒童發展心理學的親子互動產品設計研究 [D].北京:北京理工大學, 2015.
[8] 羅國榮. 基于android平臺的幼兒早教游戲的開發研究[J]. 科技資訊,2014(25):35-36,39.
[9] 黃睿航. 體感技術在體育教學中的應用探析[J]. 軟件導刊(教育技術), 2015(9):58-59.
[10]馬建榮,章蘇靜,李鳳. 基于體感技術的親子互動游戲設計與實現[J]. 中國電化教育,2012(9):85-88.