Java 为我的游戏创建类(Slick)

Java 为我的游戏创建类(Slick),java,slick2d,Java,Slick2d,我正在用Slick2d制作我的第一个Java游戏,我创建了一个类平面。我也是java新手 我不确定在我的类中从Image类扩展是否正确,或者我最好在我的类public中使用public Image属性,以便在项目的其余部分轻松访问它的方法 import org.newdawn.slick.Image; import org.newdawn.slick.SlickException; public class Plane extends Image{ private float x; priva

我正在用Slick2d制作我的第一个Java游戏,我创建了一个类平面。我也是java新手

我不确定在我的类中从Image类扩展是否正确,或者我最好在我的类public中使用public Image属性,以便在项目的其余部分轻松访问它的方法

import org.newdawn.slick.Image;
import org.newdawn.slick.SlickException;

public class Plane extends Image{
private float x;
private float y;

public Plane(String path, float x, float y) throws SlickException{
    super(path);
    this.x = x;
    this.y = y;

}

    public float getX(){
    return x;
}

public float getY(){
    return y;
}

public void move(float hip){             
    float rotation = this.getRotation();
    x+= hip * Math.sin(Math.toRadians(rotation));
    y-= hip * Math.cos(Math.toRadians(rotation));
}

}

我不知道,但我想说你们的类不应该扩展Image,而是应该有一个Image属性。延伸是一种表示平面是图像的方式,通常情况下并非如此,而是平面具有纹理/图像


此外,映像不应该是公共的,而应该是受保护/私有的,并且可以由公共getter和setter访问。这样可以增加封装并防止在公开映像本身时可能出现的问题。

我不知道,但我认为您的类不应该扩展映像,而应该具有映像属性。延伸是一种表示平面是图像的方式,通常情况下并非如此,而是平面具有纹理/图像


此外,映像不应该是公共的,而应该是受保护/私有的,并且可以由公共getter和setter访问。这样可以增加封装并防止在公开映像本身时可能出现的问题。

如果您的类扩展了映像,那么从技术上讲,您的类将继承映像类的所有属性,并且在理论上成为映像

根据您的代码,我建议您:

不要扩展Image,只需在类中创建一个Image变量。 扩展图像,然后创建另一个使用此图像的类。
如果你的类扩展了Image,那么从技术上讲,你的类将继承Image类的所有属性,并且在理论上成为一个Image

根据您的代码,我建议您:

不要扩展Image,只需在类中创建一个Image变量。 扩展图像,然后创建另一个使用此图像的类。
谢谢你,托马斯。现在我的构造函数已经改变了:superpath->image=newImagePath我熟悉slick。我同意@Thomas-Plane有一个图像。谢谢Thomas。现在我的构造函数已经改变了:superpath->image=newImagePath我熟悉slick。我同意@Thomas-Plane有一个图像,我在我的类中创建了一个图像变量。我可以在主类中访问它的一些方法。谢谢你的回答,没问题。玩得开心!我在类protected中创建了一个Image变量。我可以在主类中访问它的一些方法。谢谢你的回答,没问题。玩得开心!