更改抽象变量

时间:2014-01-03 02:10:25

标签: java

好吧所以我有一个抽象类。如下所示。

public abstract class GameObject {  
// VARIABLES //
protected float x = 0;
protected float y = 0;
}

*我实际上比这更多,但这就是所需要的。

我想要做的是改变从GameObject扩展的所有类的x和y。 所以,如果我做了像

这样的事情
x += 1;
y += 1;

然后,每个扩展GameObject的类都有变量x和y = 1。

我将如何做到这一点?

2 个答案:

答案 0 :(得分:4)

你不能像现在这样做。它们是实例变量,这意味着GameObject的每个实例都有自己的变量副本。如果它们是静态变量,那么所有实例都将共享它们。

答案 1 :(得分:0)

我建议在渲染游戏的类中使用两个新变量,例如: viewXviewY,您在绘制对象之前将其添加到对象的x和y中。通过修改这两个变量,您可以在不修改大量数据的情况下移动所有对象,例如像这样:

float viewX = 0, viewY = 0;

void render() {
    for (GameObject o : gameObjects)
        draw(o.image, o.x + viewX, o.y + viewY);
}

void setCamera(float x, float y) {
    viewX = x;
    viewY = y;
}