快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
public static int QUADRIC;      public static final float RADIUS = .1f;      public static final float LENGTH = .5f;      private static float[] WHITE =         new float[] {1.0f, 1.0f, 1.0f, 1.0f};      public Bullet() {        GL.glNewList(this.getListIndex(), GL.GL_COMPILE);          GL.glColor4fv(WHITE);          GL.glBegin(GL.GL_QUADS);            GLU.gluCylinder(Bullet.QUADRIC,                    RADIUS, RADIUS, LENGTH, 32, 1);            GLU.gluDisk(Bullet.QUADRIC, 0.0, RADIUS, 32, 32);            GL.glTranslatef(0.0f, 0.0f, LENGTH);            GLU.gluDisk(Bullet.QUADRIC, 0.0, RADIUS, 32, 32);            GL.glTranslatef(0.0f, 0.0f, -LENGTH);          GL.glEnd();        GL.glEndList();      }    }

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

时间:2011-02-10 IBM Tyler Anderson

BB 弹需要容易看到,所以把它们做成白色。请注意清单 12 中使用了 translate 方法。一旦绘制了圆柱,就必须在圆柱的底部画一个圆盘,然后转换到圆柱的顶部,在圆柱的顶部画一个圆盘,然后再转换回下面,以便不会离其他对象太远。请看一下在枪末端绘制的 BB 弹,如图 5 所示。

图 5. 在枪口显示的 BB 弹

现在向画面上添加一些文本。

添加文本

添加文本有多种方法。最简单的方法是使用线条(line strip),它们是通过一个挨一个地定义顶点来连续绘制的直线,类似 “连点” 游戏。通过定义如清单 13 所示的类可以绘制文本。

清单 13. 绘制文本 “POW”

private static class Pow extends CompiledShape{      private static float[] WHITE =         new float[] {1.0f, 1.0f, 1.0f, 1.0f};      public Pow(){        GL.glNewList(this.getListIndex(), GL.GL_COMPILE);          GL.glColor4fv(WHITE);          // P           GL.glBegin(GL.GL_LINE_STRIP);            GL.glVertex2f(0f, 0f);            GL.glVertex2f(0f, 3f);            GL.glVertex2f(1.5f, 3f);            GL.glVertex2f(1.5f, 1.5f);            GL.glVertex2f(0f, 1.5f);          GL.glEnd();          // O           GL.glTranslatef(2f, 0f, 0f);          GL.glBegin(GL.GL_LINE_STRIP);            GL.glVertex2f(0f, 0f);            GL.glVertex2f(0f, 3f);            GL.glVertex2f(1.5f, 3f);            GL.glVertex2f(1.5f, 0f);            GL.glVertex2f(0f, 0f);          GL.glEnd();          // W           GL.glTranslatef(2f, 0f, 0f);          GL.glBegin(GL.GL_LINE_STRIP);            GL.glVertex2f(0f, 3f);            GL.glVertex2f(.375f, 0f);            GL.glVertex2f(.75f, 1.5f);            GL.glVertex2f(1.125f, 0f);            GL.glVertex2f(1.5f, 3f);          GL.glEnd();          GL.glTranslatef(-4f, 0f, 0f);        GL.glEndList();      }    }

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号