Создание класса для моей игры (Slick) - PullRequest
1 голос
/ 03 апреля 2012

Я делаю свою первую игру на Java с Slick2d и создал классную плоскость.(я тоже новичок в Java)

Я не уверен, правильно ли расширять класс Image в моем классе, или я бы лучше использовал общедоступный атрибут 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));
}

}

Ответы [ 2 ]

5 голосов
/ 03 апреля 2012

Я не знаю slick2d, но я бы сказал, что ваш класс не должен расширяться Image, но иметь атрибут изображения.Расширение - это способ сказать, что «Плоскость - это Изображение», что обычно не имеет место, а плоскость имеет текстуру / изображение.

Кроме того, изображение не должно быть общедоступным, но должно быть защищенным / закрытым и доступным для публичных получателей и установщиков.Таким образом вы увеличиваете инкапсуляцию и предотвращаете проблемы, которые могут возникнуть при обнародовании самого изображения.

0 голосов
/ 03 апреля 2012

Что ж, если ваш класс расширяет Image, то технически ваш класс унаследует все свойства класса Image и теоретически станет Image.

Из вашего кода я предлагаю вам либо:

  1. Вместо расширения Image, просто создайте переменную Image в вашем классе.
  2. Расширьте Image, затем сделайте еще одинкласс, который использует этот образ.
...