999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于AS3.0的Flash游戲設計與開發

2014-03-16 03:38:44彭婀娜
電腦與電信 2014年3期
關鍵詞:游戲

彭婀娜

(廣州市公用事業技師學院,廣東 廣州 510100)

基于AS3.0的Flash游戲設計與開發

彭婀娜

(廣州市公用事業技師學院,廣東 廣州 510100)

Flash因其靈活、方便、文件體積小等優勢成為網頁游戲開發的寵兒,其中腳本語言Active Script 3.0是一種完全面向對象的語言,與舊版本相比,其擴展性、可讀性更強,編譯速度更快,性能更高。筆者嘗試使用AS 3.0編寫“水手捕魚”網頁游戲,并從功能分析、游戲流程、關鍵技術等方面闡述設計思路。

flash游戲;AS3.0技術;面向對象;游戲開發

1.引言

Flash游戲是一種隨網絡興起的游戲形式,因其游戲簡單、操作方便、無需安裝、文件體積小等優點而深受廣大網友歡迎。在網絡圖像、動畫的傳輸上,Flash有著得天獨厚的優勢,Flash player及其插件的高普及率使得flash成為網頁游戲開發者的寵兒。Flash技術包含一套可編程腳本解析器,稱為ActionScript,可以控制Flash動畫,實現多種交互功能,成為了絕大多數小游戲開發的技術基礎。

2.AS3.0的優勢

ActionScript3.0(簡稱AS3.0)是Flash新一代腳本語言,是一個完全基本OOP的標準化面向對象語言。與以前的版本語言(AS2.0)相比,AS3代碼更加模塊化,可讀性更好,擴展性更強,并且新增了很多功能,性能也大大地提高。主要體現在以下幾個方面:

(1)采用新一代虛擬機:在編譯階段,AS2采用的是AVM1(ActionScript Virtual Machine),而 AS3采 用的是AVM2。新一代虛擬機采用了OOP思想,在執行速度上比起AVM1也快了10倍。相對于AS2運行出錯需要花費大量時間排錯的缺陷,AVM2還提供了異常處理機制,與目前主流的編譯器一樣,運行出錯會輸出錯誤提示,工作效率大大提高。

(2)代碼規范化與標準化:AS3的事件機制采用的是監聽的方式,和AS2的OnClipEvent不同,AS3里所有的事件都是需要觸發器、監聽器、執行器三種結構的,這樣做的好處就是使得這個語言得到很大程度的規范化與標準化。不像AS2,由于編寫不規范,使得代碼變得繁復難懂,可讀性差,執行效率也大大降低。要特別說明的是,AS3的所有事件都直接繼承event對象,而event是直接繼承自BOSS類object,結構更加緊湊。所以在AS3中,所有的事件都繼承自相同的父類,結構相同,提高了重用性。

(3)程序安全性提高:與以前的版本不同,AS3引入了封裝的概念,使得程序安全性大大提高,各個對象之間的關系也通過封裝,訪問控制而得以確定,避免了不可靠的訪問給程序帶來的意外產生。

(4)讀取XML的優化:AS2時代對XML的存取仍然需要解析,而AS3則創新地將XML也視作一個對象,存取XML就像存取普通對象的屬性一樣方便,可以采用訪問標準對象中的屬性的方式來訪問節點。使用點表示法和XMLList方法,便可以輕松獲取信息,無疑大大提高了效率。

3.使用AS3.0開發flash游戲的具體實踐

本文以“水手捕魚”游戲開發為例,探索使用AS3開發Flash游戲的實踐過程。

3.1 游戲的功能分析

“水手捕魚”游戲以幾位水手商量出海捕魚賺取金幣的對話開始,在航海地圖中選擇捕魚海域,之后選擇角色,進入捕魚游戲主界面。游戲以五彩斑斕的海底世界為背景,其中有各種海底生物自由游動,玩家通過發射魚炮進行捕魚,在限定的時間內使用限定的子彈數量,達到既定的分數即為挑戰成功。游戲要實現的主要功能如下:

(1)游戲分為快速、簡單、普通、達人四人模式,每種模式的時間限制、分數限制、子彈限制各不同;

(2)游戲的運行速度流暢,畫面清晰,給玩家帶來淋漓盡致的操作快感;

(3)移動鼠標可以操作大炮的左右移動,點擊左鍵能夠發射網炮,按下空格鍵可以切換魚炮的級別,級別越高威力越大,所耗子彈數越多;

(4)呈現多種海洋生物自由游動,每種生物的生命力不同,分值也不同;

(5)發射的魚炮擊中魚后,撒出魚網,魚網覆蓋范圍內的魚兒生命力會減小,直到被降為零后被捕獲;

(6)除了自由游動的魚之外,還有魚群魚陣隨機蜂擁而出。

3.2 游戲的設計分析

