劉俊杰 丁厶琦 林東民
摘? ?要:在深入分析和研究體感游戲的關(guān)鍵特征與Flash AS編程技術(shù)的基礎(chǔ)上,文章設(shè)計(jì)并開發(fā)了一個(gè)基于攝像頭感測(cè)的體感游戲。利用Flash繪圖功能實(shí)現(xiàn)游戲的界面設(shè)計(jì),利用Flash AS編程技術(shù)完成游戲功能的實(shí)現(xiàn),包括攝像頭獲取用戶肢體動(dòng)作、碰撞檢測(cè)、計(jì)分功能和退出機(jī)制。在游戲的過程中,用戶可以擺脫鼠標(biāo)、手柄和鍵盤的限制,通過自己的肢體動(dòng)作來操作游戲,身臨其境地與游戲內(nèi)容互動(dòng)。
關(guān)鍵詞:Flash動(dòng)作腳本語言;攝像頭;體感游戲
隨著科學(xué)技術(shù)的發(fā)展,用戶對(duì)游戲操作的要求越來越高。為了提高用戶體驗(yàn),具有高度互動(dòng)性的體感游戲應(yīng)運(yùn)而生[1],并且越來越受到人們的關(guān)注。傳統(tǒng)的游戲是通過鼠標(biāo)、手柄或者鍵盤來進(jìn)行操作,而體感游戲則是通過用戶的肢體動(dòng)作與游戲內(nèi)容互動(dòng),突破了傳統(tǒng)的交互方式。其中,基于攝像頭感測(cè)的體感游戲是隨著圖形圖像技術(shù)的發(fā)展而產(chǎn)生的一種新的游戲形式,其實(shí)現(xiàn)方法是通過攝像頭捕獲用戶的肢體動(dòng)作來完成游戲的體感控制,擺脫了傳統(tǒng)交互方式的限制,給游戲者以全新的互動(dòng)體驗(yàn)。對(duì)用戶來說,基于攝像頭感測(cè)的體感游戲不僅提高了游戲中交互的自然性與高效性,還極大地提高了游戲的沉浸感。另外,在一些體感游戲中,對(duì)硬件的要求比較高,有的通過高科技的攝像頭來實(shí)現(xiàn)體感控制;有的通過頭戴式顯示器或者手持式顯示器來實(shí)現(xiàn)體感控制。本游戲無須特殊的硬件支持,用戶通過普通的電腦和攝像頭即可進(jìn)行游戲操作,極大地降低了體感游戲?qū)τ布囊蕾嚒?/p>
1? ? 功能需求分析
本游戲在交互功能的實(shí)現(xiàn)和交互規(guī)則的建立方面具有創(chuàng)新性,突破了傳統(tǒng)游戲的交互方式的限制,讓用戶通過肢體動(dòng)作就可以完成游戲的各種操作。即只需要普通的攝像頭與Flash AS編程技術(shù)結(jié)合,無須安裝特殊硬件,就可以實(shí)現(xiàn)獲取用戶肢體動(dòng)作、游戲角色與障礙物的碰撞檢測(cè)、游戲計(jì)分、退出游戲等諸多功能。具體來說,本系統(tǒng)需要完成以下幾項(xiàng)功能:(1)用戶端零部署安裝,只需要普通電腦和攝像頭,就可以進(jìn)行游戲。(2)游戲能夠穩(wěn)定運(yùn)行,操作簡(jiǎn)便。(3)用戶在攝像頭前揮動(dòng)雙手,控制游戲角色的移動(dòng)。(4)游戲角色每通過一個(gè)障礙物得1分,以此累計(jì)直到游戲結(jié)束。(5)游戲角色碰到障礙物或超出游戲界面,則游戲結(jié)束。(6)游戲結(jié)束后,在屏幕上顯示游戲得分與歷史游戲最高分。
2? ? 系統(tǒng)結(jié)構(gòu)與工作流程
2.1? 系統(tǒng)結(jié)構(gòu)
本游戲主要由用戶界面和動(dòng)作腳本兩部分組成。使用Flash CS6的繪圖功能完成用戶界面的設(shè)計(jì),用戶界面主要將游戲中所有的功能模塊集合起來,對(duì)各個(gè)功能模塊進(jìn)行調(diào)度和顯示;使用Flash CS6自帶的動(dòng)作腳本語言ActionScript3.0實(shí)現(xiàn)攝像頭捕獲用戶的肢體動(dòng)作,實(shí)現(xiàn)用戶肢體動(dòng)作和游戲角色之間的交互,實(shí)現(xiàn)對(duì)游戲角色移動(dòng)的控制,同時(shí)實(shí)現(xiàn)用戶界面和后臺(tái)數(shù)據(jù)之間的通信,實(shí)現(xiàn)游戲進(jìn)程與交互結(jié)果的實(shí)時(shí)刷新。系統(tǒng)結(jié)構(gòu)與功能模塊分布如圖1所示。
2.2? 工作流程
本游戲通過普通攝像頭獲取用戶的肢體動(dòng)作,對(duì)玩家的肢體動(dòng)作進(jìn)行識(shí)別,并將其轉(zhuǎn)化為對(duì)游戲角色的實(shí)際控制數(shù)據(jù),從而控制游戲角色進(jìn)行相應(yīng)的操作。根據(jù)游戲規(guī)則來判斷游戲是否結(jié)束,同時(shí)不斷刷新游戲障礙物直到游戲結(jié)束。游戲具體工作流程如圖2所示。
3? ? 系統(tǒng)實(shí)現(xiàn)的技術(shù)與原理
3.1? 攝像頭獲取用戶肢體動(dòng)作
攝像頭獲取用戶肢體動(dòng)作部分通過使用Flash AS文件實(shí)現(xiàn)攝像頭和用戶肢體動(dòng)作的交互,對(duì)于攝像頭的視頻運(yùn)動(dòng)檢測(cè)等相關(guān)處理都在游戲內(nèi)部實(shí)現(xiàn)[2]。主要思路是使用Camera類實(shí)現(xiàn)對(duì)攝像頭圖像的捕獲,Camera.get()方法返回對(duì)于捕獲視頻的Camera對(duì)象的引用[3]。然后創(chuàng)建一個(gè)video對(duì)象,將實(shí)例對(duì)象_camera附加到Video上。
var _camera:Camera;
Camera = Camera.get();
var _video:Video;
_video.attachVideo(_camera);
3.2? 實(shí)現(xiàn)碰撞檢測(cè)
實(shí)現(xiàn)碰撞檢測(cè)部分通過變量gdsprite.numChildren獲取游戲界面上的障礙物,利用Flash CS6內(nèi)置的hitTestObject() 函數(shù)比較游戲角色與屏幕上所有障礙物實(shí)例的邊框,檢測(cè)是否發(fā)生碰撞。如果發(fā)生碰撞,返回true值,調(diào)用lost()函數(shù)退出游戲。關(guān)鍵代碼如下:
for(var i1=0;i1 if(mc1.hitTestObject(gdsprite.getChildAt(i1))) { lost(); return; }? } 3.3? 游戲計(jì)分功能 比較游戲角色與障礙物的位置坐標(biāo)X,即通過1個(gè)障礙物,游戲得1分。關(guān)鍵代碼如下: for(var i2=0;i2 if(mc1.x > gdsprite.getChildAt(i2).x + gdsprite.x ) { scores ++;? } } 3.4? 游戲退出機(jī)制 本游戲有兩種退出機(jī)制:第一種是游戲角色與障礙物發(fā)生碰撞,通過調(diào)用lost()函數(shù)退出游戲;第二種是游戲角色移動(dòng)出游戲界面上下邊界,同樣調(diào)用lost()函數(shù)退出游戲。關(guān)鍵代碼如下: if(mc1.y<17||mc1.y>=390) { lost(); return;? } 4? ? 結(jié)語 體感游戲擺脫了傳統(tǒng)交互方式的束縛,讓用戶可以身臨其境,與游戲內(nèi)容互動(dòng),提高了用戶在游戲過程中的參與度,增強(qiáng)了人機(jī)之間的交互性;能讓用戶在較低的硬件環(huán)境下,實(shí)現(xiàn)傳統(tǒng)游戲無法實(shí)現(xiàn)的游戲效果,體驗(yàn)到前所未有的游戲快感[4]。本文運(yùn)用Flash內(nèi)置的Camera類對(duì)用戶肢體動(dòng)作進(jìn)行捕獲,利用Flash AS腳本文件實(shí)現(xiàn)交互,從而開發(fā)了一款簡(jiǎn)單有趣的躲避障礙物的體感游戲,其操作方法簡(jiǎn)單,不需要安裝特殊的硬件設(shè)備,可以直接進(jìn)行人機(jī)互動(dòng),游戲的操作性能基本滿足用戶的游戲需求。 [參考文獻(xiàn)] [1]周書賢.在線開放課程中視頻答疑模塊的設(shè)計(jì)與實(shí)現(xiàn)[J].無線互聯(lián)科技,2016(6):71-72. [2]杜丙新.基于攝像頭的交互式教育游戲設(shè)計(jì)研究[J].電化教育研究,2016(7):74-81. [3]余亮,高峰.Flash攝像頭游戲課件設(shè)計(jì)與開發(fā)[J].現(xiàn)代教育技術(shù),2008(1):107-111. [4]張英烈,夏夢(mèng),陳臨強(qiáng).基于視頻跟蹤的體感游戲設(shè)計(jì)[J].計(jì)算機(jī)工程與應(yīng)用,2015(17):44-47. Design and implementation of somatosensory games based on camera sensing Liu Junjie, Ding Siqi, Lin Dongmin (School of Educational Science and Technology, Nanjing University of Posts and Telecommunications, Nanjing 210023, China) Abstract:On the basis of further analysis and research on the key features of somatosensory games and Flash AS programming technology, this paper designs and develops a somatosensory game based on camera sensing. Flash drawing function is used to design the interface of the game, and Flash AS programming technology is used to complete the realization of game functions, including camera acquisition of user body movements, collision detection, scoring function and exit mechanism. During the game, users can get rid of the restrictions of mouse, gamepad and keyboard, operate the game through their body movements, and interact with the game content immersively. Key words:f lash actionscript; camera; somatosensory game