创建一个 Eclipse 游戏插件,第 2 部分: 构建和发射 BB 枪
2009-12-14 00:00:00 来源:WEB开发网接下来,要定义 GameScene 的类变量。
类变量
有几个形状需要创建,现在就声明它们。可以为它们创建空的静态类,这样 Eclipse 集成开发环境(IDE)就不会用可怕的红色花体字高亮显示所有代码。继续定义 GameScene 类,如清单 3 所示。
清单 3. 定义类变量public class GameScene extends GLScene {
private static final float[][] COLOR = {
{1.0f, 1.0f, 0.0f, 0.7f},
{0.0f, 1.0f, 0.0f, 0.7f},
{0.0f, 0.0f, 1.0f, 0.7f},
{1.0f, 0.0f, 1.0f, 0.7f},
};
private SceneGrip grip;
private Gun gun;
private Bug[] bugs;
private int bugCount;
private Bullet bullets[];
private Pow pow;
还定义了一个 color 数组。在 OpenGL 中,颜色被定义为有 4 个元素的浮点数组。第一个元素定义红色,第二个是绿色,第三个是蓝色。要记住这个顺序,只要想 “RGB” 即可。作为空类的示例,下面就是空的 Gun 类的样子:
Class Gun extends CompiledShape{ }
现在转到 GameScene 类。
构造函数
需要初始化这个类。SceneGrip 类也要得到初始化,它负责当前视图和旋转信息。当在 OpenGL 画布上看到第一个对象的时候,这就清楚了。现在定义 GameScene 类的构造函数,如清单 4 所示。
清单 4. GameScene 类的构造函数public GameScene(Composite parent) {
super(parent);
this.grip = new SceneGrip(this);
this.grip.setOffsets(-3.25f, 3.25f, -30.5f);
this.grip.setRotation(45.0f, -30.0f);
this.getCanvas().addMouseListener(this.grip);
this.getCanvas().addMouseMoveListener(this.grip);
this.getCanvas().addListener(SWT.MouseWheel, this.grip);
this.getCanvas().addKeyListener(this.grip);
}
更多精彩
赞助商链接