亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Flash益智游戲“學字母,打氣球”的設計與開發(fā)

        2014-09-24 20:12:21鄭深
        軟件工程 2014年8期
        關鍵詞:功能模塊游戲

        鄭深

        摘 要:為了讓兒童可以在游戲中有所收獲,我們要利用兒童愛玩游戲和對世界充滿好奇心的特點,開發(fā)適合于他們玩的教育游戲,做到寓教于樂。本文論述了制作一個基于Flash益智游戲“學字母,打氣球”的設計與開發(fā)的詳細過程。通過這個打字游戲,可以讓學齡前兒童在玩游戲的同時,熟悉鍵盤字母鍵的位置,并且學習英文字母“A—Z”的發(fā)音。此外這個游戲可以通過游戲時間和速度的改變,來訓練兒童對英文字母的反應速度和對鍵盤的熟悉程度。

        關鍵詞:Flash;游戲;功能模塊

        中圖分類號:G642 文獻標識碼:A

        Abstract:In order for children can be harvested in the game,we want to take advantage of children playing games and the characteristics of the world is full of curiosity,develop appropriate for them to play educational games,so entertaining.This article discusses the production of a Flash-based puzzle game"learning letters,playing balloon",the detailed process design and development.Through this typing game that lets preschoolers play the game at the same time,the familiar position of letter keys, and learning the alphabet"A-Z"pronunciation.In addition,this game can change the game time and speed,to train children's reaction speed and familiarity with the english letters on the keyboard.

        Keywords:flash;game;function module

        1 引言(Introduction)

        在網(wǎng)絡智能化的今天,游戲也開始成為大眾包括學齡前兒童很重要的一種消遣方式,其中Flash游戲由于體積小,下載方便和容易玩尤為受歡迎。所以可以利用兒童喜愛游戲的天性把教育和游戲結合,開發(fā)一個教育游戲,讓兒童在游戲中學習,寓教于樂,于是游戲和學習這兩個看似矛盾的事物結合就成了Flash游戲的又一個發(fā)展方向,其中打字游戲就是一款很好的教育游戲[1]。本文詳細論述了制作基于Flash益智游戲“學字母,打氣球”的設計與開發(fā)的過程。通過這個打字游戲,可以讓學齡前兒童在玩游戲的同時,熟悉鍵盤字母鍵的位置,并且學習英文字母“A-Z”的發(fā)音。

        2 “學字母,打氣球”游戲的整體設計("Learning letters,playing balloon"game overall design)

        對“學字母,打氣球”這個打字游戲的整體設計主要包括游戲框架、游戲介紹、游戲玩法和游戲技術分析的設計。游戲框架又可以分為四個設計模塊:游戲說明模塊、游戲參數(shù)設置模塊、游戲進行模塊和游戲結束模塊,每兩個模塊之間以按鈕進行連接,完成整個游戲流程的貫穿。

        2.1 游戲說明模塊

        游戲說明模塊是打開運行這個Flash游戲就會出現(xiàn)的模塊,由于多數(shù)學齡前兒童是初次接觸打字游戲,所以需要一個游戲的操作說明來介紹游戲的名稱和游戲的操作規(guī)則,這是每一個游戲都必不可少的一個模塊。模塊里面除了有游戲的操作說明以外,還應該有一個進入下一個模塊的“開始”按鈕。

        2.2 游戲參數(shù)設置模塊

        單擊游戲說明模塊里的“開始”按鈕后進入游戲參數(shù)設置模塊,在這個模塊里,由三個組件來實現(xiàn)游戲的參數(shù)設置,玩家可以設置游戲的等級、游戲的時間和氣球數(shù)量。游戲等級分為三級,不同的游戲等級會有不同的游戲速度,即氣球上飄的速度;游戲時間可以設置1—5分鐘,即限定玩家每次游戲的最長時間,時間一到就會停止游戲,進入到游戲結束模塊;氣球數(shù)量是指在同一時間內(nèi)舞臺上出現(xiàn)的最多氣球數(shù)量。

        2.3 游戲進行模塊

        單擊游戲參數(shù)設置模塊里的“OK”按鈕后進入游戲進行模塊,開始進行游戲,氣球從舞臺下方隨機出現(xiàn),每個氣球上都帶有一個字母,氣球顏色和氣球上的字母都是隨機的??吹綒馇蛏系淖帜笗r敲擊鍵盤上相應的字母,氣球就會破裂,同時發(fā)出相應字母的讀音,然后氣球上的字母下落直到落出舞臺。在游戲舞臺上方有一個字數(shù)統(tǒng)計、準確率和剩余時間的顯示,以動態(tài)文本框來實現(xiàn)。字數(shù)統(tǒng)計的是玩家敲擊鍵盤的次數(shù),準確率則以玩家擊中的次數(shù)和玩家敲擊鍵盤的次數(shù)的比率來計算,剩余時間是根據(jù)玩家的參數(shù)設定來倒數(shù),剩余時間為零時進入游戲結束模塊。

        2.4 游戲結束模塊

        當剩余時間結束后游戲進入結束模塊,在這個模塊里會計算出玩家在這次游戲的打字速度,即一分鐘打了幾個字和打字的準確率,以及一個“繼續(xù)”按鈕,單擊繼續(xù)按鈕會回到第二個模塊即游戲參數(shù)設置模塊再進行游戲參數(shù)設置,如此循環(huán)。如果不想繼續(xù)游戲,直接關閉窗口即可。

        游戲中音頻效果的選擇是很重要的,在這個打字游戲中,音頻主要是A—Z這26個英文字母的標準發(fā)音,每次打破游戲界面中的氣球時都會發(fā)出相應氣球上帶有的英文字母的發(fā)音,從而對玩家起到耳濡目染的作用,讓學齡前兒童在游戲中受到英文字母發(fā)音潛移默化的影響,為學齡前兒童學習英文字母起到一定的輔助作用。

        3 游戲主要元件素材的設計(The main componentsendprint

        of the material design game)

        聲音素材是通過錄音之后再經(jīng)音頻處理軟件Audition處理之后保存導入到庫面板的,本游戲中用到的聲音元件有26個,即26個英文字母A—Z的發(fā)音,分別以相應的英文字母命名,文件類型為“.MP3”,聲音文件主要是用于玩家單擊字母鍵盤后調(diào)用相應的聲音文件并播放。

        創(chuàng)建5個影片剪輯元件,分別命名為“character”

        “edge”“skin”“氣球”和“得分榜”。在“character”元件中創(chuàng)建逐幀動畫,共有26幀,按順序每一幀為一個大寫英文字母,并在第一幀的動作腳本中寫上“stop();”。在“edge”元件中畫出一個心形氣球的輪廓,不用填充色彩。

        在“skin”元件中的第一幀畫出一個沒有邊框的心形氣球,第二幀至第五幀繪制氣球爆炸開的過程,并在第二幀輸入氣球爆炸時調(diào)用聲音文件的代碼:

        stage.addEventListener(KeyboardEvent.KEY_DOWN,onPressKey);

        function onPressKey(k:KeyboardEvent) {

        var index=k.keyCode-65;

        if (index==0) { var A:ASound = new ASound(); A.play(); }

        else { if (index==1) { var B:BSound = new BSound(); B.play(); }

        通過鍵控代碼確定按鍵的索引,判斷玩家的按鍵操作,并根據(jù)玩家操作調(diào)用相應的聲音文件,如keycode-65=0即玩家按A鍵時則調(diào)用聲音文件A,這是通過onPressKey函數(shù)和if函數(shù)來實現(xiàn)的。

        在“氣球”元件中,創(chuàng)建四個圖層分別命名為“文字”“氣球外框”和“氣球皮膚”和“action”,然后對應在圖層第一幀把“character”“edge”“skin”元件拉入元件編輯區(qū),并分別設置三個對象的實例名稱為edge、skin、txt_char,形成一個帶字母的氣球元件,然后在“action”圖層第一幀輸入代碼設置氣球的各種初始狀態(tài),包括氣球的速度、氣球的索引和重力加速度。在第二幀輸入代碼設置氣球飄出舞臺和打落的字母掉出舞臺,第三幀代碼為“gotoAndPlay(2);”。在庫中選中氣球元件,右擊選中“為ActionScript導出”復選框,設置其鏈接名稱為Balloon。并在“氣球”元件第一幀添加動作腳本代碼:

        var index:int;

        var g:Number;

        stop();

        設置氣球的各個初始狀態(tài)包括氣球上升的速度、加速度,索引和氣球的顏色,以及設置氣球破裂后的字母掉落的速度。在“氣球”元件第二幀添加腳本代碼[2]:

        this.y += speed; if (this.y<=-20) {

        this.y = 420; init(); }

        if (this.y>=440) { init(); }

        判斷氣球是否飄出舞臺和打落的字母是否掉出舞臺,并作出相應的反應。在“氣球”元件第三幀添加腳本代碼:gotoAndPlay(2);。

        4 游戲功能模塊的設計和實現(xiàn)(Design and

        implementation of functional modules game)

        設置舞臺背景尺寸為“550*400”像素,在主場景的時間軸面板上創(chuàng)建三個圖層,分別命名為“背景”“按鈕”和“action”,把庫面板中的“背景”拉入背景圖層第一幀,并延續(xù)到第四幀。

        4.1 游戲說明模塊

        在“按鈕”圖層第一幀用文本工具、矩形工具繪制游戲的說明界面,即顯示游戲名稱、游戲說明,并把庫面板中的開始按鈕拖動到游戲說明下方,命名“開始”按鈕的實例名稱為“bt_start”。

        在主場景“action”圖層第一幀輸入代碼,設置游戲參數(shù)的默認初始值并創(chuàng)建氣球數(shù)組:

        var maxCount:int=5;

        var timer:Timer;

        以上代碼用以設置游戲默認參數(shù),即默認設置游戲等級為1級,游戲時間為一分鐘,舞臺最多氣球數(shù)量為5個,之后可再根據(jù)游戲者的意愿再進行更改。

        var balloonList:Array=new Array();

        for (var i=0; i<26; i++) {

        var balloon:Balloon=new Balloon();

        balloon.init();

        addChild(balloon);

        }

        stop();

        以上代碼用來創(chuàng)建26個英文字母所對應的氣球數(shù)組[3]。

        bt_start.addEventListener(MouseEvent.CLICK,startGame);

        function startGame(evt:MouseEvent) { gotoAndStop("setting");}

        以上代碼是響應玩家單擊“開始”按鈕的操作,即跳轉(zhuǎn)到游戲參數(shù)設置模塊。

        4.2 游戲參數(shù)設置模塊

        在“按鈕”圖層第二幀顯示游戲設置界面,提供游戲參數(shù)設置,利用三個組合框組件來設置游戲速度等級、游戲時間和同時在舞臺上的氣球最大數(shù)量,在參數(shù)欄中設置數(shù)據(jù)項(DataProvider)。設置三個組合框的實例名稱分別為cmb_speed、cmb_time、cmb_maxCount、設置OK按鈕實例名稱為“bt_OK”。endprint

        在主場景“action”圖層第二幀輸入以下代碼:

        stop();

        bt_OK.addEventListener(MouseEvent.CLICK,init);

        function init(evt:MouseEvent) {

        matchCount=0; loseCount=0;

        speedLevel=int(cmb_speed.value);

        time=int(cmb_time.value);

        maxCount=int(cmb_maxCount.value);

        timeLeft=time*60;

        timer= new Timer(1000, timeLeft);

        timer.start();

        for (var i=0; i<26; i++) {

        MovieClip(balloonList[i]).init(i); }

        gotoAndStop("playing"); }

        這一幀的代碼是設置根據(jù)玩家設置的游戲參數(shù),初始化游戲的各個變量并響應玩家單擊“OK”按鈕的操作,進入游戲。

        4.3 游戲進行模塊

        “按鈕”圖層第三幀為游戲進行界面,在背景上增加了游戲成績的動態(tài)顯示,包括字數(shù)、準確率和剩余時間的顯示,動態(tài)顯示內(nèi)容用動態(tài)文本框來實現(xiàn),并分別給這三個動態(tài)文本框設置一個實例名稱。在主場景“action”圖層第三幀輸入代碼實現(xiàn)游戲的進行。

        function onPressKey(k:KeyboardEvent) {

        //通過鍵控代碼確定按鍵的索引

        var index=k.keyCode-65;

        if (index<0 ||index>26) {

        loseCount++;

        } else {

        if (balloonList[index].inStage==true)

        { //這個字母鍵正好在舞臺上

        matchCount++;

        balloonList[index].bomb();

        } else {

        //這個字母不在舞臺上

        loseCount++;

        } }

        updateView(); }

        通過鍵控代碼確定按鍵索引,偵聽玩家敲擊鍵盤的事件,首先判斷玩家敲擊的是不是字母鍵,如果是再判斷玩家按的是哪個鍵,并依據(jù)按鍵和舞臺上的氣球情形等判斷應當?shù)梅只蚴Х?,這是通過onPressKey函數(shù)實現(xiàn)的。

        function blast(evt:Event) {

        if (Math.random()*100/speedLevel>5) {

        return;} }

        //隨機尋找一個不在舞臺上的氣球

        do {

        i=int(Math.random()*26);

        } while (balloonList[i].idle==false);

        trace("blast"+i);

        //產(chǎn)生一個新的氣球

        MovieClip(balloonList[i]).blast(speedLevel);

        }

        function loseBalloon() {

        loseCount++;

        if (timeLeft>0) {

        updateView();

        }

        }

        按一定的隨機時間發(fā)射新的氣球,并且用do……while……這個循環(huán)語句來控制隨機氣球的發(fā)射,它控制著上飄氣球的數(shù)量和發(fā)射速度,通過blast函數(shù)來實現(xiàn)。

        4.4 游戲結束模塊

        “按鈕”圖層第四幀是用來顯示最后的游戲成績。以動態(tài)文本框來顯示打字速度和準確率,分別給這兩個動態(tài)文本框設置一個實例名稱,設置“繼續(xù)”按鈕的實例名稱為“bt_continue”。

        在主場景“action”圖層第四幀輸入代碼:

        bt_continue.addEventListener(MouseEvent.CLICK,startGame);

        txt_typeSpeed.text=String(Math.round((matchCount+loseCount)/time));

        txt_finallyPercent.text=String(int(100*matchCount/(matchCount+loseCount)));

        這一幀的代碼用來顯示最后的成績,等待玩家單擊“繼續(xù)”按鈕的操作,并響應玩家的操作。

        完成這個游戲的制作以后,通過單擊菜單欄里的“文件”,選擇“發(fā)布設置”命令,選中“Flash(.swf)”、“Windows放映文件(.exe)”后單擊“發(fā)布”和“確定”按鈕,即在Flash源文件所在文件夾生成“.swf”和“.exe”的文件。

        5 結論(Conclusion)

        以上論述了制作一個基于Flash益智游戲“學字母,打氣球”的設計與開發(fā)的詳細過程。通過這個打字游戲,可以讓學齡前兒童在玩游戲的同時,熟悉鍵盤字母鍵的位置,并且學習英文字母“A—Z”的發(fā)音。此外這個游戲可以通過游戲時間和速度的改變,來訓練兒童對英文字母的反應速度和對鍵盤的熟悉程度。希望通過介紹這個游戲設計的過程,能夠起到拋磚引玉的作用,讓更多的人投入到有益于兒童的益智游戲的設計中來。

        參考文獻(References)

        [1] 錢瓊,郭力平.兒童認知風格與游戲的相關研究綜述[J].幼兒教育,2006,(5):26-28.

        [2] 肖剛.Flash游戲編程教程[M].北京:清華大學出版社,2008:83-84;91-92.

        [3] 王愉,等.交互程序設計書Flash ActionScript 3.0溢彩編程[M].北京:清華大學出版社,2010:63-64.

        作者簡介:

        鄭 深(1979-),男,碩士,講師.研究領域:教育信息技術應用.endprint

        猜你喜歡
        功能模塊游戲
        數(shù)獨游戲
        瘋狂的游戲
        飛碟探索(2016年11期)2016-11-14 19:34:47
        基于ASP.NET標準的采購管理系統(tǒng)研究
        軟件導刊(2016年9期)2016-11-07 21:35:42
        爆笑游戲
        輸電線路附著物測算系統(tǒng)測算功能模塊的研究
        M市石油裝備公服平臺網(wǎng)站主要功能模塊設計與實現(xiàn)
        石油知識(2016年2期)2016-02-28 16:20:16
        第八章直接逃出游戲
        小學科學(2015年7期)2015-07-29 22:29:00
        功能模塊的設計與應用研究
        99久久精品人妻一区二区三区| 欧美性猛交aaaa片黑人| 欧美老妇牲交videos| 久久婷婷五月综合97色一本一本| 国产精品欧美福利久久| a级毛片无码久久精品免费| 国产精品亚韩精品无码a在线| 欧美日韩国产成人高清视| 久久亚洲第一视频黄色| 国产美女高潮流白浆免费观看| 蜜桃视频在线在线观看| 少妇被爽到自拍高潮在线观看| 日本精品少妇一区二区| 亚洲黄色大片在线观看| 日韩产的人妻av在线网| 久久亚洲综合亚洲综合| 亚州终合人妖一区二区三区| 国产爆乳无码一区二区麻豆| 高h喷水荡肉爽文np肉色学校| 在教室伦流澡到高潮hgl动漫| 欧美天天综合色影久久精品| 狠狠爱无码一区二区三区| 亚洲精品国产美女久久久| 亚洲人成网站久久久综合| 国产成人精品中文字幕| 中文字幕丰满人妻被公强| 青青河边草免费在线看的视频| 久久精品国产亚洲av久| 免费a级毛片无码a∨中文字幕下载 | 免费看草逼操爽视频网站| 国产熟女盗摄一区二区警花91| 国产老熟女网站| 日韩亚洲av无码一区二区不卡| 亚洲午夜精品a区| 男人的天堂av一二三区| 男人天堂亚洲一区二区| 妺妺窝人体色www在线| 亚洲av无码国产精品色软件下戴| 熟妇人妻AV中文字幕老熟妇| 美女熟妇67194免费入口| 国产目拍亚洲精品区一区|