Actionscript 3.0: почему стоит отсоединить код для перемещения объекта от самого объекта (например, Ball и Ball Mind) - PullRequest
2 голосов
/ 08 марта 2012

Мой вопрос в значительной степени описан в заголовке. Почему я продолжаю читать в ActionScript 3.0, что при написании кода хорошая идея отделить «разум» от «объекта»?

Спасибо за любую помощь, это чертовски запутывает меня.

1 Ответ

6 голосов
/ 08 марта 2012

Если вы спрашиваете, почему графика отделена от позиционирования, движения и физики;возьмите это дерево, которое я нарисовал:

enter image description here

В дереве вы увидите, что Entity имеет два свойства:

  1. Графика - чтосущность должна выглядеть следующим образом.
  2. Тело - где должна быть сущность.

Двигаясь вниз, вы увидите, что есть несколько вещей, которые расширяют Entity - наиболее заметными являютсяPlayer и классы Enemy.

Расширяя мой класс Entity, указанный выше, я могу легко изменить то, что следует использовать как graphics, а также немного отличаться от bodies.Например, игрок и враги будут иметь явно различный внешний вид, и классу Tree не нужно будет использовать Body, который имеет дело со значениями, такими как скорость, потому что он не двигается.

Здесьнекоторые из вышеперечисленных преимуществ:

  1. Мы можем создавать объекты, которые не имеют графики, сохраняя производительность и память.
  2. Мы можем использовать различные типы графики вместо того, чтобы придерживатьсяMovieClip если вы расширили MovieClip с помощью класса Entity.
  3. Мы можем добавить дополнительную логику в класс Graphics, например, возможность легко конвертировать Sprite или MovieClip в лист спрайта длялучшая производительность.
  4. Графика будет проще в управлении и более легкой (по сравнению с автоматическим связыванием с каждой сущностью).
  5. С физикой будет легче работать без необходимостизнать о графике.
  6. Body можно обновить без немедленного воздействия на графику.
  7. Ваше понимание физики полностьювне зависимости от внешнего вида значительно улучшится.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...