3.2.1“水手捕魚”游戲軟件的執行流程如圖1所示:

3.2.2 游戲的關鍵技術實現

在“水手捕魚”游戲中,海洋生物的游動軌跡與出現概率、魚炮的飛行軌跡、子彈殺傷力的級別屬性設置等是游戲實現的關鍵技術。因此我們應用了AS3.0中幾種特殊的類:

Vector2D類。二維向量類,提供了向量的加法、減法、與標量的乘法、與標量的除法、取反、克隆、置0、求長度、求角度、設置長度、求兩個向量距離、求兩個向量點積、求兩個向量叉乘、判斷兩個向量是否相等等方法。

Vehicle類。機車類,具有質量、最大速率、位移、速度等屬性,其中位移和速度是向量,用Vector2D的實例來表示。該類中有一個重要方法update(),調用該方法可以使機車根據當前位移和速度求出新的位移,并更新與顯示有關的x、y、rotation屬性。

SteeredVehicle類。轉向機車類,是Vehicle類的子類。Vehicle類的對象只能以一定的速度一直移動,SteeredVehicle類的對象可以改變速度的大小和方向,具有搜尋、逃避、到達、追捕、躲避、漫游、規避、路徑追隨、群落等行為,而且運動軌跡自然流暢。

在本游戲軟件中,我們編寫的元件類有以下幾個:

Fish類。代表魚的類,是各種具體魚類的父類,各種由FLASH生成的具體魚類都繼承Fish類。Fish類繼承Steered-Vehicle類,因此具有代表各種轉向行為的方法,還具有魚類型、游動形式、生命值、遵循路徑編號等屬性。

Bullet類。代表子彈的類,繼承Vehicle類,因此會以恒定速度移動,還具有代表殺傷力的屬性。與FLASH中的子彈元件綁定。

Net類。代表魚網的類,具有代表殺傷力的屬性,與FLASH中的魚網元件綁定。

Gun類。代表炮的類,與FLASH中的炮元件綁定。其中的pointTo方法可使炮指向舞臺上的指定點。

Coin類。是金幣類GoldenCoin和銀幣類SilverCoin的父類,本身繼承Vehicle類,因此會以恒定速度移動,從而使金銀幣飛向炮臺。具有代表價值的屬性。

AutoVanishText類。一個能在指定時間后自動消失的文本框類,主要用于顯示魚被打死后由于殺死該魚所得分數。

例如:Fish類的結構如下:

