我正在开发基于Java
的游戏,我需要为一些基本形状建模。我目前的实现在相同维度的形状上有很多重复的属性。
示例,我有一个Interactive
Rectangle
参与Box2d
世界,我有一个Background
Rectangle
,但Box2d
没有参与世界。但是这两个类都需要定义width
和height
。
有谁知道更好的方法来建模这些数据?
目前的实施..
模拟新实现的想法,但Interactive
和Background
只能从一个父级继承。
我拥有Interactive
和Background
类的原因是我可以循环访问我的对象,如下所示。
for (Background bgShape : getLevel.getBGShapes()){
bgShape.draw(
gl2,
new Vec3(
bgShape.getPosition().x,
bgShape.getPosition().y,
bgShape.getPosition().z));
}
for (Body body = world.getBodyList(); body != null; body = body.getNext()) {
Interactive iaShape = (Interactive) body.getUserData();
iaShape.draw(
gl2,
new Vec3(
body.getPosition().x,
body.getPosition().y,
0.0f));
}
同样Interactive
类定义了Background
中不存在的一些属性,
public abstract class InteractiveShape extends Shape {
private String bodyType;
private float density;
private float friction;
private float restitution;
private boolean fixedRotation;
private Body body;
}
答案 0 :(得分:1)
Rectangle
实际上是一个形状,但有额外的数据(宽度和高度)Iteractive
和Background
是必要的,除非他们添加任何其他操作(从图片中他们不添加)。