- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于Java3D坦克游戏设计和实现
基于Java3D坦克游戏设计和实现
摘要:探讨和分析了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的参数。
您可能关注的文档
最近下载
- 内控系列之审计各循环访谈提纲.docx VIP
- 材料价格调差申请表(含计算公式).docx VIP
- 驾考科目一知识点.doc VIP
- 北师版九年级数学下册培优精品讲义(最新版;可直接打印).doc VIP
- 第9课发展全过程人民民主(课件+视频)(高教版2023·基础模块).pptx VIP
- 一般建厂流程图..doc
- 2025最新职业卫生健康考试题库(附含答案).pdf VIP
- 建筑装饰设计收费标准(2014年版)(完整).pdf VIP
- 2025-2030中国军事模拟行业市场发展趋势与前景展望战略研究报告.docx VIP
- 领取!吴蓬《104集芥子园谱视频教程》 《芥子园画谱》高清彩色电子版!.pdf VIP
原创力文档


文档评论(0)