创建一个 Eclipse 游戏插件,第 2 部分: 构建和发射 BB 枪
2009-12-14 00:00:00 来源:WEB开发网
清单 7. drawScene 方法 protected void drawScene() {
super.drawScene();
this.grip.adjust();
pow.draw();
GL.glTranslatef(.2f, -.2f, 9.5f);
for(int i = 0; i < bullets.length; i++)
if(bullets[i] != null)
bullets[i].draw();
GL.glTranslatef(-.2f, .2f, 2.5f);
gun.draw();
GL.glTranslatef(-Bug.RADIUS*bugCount, 0.0f, -20f);
for(int i = 0; i < bugs.length; i++){
bugs[i].draw();
GL.glTranslatef(2*Bug.RADIUS, 0.0f, 0.0f);
}
}
请注意,单词 Pow! 是根据原点绘制的。所以我们可以稍做转换,把原点放在枪口末端。然后再移动原点,绘制枪。另一个转换把原点放在绘制虫子的地方。我们在一行中,从左到右绘制虫子。在绘制了每个虫子之后,就把原点移动 2*Bug.RADIUS,这样虫子就不会一个一个叠在一起了。下面,定义 dispose 方法。
在退出时清除对象
当 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();
}
更多精彩
赞助商链接