Если вы спрашиваете, почему графика отделена от позиционирования, движения и физики;возьмите это дерево, которое я нарисовал:
В дереве вы увидите, что Entity
имеет два свойства:
- Графика - чтосущность должна выглядеть следующим образом.
- Тело - где должна быть сущность.
Двигаясь вниз, вы увидите, что есть несколько вещей, которые расширяют Entity
- наиболее заметными являютсяPlayer
и классы Enemy
.
Расширяя мой класс Entity
, указанный выше, я могу легко изменить то, что следует использовать как graphics
, а также немного отличаться от bodies
.Например, игрок и враги будут иметь явно различный внешний вид, и классу Tree
не нужно будет использовать Body
, который имеет дело со значениями, такими как скорость, потому что он не двигается.
Здесьнекоторые из вышеперечисленных преимуществ:
- Мы можем создавать объекты, которые не имеют графики, сохраняя производительность и память.
- Мы можем использовать различные типы графики вместо того, чтобы придерживаться
MovieClip
если вы расширили MovieClip
с помощью класса Entity
. - Мы можем добавить дополнительную логику в класс
Graphics
, например, возможность легко конвертировать Sprite или MovieClip в лист спрайта длялучшая производительность. - Графика будет проще в управлении и более легкой (по сравнению с автоматическим связыванием с каждой сущностью).
- С физикой будет легче работать без необходимостизнать о графике.
Body
можно обновить без немедленного воздействия на графику. - Ваше понимание физики полностьювне зависимости от внешнего вида значительно улучшится.