快速业务通道

创建Eclipse游戏插件,第2部分: 构建和发射BB枪 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
spose 方法。

创建Eclipse游戏插件,第2部分: 构建和发射BB枪(6)

时间:2011-02-10 IBM Tyler Anderson

在退出时清除对象

当 Eclipse 或视图关闭时,需要取消对象的分配。这是 dispose 方法的用途。请如清单 8 所示那样定义它。

清单 8. 清除对象

public void dispose() {      GLU.gluDeleteQuadric(Gun.QUADRIC);      GLU.gluDeleteQuadric(Bullet.QUADRIC);      GLU.gluDeleteQuadric(Bug.QUADRIC);      pow.dispose();      this.gun.dispose();      for(int i = 0; i < bugs.length; i++)        bugs[i].dispose();      for(int i = 0; i < bullets.length; i++)        bullets[i].dispose();      super.dispose();    }

取消二次曲面(一个曲线或平面,它在 Cartesian 座标中的公式属于第二阶)的分配,清除每个对象,然后清除父类。下面开始创建形状。

创建形状

OpenGL 全权负责创建形状。在这里,我们创建虫子、BB 枪、BB 弹和一些文本。

创建虫子

虫子是简单的球体,使用轮换的颜色。要创建形状,请在 GameScene 类的 dispose 方法后面添加以下静态类,如清单 9 所示。

清单 9. 创建虫子

private static class Bug extends CompiledShape {      public static final float RADIUS = 1.7f;      public static int QUADRIC;      public float[] color;      public Bug(float[] color) {        this.color = color;        GL.glNewList(this.getListIndex(), GL.GL_COMPILE);          GL.glBegin(GL.GL_QUADS);            GL.glColor4fv(color);            bug();          GL.glEnd();        GL.glEndList();      }      public void bug(){        GL.glRotatef(-90.0f, 1.0f, 0.0f, 0.0f);        GLU.gluSphere(Bug.QUADRIC, RADIUS, 100, 100);        GL.glRotatef(90.0f, 1.0f, 0.0f, 0.0f);      } ...    }

这个类定义了一个半径,并保存从 initGL 方法传递过来的颜色。形状得到自己的对象列表,这些对象包含形状的所有结构(线条、球体等等)。虫子只由球体构成。请看一眼虫子,如图 3 所示。

图 3. 绘制虫子

创建Eclipse游戏插件,第2部分: 构建和发射BB枪(7)

时间:2011-02-10 IBM Tyler Anderson

下面,看一些需要创建的更复杂的东西:枪。

为枪设计结构

枪的创建有些困难,因为它包含多个顶点。请定义枪的顶点,如清单 10 所示。

清单 10. 枪的顶点

private static class Gun extends CompiledShape {      public static int QUADRIC;      private static float[] RED =         new float[] {1f, 0.0f, 0.0f, 1.0f};      private static float val1 = 0f, val2 = .5f,                 val3 = -.5f, val4 = -1.5f, val5 = -2f;      private static float[] v1 = {val1, val1, val1};      private static float[] v2 = {val1, val1, val3};      private static float[] v3 = {val1, val1, val5};      private static float[] v4 = {val2, val1, val5};      private static float[] v5 = {val2, val3, val5};      private static float[] v6 = {val1, val3, val5};      private static float[] v7 = {val2, val3, val3};      private static float[] v8 

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号