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