今天我决定使用Java制作一款自上而下的游戏。我已经创建了窗口并包含了Jframe。但我发现在Rectagle GetBounds()中创建GameObject有问题; 。我不知道究竟是什么,因为我是初学者,我知道java的基础知识:(。
如果有人可以帮我解决这个问题,我会给出下面的代码示例:
package example;
import java.awt.Graphics;
import java.awt.Rectangle;
public abstract class GameObject {
protected int x, y;
protected float velX = 0, velY = 0;
public GameObject(int x, int y) {
this.x = x;
this.y = y;
}
public abstract void tick();
public abstract void render(Graphics g);
public abstract void Rectangle getBounds();
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public float getVelX() {
return velX;
}
public void setVelX(float velX) {
this.velX = velX;
}
public float getVelY() {
return velY;
}
public void setVelY(float velY) {
this.velY = velY;
}
}
代码导致以下错误:
字段Rectangle的非法修饰符;只有公共,受保护, 私人,静态,最终,瞬态&允许使用volatile返回类型 因为该方法缺少语法错误,插入“;”去完成 FieldDeclaration此方法需要正文而不是分号 void是变量Rectangle
的无效类型
注意:我正在使用Java SE-8和Eclipse Oxigen。
答案 0 :(得分:0)
如果要创建GameObject的实例(如下所示:new GameObject()),则GameObject类不能是抽象的。
您无法创建抽象类的实例。您只能创建一个继承自抽象类的类,并实现所有或某些方法。
在这里你可以实现方法tick(),render(Graphics g)和getBounds(),或者创建一个继承自GameObject的新类(公共类GameObjectImp扩展GameObject)并在那里实现方法。