public class Fish extends SteeredVehicle{

public static const MOVE_WANDER:int=1;//魚的游動形式之一,自由流動,是最常見的游動形式

public static const MOVE_PATH:int=2;//魚的游動形式之一,沿固定路徑游動

public static const MOVE_FORWARD:int=3;//魚的游動形式之一,魚一直向前游動,速度不變

private var_type:int=0; //魚的類型

private var_moveMode:int=MOVE_WANDER;//魚的游動形式

private var_blood:int=1; //魚的生命值

private var_pathId:int=0; //在MOVE_PATH模式下所遵從的路徑序號

case MOVE_FORWARD: //什么代碼都不用寫,執行完update()后自然會向前

另外,我們還編寫了用于集中管理數據的類——Data類。該類有常量、變量和方法,全部都是靜態的。常量有表示舞臺高度和寬度的常量、代表各種模式編號的常量。變量主要用于容納從data.xml文件中讀入的數據,這些數據包括各種魚的參數數據、各種模式的參數數據、路徑的坐標數據、魚陣的坐標數據。方法只有一個getRandomFishId,用于取得一個代表魚種類的整數,這個整數的出現規律是按照fishChances數組中的概率來分布的:

public class Data {

public static const STAGE_WIDTH:int=800;

public static const fishChances:Array=new Array();

……//定義各種參數

/*取得一個代表魚種類的整數,這個整數的出現規律是按照fishChances數組中的概率來分布的*/

4.使用AS3.0編程技術的亮點

(1)在游戲中,我們引入XML文件管理數據,實現程序與數據之間的松耦合。魚特征參數、模式特征參數、水手描述數據、魚游動路徑坐標數據、魚陣坐標數據等都放在data. xml文件中,使這些數據的增加、修改、刪除都十分方便,不需修改源代碼也不需重新編譯。

(2)碰撞檢測的技術突破。每一幀都需要進行魚和子彈的碰撞檢測,用的是兩重循環逐個檢查的方法。如果在飛的子彈有m顆,魚有n條,則算法的時間復雜度是O(mn)量級的。在發現碰撞之后,會釋放漁網,這時需要檢測漁網與所有的魚是否會發生碰撞。如果處理不好,時間復雜度會變成O(mn2)量級,降低運行效率。為了控制時間復雜度,在發現一次碰撞,釋放一個漁網之后,馬上退出上述的兩重循環,使時間復雜度控制在O(mn)+O(n)即仍是O(mn)量級。這樣處理之后,在一幀中最多只會釋放一個漁網。

(3)魚的游動采用了人工智能范疇的轉向行為算法。所采用的轉向行為算法基于力學模型——力作用于物體產生加速度,加速度引起速度的逐漸改變,因此速度不會驟然劇變,從而魚的游動能夠平順自然。

5.結語

在游戲設計過程中,我們領略了AS3.0強大的功能帶來的獨特魅力,其封裝性、靈活性給開發工作帶來極大的便利,也使得開發者在更多方面的發揮不受限制。隨著網絡的不斷發展與電子產品的增多,Flash游戲在各種終端的普及率越來越高,也使得AS技術的應用更加廣泛,在網頁游戲開發的主流地位也進一步得以鞏固。

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

[2]朱冬玲.用AS3和Java開發競賽型多機游戲[J].福建電腦,2012,7.

[3]adobe公司.adobe flash action script 3.0中文版經典教程[M].北京:人民郵電出版社,2009.

[4]王愉.付震蓬.羅慧.隋涌.flash互動游戲的開發與設計[J].北京印刷學院報,2006.8.

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

Design and Development of Flash Game Based onAS3.0

Peng Enuo
(Guangzhou Public Utility Technician College,Guangzhou 510100,Guangdong)

tract】 Flash is applied widely in web game development because of its flexibility,convenience and small-size file.The scripting language Active Script 3.0 is fully object-oriented,which is more extensible,more readable,and has higher performance comparing to the old version.This paper uses AS 3.0 to develop the"sailor fishing"web game,and expounds the design idea from the functional analysis,the game process and the key technology.

words】flash game;AS3.0 technology;object-oriented;game development

彭婀娜,女,湖南攸縣人,講師,研究方向:計算機科學與技術。

猜你喜歡
游戲
做游戲
夜間游戲
游戲
送信游戲
數獨游戲
瘋狂的游戲
飛碟探索(2016年11期)2016-11-14 19:34:47
爆笑游戲
第八章直接逃出游戲
小學科學(2015年7期)2015-07-29 22:29:00
第八章 直接逃出游戲
小學科學(2015年6期)2015-07-01 14:30:14
游戲五計算
主站蜘蛛池模板: 久久免费视频6| 亚洲综合色在线| 日韩国产高清无码| 手机精品福利在线观看| 一边摸一边做爽的视频17国产| 欧美精品啪啪| 国产成人亚洲精品无码电影| 三上悠亚在线精品二区| 色哟哟色院91精品网站| 成人免费一区二区三区| 久久99国产精品成人欧美| Aⅴ无码专区在线观看| 亚洲有码在线播放| 嫩草在线视频| 热这里只有精品国产热门精品| 国产手机在线观看| 最新国产在线| 久久中文字幕2021精品| 伊在人亚洲香蕉精品播放| 波多野结衣一二三| 依依成人精品无v国产| 欧美午夜理伦三级在线观看| 国产人人乐人人爱| 中文字幕佐山爱一区二区免费| 亚洲网综合| 97se亚洲综合在线韩国专区福利| 成人午夜久久| 久久黄色影院| 无码人妻热线精品视频| 亚洲色无码专线精品观看| 东京热av无码电影一区二区| 国产精品亚洲精品爽爽| 又污又黄又无遮挡网站| 国产精品99在线观看| 国产极品美女在线| 四虎影视永久在线精品| 国产精品女熟高潮视频| 福利国产微拍广场一区视频在线| 青青操国产视频| 高清不卡毛片| 91激情视频| 欧美成a人片在线观看| 中文字幕调教一区二区视频| 色偷偷一区| 国产精品偷伦在线观看| 91视频99| 久久无码高潮喷水| 97在线碰| 无遮挡一级毛片呦女视频| 熟妇丰满人妻av无码区| 99re视频在线| 日韩视频免费| 国产av一码二码三码无码| 日韩一级二级三级| 欧美亚洲国产一区| 野花国产精品入口| 亚洲综合婷婷激情| 伊人天堂网| 国产最爽的乱婬视频国语对白| 久久免费视频播放| 成人字幕网视频在线观看| 国产91丝袜在线观看| 不卡午夜视频| 亚洲欧美日本国产专区一区| 国产精品jizz在线观看软件| 亚洲精品无码久久久久苍井空| 中文纯内无码H| 国产特一级毛片| 伊人久久精品无码麻豆精品| 五月天久久综合国产一区二区| 婷婷六月综合网| www.亚洲国产| 久久久久免费精品国产| 午夜人性色福利无码视频在线观看 | 狂欢视频在线观看不卡| 另类欧美日韩| 亚洲成人手机在线| 91在线中文| 欧美天堂久久| 亚洲码一区二区三区| 欧美成人精品高清在线下载| 国产第一页免费浮力影院|