Это немного основной вопрос. Но я не понимаю, как ее решить. У меня есть приложение, которое имеет несколько направлений. Например. щука <- рыба -> акула. Где рыба является базовым классом.
Я занимаюсь озером, поэтому все мои экземпляры класса рыб могут двигаться только в пределах некоторых границ. Более того, все они случайным образом создаются на одном из краев озера и плавают к другому в зависимости от края, на котором они расположены. Вот как выглядит базовый класс:
public class Fish extends FlxSprite
{
[Embed(source="./resources/Elipse.png")]
public var image:Class;
// Variable which stores the direction of item movement (false - Move right)
// (true - Move Left)
private var movement:Boolean;
public function Fish(x:int, y:int)
{
super(x, y, image);
// Move right
if ( x < 5 )
{
movement = false;
}
else
{
movement = true;
}
}
public override function update():void
{
if( movement )
{
this.velocity.x -= 3;
}
else
{
this.velocity.x += 3;
}
super.update();
}
Теперь я хочу расширить эту модель, чтобы добавить дополнительное поведение к классу рыб. Например. Я хочу сделать акулу. Для этого мне нужно:
1) Заменить изображение абстрактной рыбы изображением акулы
2) Немного изменить поведение (акуле все еще нужно знать о направлении, но, возможно, использовать другой подход к скоростям)
3) Определить свойство размера (например, исходя из размера, акула будет сильнее или слабее)
Вопрос:
Как определить акулу ... как подкласс рыбы? Или лучше подкласс от Sprite?
Я думал, что подклассы из Fish были бы более естественным способом, но в этом случае я не понимаю, как переопределить визуальное представление рыбы (например, изображение), поскольку невозможно переопределить переменную.
С другой стороны, если я буду использовать FlxSprite в качестве базового класса, было бы легко переопределить презентацию, но в случае, если я не смогу повторно использовать код движения (например, чтобы рыба знала, в каком направлении плавать ) ...
Я понимаю, что вопрос немного сложен для понимания. Рад переопределить его в случае возникновения каких-либо вопросов.