我正在开发一个基于 Java
的游戏,我需要对一些基本形状进行建模。我目前的实现在相同尺寸的形状上有很多重复的属性。
示例,我有一个参与 Box2d
世界的交互式
矩形
,并且我有一个背景
Rectangle
不涉及 Box2d
世界。但这两个类都需要定义宽度
和高度
。
有人知道更好的方法来建模这些数据吗?
当前实现..
模拟新实现的想法,但是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;
}
最佳答案
- 第二个示例要好得多,因为
矩形
实际上是一个形状,但具有附加数据(宽度和高度) - 我认为
Iteractive
和Background
是不必要的,除非它们添加了任何额外的操作(从图片来看它们没有)。
关于java - 在 Java 中为级别内的形状类创建层次结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30350070/