游戏引擎教学版软件开发研究.docVIP

游戏引擎教学版软件开发研究.doc

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
游戏引擎教学版软件开发研究

游戏引擎教学版软件开发研究   摘要: 游戏成为了信息娱乐市场的热门,越来越多的技术人员从事游戏开发行业。本文首先对游戏引擎技术进行了概述,然后选择3个代表性的游戏引擎进行对比分析,最后讨论了游戏引擎教学版软件的实现思路。   关键词:游戏引擎;游戏开发;Unity3D;Cocos2d;Libgdx   中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2018)09-0216-02   1 游戏引擎技术概述   游戏技术已经成为信息技术的主流分支之一,越来越多的人员投入了游戏开发行业。由于游戏市场的激烈竞争,对游戏开发的周期越来越高,当前主要的手段是通过游戏引擎来进行游戏开发。游戏引擎技术对复杂的底层技术进行了封装,为程序员提供了各种功能强大的调用接口,甚至可视化的开发工具,大大降低了游戏开发的难度和?r间,使开发人员能够快速地进行游戏开发。   目前市场上有众多的游戏引擎,它们当中有商用收费的,也有免费开源的;架构上有重量级的,也有轻量级的,其中Unity3D、Cocos2d、Libgdx等游戏引擎较为常见。在日常的教学中,使用教学用途的游戏引擎十分有必要,这样能够让学员系统地掌握游戏开发的有关理论知识。   2 游戏引擎技术比较   游戏技术涉及的技术领域较多,例如资源管理、网络引擎、I/O库、图形数学库、物理引擎、渲染器、声音引擎、实体模块、动画系统、场景管理、特效支持、控制逻辑框架、游戏GUI和游戏开发工具等,因此不同类型的游戏引擎所提供的功能、性能也是不尽相同的,表1选取了三个典型的游戏引擎进行对比。   3 系统实现   3.1功能介绍   游戏引擎教学版软件主要提供了12个功能模块,分别为几何体构造、颜色、视图、纹理、场景、线性代数、动画、碰撞检测、OpenGL、物理引擎、游戏演示、帮助(见图1),这些功能模块通过不同的角度,以可视化的方式展示游戏开发所需要的相关技术以及技术原理。   3.2实现代码示例   公共基础代码(配置上相关的注释):   public void reshape(GLAutoDrawable drawable, int x, int y, int width,int height) {   /*   * OpenGL中的gl库是核心库,glu是实用库,glut是实用工具库,gl是核心,glu是对gl的部分封装,glut是OpenGL的跨平台   * 工具库, gl中包含了最基本的3D函数,而glu似乎对gl的辅助,如果算数好,不用glu的情况下,也是可以做出同样的效果。   * glut是基本的窗口界 面,是独立于gl和glu的,如果不喜欢用glut可以用MFC和Win32窗口等代替,但是glut是跨平台的,   * 这就保证了我们编出的程序是跨平台的, 如果用MFC或者Win32只能在windows操作系统上使用。   * 选择OpenGL的一个很大原因就是因为它的跨平台性,所以我们可以尽量地使用glut 库   */   final GL2 gl = drawable.getGL().getGL2();   final GLU glu = GLU.createGLU(gl);   if (height = 0) // avoid a divide by zero error!   height = 1;   final float h = (float) width / (float) height;   gl.glViewport(0, 0, width, height);   gl.glMatrixMode(GL2.GL_PROJECTION);   gl.glLoadIdentity();   glu.gluPerspective(45.0f, h, 1.0, 20.0);   gl.glMatrixMode(GL2.GL_MODELVIEW);   gl.glLoadIdentity(); }   //清除屏幕   public static void glClear(GL2 gl) {   gl.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT);}   特定功能代码,以绘制带有纹理的六面体为例:   public void display(GLAutoDrawable drawable) {   //采用纹理贴图   int texture = Picture.showTexture(gl, data/WenLi.png);   final GL2 gl = drawable.getGL().getGL2()

文档评论(0)

bokegood + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档