Я создаю проект (небольшую игру) и пытаюсь найти решение своей проблемы.
У меня есть код, в котором я использую базовый класс Entity, который имеет необходимые методы для подклассов (объектов), например движение, рендеринг модели и т. д. c ... Функции, которые используются во всех других подклассах Fe
Entity -> Base Class,
SpellObject -> Subclass / Extends Entity
PlayerObject -> Subclass / extends Entity
UnitObject -> Subclass / Extends entity
В сущности у меня есть метод движения по умолчанию, где я проверяю столкновение, но при столкновении я хочу вызвать метод подкласса onCollisionHit, который определен в XXXObject (для каждого объекта мне нужно разделить code)
Мой код
Entity:
class Entity
{
constructor(obj: EntityInterface)
{
///
}
public doMove(...):void
{
// SpeedX SpeedY...
// ...
if (collisionHit)
// getSubclass f.e PlayerObject.onCollisionHit()
this.addPosition(speedX, speedY)
//...
}
// ....
SpellObject / PlayerObject /...
export class xxxObject extends Entity
{
constructor(obj:XXXInterface)
{
// ...
}
public onCollisionHit(...):void
{
// Do something (for SpellObject ->Call spell Disapear, for Player set MovementX/Y to 0..
}
Как я могу вызвать onCollisionHit из базы класс в этом примере? Одно из возможных решений, которое я нашел, - связать экземпляр подкласса с переменной базового класса
Я не уверен, что это только решение, потраченное впустую память .. Спасибо всем за ответ.