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

基于Java3D的坦克游戲的設計和實現

2011-01-01 00:00:00易萬程
計算機時代 2011年1期

摘要:探討和分析了Java3D技術,設計和實現了一個基于Java3D的坦克游戲。實驗證明該游戲具有良好的交互性和視覺效果。

關鍵詞:三維視覺;Java3D;坦克游戲;交互性;視覺效果

0、引 言

近幾年來,3D硬件繪圖技術的突破,使得實時描繪的畫面越來越精致,3D游戲更多元化,更逼近真實世界,因此在游戲產業中,3D游戲已經逐漸取代2D游戲而成為游戲市場的主流,即使是網絡游戲,也慢慢趨向3D化。雖然開發3D游戲存在著諸如技術更新快、程序人員與美工的配合要求高、各廠商所生產的3D硬件規格和特性不同、失敗率高等問題,但不可否認,3D游戲己是大勢所趨。目前Java3D在游戲開發領域已經占到了重要的地位,可應用在三維動畫、三維游戲、機械CAD等多個領域,在許多情況下已成為游戲開發者的首選。Java3D也是目前在Interact上實現三維動畫的主要手段之一。

Java3D是建立在Java2基礎之上的,Java語言的簡單性使Java3D的推廣有了可能。Java3D給我們編寫三維應用程序提供了一個非常完善的API,它可以幫助我們生成簡單或復雜的形體。因此,利用Java3D設計一個具有互動性的坦克射擊游戲,對于三維技術的探索和研究,具有實際意義。

1、Java3D介紹

Java3D是由SUN公司在1998年年底正式推出的交互式三維圖形應用編程接口。它的思想來源于現存的各種圖形API及多種新技術,它包含了實現三維交互真實感圖形的基本類和接口,用于實現三維動畫的生成及多媒體程序和交互程序的編寫,是Java語言在三維領域的擴展。利用Java3D提供的API,可以編寫出基于網頁的三維動畫、各種計算機輔助教學軟件和三維游戲等等。Java3D的這種體系結構既可以使其開發的程序“到處運行”,又使其能充分利用系統的三維特性。

Java3D的數據結構采用Scene Graphs Structure,這種靈活的樹狀結構與顯示列表多少有些相似之處,但更具有健壯性。Java3D的場景圖由Java3D在計算機上顯示出三維效果,顯示內存不斷接受JavaSD運行的最新結果并直接顯示出來,從而產生三維動畫效果。

2、系統的設計與分析

2.1基本形體的生成

Java3D編程過程中,三維形體是重要的處理對象。可以用兩種方式生成Java3D所需要的三維形體:一是利用Java3D提供的用于編寫點、線、面的類生成點、線、面對象;二是通過調用外部其他格式的三維圖形文件,生成復雜的三維形體對象。

(1)面的生成

Java3D的點、線、面時,需要給出頂點坐標數組、頂點坐標對應的顏色數組等內容。輸入這些內容需要用到GeometryArray提供的多個方法,因為所有的點、線、面類都是GeometryArray的子類或孫類,因而都繼承了它所有的方法。Java3D程序中的面有多個屬性,可通過PolygonAttributes對象設定具體的屬性。

Java3D可以通過變換生成三角形和四邊形的面,Tiangle為三角形面,Quad為四邊形面。

(2)形體組合編程

Java3D應用程序中,一般都擁有多個三維形體,需要對其進行合理的組合,這樣才能對指定的形體進行幾何變換,對指定的形體進行某種操作,生成所需要的交互式三維應用程序或三維動畫。

Java3D為此提供了多個用于形體組合的對象。組合各種對象所用的是Group及其子孫類。

Java3D場景圖的底部為Virtual Universe。每一個場景圖只能有一個VirtuaUniverse,上面為Locale。

Group類型對象只能有一個父類,對于BranchGroup對象來說是Locale。而其他的Group類型的對象,則可以將其他Group類型的對象做為父類。如TransformGroup對象可以將Group對象做為父類,也可以將另一個TransformGroup對象做為父類。Group類型的對象可以有任意多的子類。

2.2鍵盤輸入控制

Java通過一系列的監聽器(listener)方法提供一種與用戶交互的方式。向Java輸入想要監聽鍵盤輸入事件的指令,Java會把鍵盤事件發送給監聽器方法,此時,可以檢查按碼來判斷是哪個鍵被按下或者釋放。Java通知程序某一個按鍵被按下的方法是通過程序所使用的接口實現的。

KeyListener接口監聽鍵盤事件,并且把事件發送給程序中所實現的回調方法(callback method)。這些方法叫做keyPressed、keyRelesed和keyTyped,他們都只有一個名為KeyEvent的參數。

編寫一個使用KeyListener的程序時,需要使用implements關鍵字來修改程序的類定義:

pubHc class KeyboardTest extends Applet implementsKeyListener。

2.3實體元素的碰撞檢測

