好吧所以我有一个抽象类。如下所示。
public abstract class GameObject {
// VARIABLES //
protected float x = 0;
protected float y = 0;
}
*我实际上比这更多,但这就是所需要的。
我想要做的是改变从GameObject扩展的所有类的x和y。 所以,如果我做了像
这样的事情x += 1;
y += 1;
然后,每个扩展GameObject的类都有变量x和y = 1。
我将如何做到这一点?
答案 0 :(得分:4)
你不能像现在这样做。它们是实例变量,这意味着GameObject
的每个实例都有自己的变量副本。如果它们是静态变量,那么所有实例都将共享它们。
答案 1 :(得分:0)
我建议在渲染游戏的类中使用两个新变量,例如: viewX
和viewY
,您在绘制对象之前将其添加到对象的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;
}