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

        ?

        基于AS3的深海射擊游戲的設計與實現(xiàn)

        2012-08-08 12:48:30朱冬玲
        電腦與電信 2012年8期
        關鍵詞:時間軸關鍵幀游動

        朱冬玲

        (廣州城市職業(yè)學院,廣東 廣州 510405)

        1.引言

        ActionScript 3(簡稱AS3)是Flash新一代腳本語言,全面支持面向對象編程機制,新增了很多強大功能,在新一代AS引擎AVM2上的執(zhí)行速度比舊代碼快10倍。借助于AS3的強大編程功能,一些以前用C++實現(xiàn)的游戲現(xiàn)可用Flash實現(xiàn),而且在實現(xiàn)技術上有鮮明特色。在二維游戲和網頁游戲領域,F(xiàn)lash游戲的主流地位更加鞏固了。

        用Flash AS3實現(xiàn)的深海射擊游戲模仿一個街機賭博游戲的功能,以網頁游戲的形式供人們無限制免費玩,使人們在娛樂身心時免于掉進賭博陷阱。

        2.游戲的設計

        2.1 游戲的功能

        本游戲用魚炮來捕魚。魚炮的威力分為7級,每級的殺傷力和消耗的炮彈數(shù)不同,可用空格鍵切換魚炮等級,移動鼠標旋轉魚炮瞄準,單擊鼠標左鍵發(fā)射炮彈。魚有12種,每種魚的質量、速度、生命力、出現(xiàn)概率、分數(shù)各不相同。飛行的炮彈擊中魚后,會撒出魚網,魚網覆蓋范圍內的魚的生命力都會減小,生命力降為零的魚被捕獲。游戲分為快速、簡單、普通、困難四種模式。游戲以一群水手商量出海捕魚賺錢開始,經過航行選擇捕魚海域、選擇主炮手后,開始捕魚,最后或成功歡慶,或失敗沮喪。

        2.2 游戲場景與主時間軸上關鍵幀的設計

        游戲具有加載XML數(shù)據(jù)、主菜單、查看幫助、選擇游戲模式、航海選擇捕魚海域、選擇主炮手、游戲主場景、成功歡慶、失敗沮喪共9個場景,相應地在主時間軸上設置9個關鍵幀,名稱分別是 loadxml、menu、help、chmode、navigate、setplayer、playgame、gamewin、gamelose。這些關鍵幀不會連續(xù)播放,在程序中用gotoAndStop函數(shù)實現(xiàn)不同場景的切換。游戲場景與關鍵幀的一一對應,使主時間軸具有清晰的幀結構,便于開發(fā)人員的交流與合作,也利于游戲的集成和功能擴展。

        3.游戲的實現(xiàn)

        3.1 主時間軸上關鍵幀的實現(xiàn)

        為避免幀代碼互相干擾和便于模塊集成,除在第1幀定義少量用于在各幀之間交換數(shù)據(jù)的變量外,其余各幀都不編寫幀代碼,也不直接放置界面元素,而是創(chuàng)建一個影片剪輯類型的元件,并把該元件鏈接到自己編寫的類。該元件的寬和高均設置為1,直接添加到幀的左上角,不需作更多的編輯修改。9個關鍵幀對應的類分別是LoadXML類、Menu類、HelpScreen 類、ChMode類、Navigate類、SetPlayer類、Game類、GameWin類、GameLose類。由于幀的界面和行為都用類來實現(xiàn),軟件模塊之間高內聚、低耦合,模塊易集成、易維護、易重用。

        3.2 游戲元件類的實現(xiàn)

        游戲界面中涉及的元件很多,在這里介紹幾種不斷移動的元件類的實現(xiàn)。

        使魚平順自然地游動是一個難點,有些游戲用Flash CS提供的Tween類中的方法來實現(xiàn),但游動路徑不夠靈活多變。事實上,這屬于人工智能范疇的轉向行為,已有成熟算法。在參考文獻[3]中,有相應的AS3實現(xiàn)代碼,用機車類Vehicle代表恒速的物體,用轉向機車類SteeredVehicle代表有加速度的物體。子彈和金銀幣以固定速度飛行,可以繼承Vehicle類。魚在游動過程中會改變速率和方向,可以繼承SteeredVehicle類。幾種主要元件類的繼承關系如圖1所示。

        圖1 類的繼承關系

        3.3 主場景的實現(xiàn)

        主場景分為初始狀態(tài)、進行狀態(tài)、結束狀態(tài),各用一個符號常量表示,再用一個變量gameState來代表當前狀態(tài)。在Game類的構造方法中,完成界面布置、啟動幀事件監(jiān)聽等操作。在幀事件監(jiān)聽方法中,根據(jù)當前狀態(tài)的不同值分別調用initGame、playGame或endGame方法。在initGame方法中,設置變量初值,啟動鼠標、鍵盤、定時器等事件監(jiān)聽,然后轉換到進行狀態(tài)。在playGame方法中,根據(jù)游戲邏輯完成生成對象、移動對象、碰撞檢測等操作。在endGame方法中,取消事件監(jiān)聽,根據(jù)游戲結果修改全局變量,然后跳轉到成功歡慶場景或失敗沮喪場景。Game類的結構如下:

        3.4 游戲特征參數(shù)數(shù)據(jù)組織

        游戲的特征參數(shù)包括游戲模式參數(shù)、魚參數(shù)、玩家參數(shù)、魚游動路徑座標參數(shù)、魚陣座標參數(shù)等。以XML格式描述各種游戲特征參數(shù),放在game.xml文件中。定義了一個Data類,用于保存從game.xml文件讀入的游戲特征參數(shù),并可供其它程序模塊訪問。LoadXML類用于把游戲特征參數(shù)從game.xml文件讀到Data類中。

        3.5 時間復雜度分析

        在主場景的進行狀態(tài),每幀都要執(zhí)行playGame方法,按一定概率生成魚,讓全部魚游動,讓全部子彈飛行,讓全部金銀幣飛行,作碰撞檢測。

        3.5.1 魚的游動

        魚的游動主要用了搜尋、漫游、路徑追隨3種轉向行為,時間復雜度都是O(1)。每條魚都執(zhí)行轉向行為算法,如果有n條魚,則一幀中全部魚游動的時間復雜度為O(n)。

        3.5.2 子彈和金銀幣的飛行

        子彈和金銀幣以恒定速度移動的時間復雜度也是O(1)。每顆子彈和每個金銀幣都執(zhí)行移動算法,如果有n顆子彈或n個金銀幣,則一幀中全部子彈或金銀幣移動的時間復雜度為O(n)。

        3.5.3 碰撞檢測

        魚和子彈的碰撞檢測用兩重循環(huán)逐個檢查的方法。如果在飛的子彈有m顆,魚有n條,則時間復雜度是O(mn)。發(fā)現(xiàn)碰撞后釋放漁網,這時需要檢測漁網與所有魚的碰撞,時間復雜度有可能變成O(mn2)。為降低時間復雜度,在發(fā)現(xiàn)一次碰撞并釋放漁網后,馬上退出兩重循環(huán),時間復雜度是O(mn)+O(n)即仍是 O(mn)。

        4.結束語

        該游戲運行穩(wěn)定流暢,占用系統(tǒng)資源不多。而且,架構清晰合理,程序模塊之間、程序與數(shù)據(jù)之間實現(xiàn)松耦合,具有易集成、易維護、易重用等優(yōu)點,其設計和實現(xiàn)方法都可供其它游戲借鑒。

        [1]Gary Rosenzweig.ActionScript 3.0 Game Programming University[M].USA:QUE Publishing,2008.

        [2]Jeff Fulton,Steve Fulton.The Essential Guide to Flash Games[M].USA:friendsof ED,2010.

        [3]Keith Peters.Flash ActionScript 3.0動畫高級教程[M].蘇金國等譯.北京:人民郵電出版社,2010.

        猜你喜歡
        時間軸關鍵幀游動
        改革開放以來黨的歷屆三中全會時間軸
        永不停歇的魚
        時間軸上二階非線性非自治延遲動力系統(tǒng)的振動性
        球軸承用浪型保持架徑向游動量的測量
        哈爾濱軸承(2021年1期)2021-07-21 05:43:16
        把手放進袋子里
        小學科學(2020年11期)2020-03-04 11:39:00
        時間軸里的“共和國記憶”
        金橋(2019年12期)2019-08-13 07:16:28
        基于改進關鍵幀選擇的RGB-D SLAM算法
        基于相關系數(shù)的道路監(jiān)控視頻關鍵幀提取算法
        基于聚散熵及運動目標檢測的監(jiān)控視頻關鍵幀提取
        論“關鍵幀”在動畫制作中的作用
        少妇人妻av一区二区三区| 中文亚洲av片在线观看不卡| 国产免费av片在线观看麻豆| 亚洲av套图一区二区| 国产不卡视频在线观看| 高潮潮喷奶水飞溅视频无码| 老熟妇高潮喷了╳╳╳| 亚洲免费毛片网| 一本久道久久丁香狠狠躁| 久久精品aⅴ无码中文字字幕| 欧美粗大无套gay| AV在线中出| 在线人妻va中文字幕| 国产激情无码一区二区三区| 中国极品少妇videossexhd| 亚洲无码啊啊啊免费体验| 少妇被爽到高潮喷水免费福利| 国产午夜福利精品一区二区三区 | 亚洲另类欧美综合久久图片区| 亚洲男人天堂2017| 国产精品成人有码在线观看| 末成年人av一区二区| 香蕉视频在线精品视频| 日本激情网址| 免费视频亚洲一区二区三区| 国产成人精品一区二区三区| 欧美日韩精品一区二区在线视频| 白白青青视频在线免费观看| 中文字幕av永久免费在线| 亚洲精品久久久久久久不卡四虎| 亚洲天堂免费视频| 中文字幕色婷婷在线视频| 欧美性生交大片免费看app麻豆 | 欧美手机在线视频| 一区二区三区蜜桃av| 亚洲啪av永久无码精品放毛片| 国产成人亚洲综合一区| 亚洲一区亚洲二区中文字幕| 熟妇人妻无乱码中文字幕真矢织江| 色猫咪免费人成网站在线观看| 亚洲va成无码人在线观看|