快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
建Eclipse游戏插件,第2部分: 构建和发射****(10) 时间:2011-02-10 IBM Tyler Anderson

我们现在可以可视化 P。它有五个点。glVertex2f 方法接受两个值,第一个是 x 值,第二个是 y 值。从底部的点开始,从原点(0, 0)向上移动到达(0, 3),然后向右移动到达(1.5, 3)。然后向下到字符中间(1.5, 1.5),最后到达字符左侧的中部(0, 1.5)。其他两个字符 O 和 W 也采用同一原理。请看一下文本,如图 6 所示。

图 6. 添加文本

形状现在完成了!后面几节将向前面创建的形状添加特性,先从纹理开始。

向**添加纹理

纹理和纹理图的使用是 OpenGL 中非常酷的一个特性。在这里,我们要使用一个随机图,它是用随机函数创建的,可以让纹理看起来就像电影 The Ring 中经常看到的电视屏幕一样,惟一的不同是这个纹理是红色的。首先,我们创建随机纹理图。

创建随机纹理图

可以在纹理图中使用图片,但是对于这份教程,将使用随机纹理。这个纹理将模拟铁色的枪。请在 Gun 类中再定义一些变量和常数,如清单 14 所示。

清单 14. Gun 类中添加的变量

private static final int texWidth = 25;      private static final int texHeight = 25;      private static byte[] data = new \      byte[texWidth*texHeight*3];      private static final int[] TEXTURES = {1, 2};      static{        for(int i = 0; i < data.length; i++){        byte randomVal = (byte)(Math.random() * 255d);        data[i] = randomVal;        }      }

宽度和高度决定纹理图的宽和高度。data 数组的长度也必须乘上 3,因为每个像素都有三个值 —— 分别代表红、绿、蓝三色。TEXTURES 数组定义了我们创建的纹理。第一个是我们要创建的随机纹理,第二个不是纹理,将正常地显示对象。static{} 语句中的语句创建纹理图的随机数据。

创建Eclipse游戏插件,第2部分: 构建和发射****(11)

时间:2011-02-10 IBM Tyler Anderson

生成和绑定纹理

要使用纹理,必须生成并绑定纹理。方法是添加纹理方法到 Gun 类,如清单 15 所示。

清单 15. 定义纹理特性

public void texture(){        GL.glGenTextures(2, TEXTURES);        GL.glBindTexture(GL.GL_TEXTURE_2D, TEXTURES[0]);        GL.glTexEnvf(GL.GL_TEXTURE_ENV, GL.GL_TEXTURE_ENV_MODE,               GL.GL_MODULATE);        GL.glTexParameteri(GL.GL_TEXTURE_2D,                  GL.GL_TEXTURE_MAG_FILTER, GL.GL_LINEAR);        GL.glTexParameteri(GL.GL_TEXTURE_2D,                  GL.GL_TEXTURE_MIN_FILTER, GL.GL_LINEAR);        GL.glTexParameterf(GL.GL_TEXTURE_2D,                  GL.GL_TEXTURE_WRAP_S, GL.GL_REPEAT);        GL.glTexParameterf(GL.GL_TEXTURE_2D,                  GL.GL_TEXTURE_WRAP_T, GL.GL_REPEAT);        GLU.gluBuild2DMipmaps(GL.GL_TEXTURE_2D, 3, texWidth,                   texHeight, GL.GL_RGB,                   GL.GL_UNSIGNED_BYTE, data);      }

首先,通过传递 TEXTURES 数组,生成两个纹理。现在,两个纹理的句柄由 TEXTURES 数组中的值定义。通过绑定定义了 TEXTURES[0] 纹理。然后指定纹理的不同特性和参数。Modulate 指定是否使用颜色来决定与阴影有关的纹理值。WRAP_S 和 WRAP_T 指定是否重

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