本游戲中有坦克與坦克之間的碰撞檢測,坦克與障礙物之間的碰撞檢測,炮彈與坦克之間的碰撞檢測,炮彈與障礙物之間的碰撞檢測。

當坦克碰到障礙物或其他坦克時將不能再繼續往前移動;當炮彈打中障礙物時炮彈爆炸,障礙物不損;當主體坦克炮彈打中敵對坦克時,敵對坦克爆炸且ENEMY數量減少1格;當敵對坦克炮彈打中主體坦克時,主體坦克ENERGY減少1格。

當主體坦克發出子彈打中敵對坦克或障礙物,發生碰撞沖突時,播放聲音效果co1lide.au。其主要代碼為:

fCollldeSnd=getAudioClip(getCodeBase(),〝collide.au〞):

若打中的是敵對坦克,敵對坦克發生爆炸,還會播放聲音效果explode.au。其主要代碼為:

fExplodeSnd=getAudioClip(getCodeBase(),〝explode.au〞):

當主體坦克與敵對坦克或障礙物發生碰撞沖突時,播放聲音效果veollide.au。其主要代碼為:

fViewerCollisionSnd=getAudioClip(getCodeBase(),〝vcollide.au〞):

3、結束語

本文結合了Java3D的特點,利用Java3D設計了一個坦克射擊游戲,對Java3D的系統結構和開發本游戲所涉及到的關鍵技術作了詳細的介紹,確定了游戲需要實現的總體功能,論述了實現方法。該游戲的設計方案可供3D游戲的開發者參考。

參考文獻:

[1]張金釗,張金摘,張金銳,虛擬現實三維立體網絡程序設計語言[M],清華大學出版社,2004

[2]楊紅,楊巍巍,陳元輝,基于VRML的虛擬工廠場景構建技術研究[J],石油化工設備,2008,11(2):20-24

[3]何同林,張緒冰,基于Java3D三維虛擬場景的研究如,計算機應用,2007,14(11):24-26

[4]王學良,王阿川,Java3D在基于WEB技術的三維森林防火上的應用探討,林業勞動安全,2008,15(10):29-37

[5]魏東,陳鋼,基于Java3D的地質資源的三維模擬[J],計算機與現代化,2008,11(7):28-34

[6]于潔,基于Java3D的機器人網絡仿真系統構建,機電技術,2007,14,46-56

主站蜘蛛池模板: V一区无码内射国产| 日韩免费毛片视频| 国产91视频免费观看| 国产成人无码久久久久毛片| 精品国产乱码久久久久久一区二区| 亚洲成人动漫在线观看| 欧美日韩国产成人在线观看| 在线播放91| 亚洲成a人在线播放www| 狼友视频国产精品首页| 国产精品福利一区二区久久| 三级国产在线观看| 在线观看国产精品一区| a毛片在线播放| 国内精品伊人久久久久7777人| 中文国产成人久久精品小说| 天天综合网亚洲网站| 亚洲欧美成人| 丝袜亚洲综合| 亚洲国产成人无码AV在线影院L| 国产欧美视频在线| 欧类av怡春院| 亚洲国产理论片在线播放| 91精品国产无线乱码在线| 国产成人精品优优av| 亚洲熟妇AV日韩熟妇在线| 国产在线无码一区二区三区| 1769国产精品视频免费观看| 大香伊人久久| 国产人人乐人人爱| 一本一本大道香蕉久在线播放| 国产v精品成人免费视频71pao| 国产亚洲视频播放9000| 免费一级α片在线观看| 一本久道热中字伊人| 国产一级一级毛片永久| 国产成人毛片| 亚洲最大看欧美片网站地址| 一级毛片无毒不卡直接观看| 久久久久夜色精品波多野结衣| 亚州AV秘 一区二区三区| 日韩欧美高清视频| 亚洲区一区| 国产精品成人一区二区不卡| 欧美中出一区二区| 色婷婷亚洲综合五月| 国内精品久久久久鸭| 先锋资源久久| 99国产精品免费观看视频| 国产无人区一区二区三区| 欧美成人午夜影院| 囯产av无码片毛片一级| 国产精品无码作爱| www.国产福利| 中文字幕首页系列人妻| 香蕉久久永久视频| 日本免费a视频| 国产精品无码AⅤ在线观看播放| 国产福利2021最新在线观看| 在线观看网站国产| 中文字幕欧美日韩高清| 99精品热视频这里只有精品7 | 丁香婷婷久久| 2022国产无码在线| 欧洲亚洲一区| 色婷婷国产精品视频| 日本一区二区不卡视频| 国产成人a在线观看视频| 热久久国产| 丁香五月亚洲综合在线| 无码一区二区波多野结衣播放搜索| 人妻中文久热无码丝袜| 99久久人妻精品免费二区| 久久黄色小视频| 一区二区三区四区日韩| 91在线一9|永久视频在线| 亚洲欧美日韩另类在线一| 福利一区在线| 伊人AV天堂| 97久久免费视频| 999国内精品视频免费| 伊伊人成亚洲综合人网7777|