Открытый класс DamageOnContactConponent распространяется EntityComponent {общественного повреждения вар: INT = 0; общественная функция DamageOnContactConponent () {супер (); } Функция коррекции защищены onAdd (): пустота {super.onAdd (); owner.eventDispatcher.addEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); } Защищены переопределение функции OnRemove (): пустота {super.onRemove (); owner.eventDispatcher.removeEventListener (CollisionEvent.COLLISION_EVENT, OnCollision); } Приватная функция OnCollision (событие: CollisionEvent): пустота {вар mySpatial: Box2DSpatialComponent = owner.lookupComponentByType (Box2DSpatialComponent), как Box2DSpatialComponent; вар друга: Box2DSpatialComponent = event.collidee === mySpatial event.collider: event.collidee; вар otherHealth: HealthComponent = other.owner.lookupComponentByType (HealthComponent), как HealthComponent; если (otherHealth! = NULL) otherHealth.damage (повреждение); owner.
destroy (); }} <Р> Новый компонент DeathHandlerComponent устанавливает onDied функцию, которая будет вызвана в случае события HealthComponent.DIED. Внутри onDied новый экземпляр шаблона взрыва создается и позиционируется. Обратите внимание, что мы стараемся вытащить ссылку как к Box2DSpatialComponent и компонента SimpleSpatialComponent для того, чтобы установить начальную позицию взрыва.
Конечно, мы знаем, что компания взрыв содержит SimpleSpatialComponent (потому что это то, что мы игре в XML файл), но я оставил этот код, чтобы выделить один из вопросов, с проектной системы PushButton компонента, который является то, что компоненты, которые выполняют та же функция довольно часто связаны.
В этом случае, как Box2DSpatialComponent и SimpleSpatialComponent обеспечить способ позиционирования объект в пространстве, фактически переменная положение не указано, как части общего интерфейса или базового класса, заставляя нас, чтобы проверить наличие обоих компонентов при попытке установить Исходное положение
Открытый класс DeathHandlerComponent распространяется EntityComponent {общественного вар PositionReference:. PropertyReference = NULL; Функция DeathHandlerComponent общественности () {супер (); } Функция коррекции защищены onAdd (): пустота {super.onAdd (); owner.eventDispatcher.addEventListener (HealthComponent.DIED, onDied); } Защищены перео
Создание клона Space Invaders с КНОПКА - Убийство Player
- Создание простой последовательности контей…
- ECMAScript Строка Регулярный Expressions
- Знакомство с Irrlicht 3D движок - открытие Window
- Основы С ++ идентификатор Объем
- C ++ - С быка за Horns
- Как центр сообщение в одну строку в программ…
- Дейкстры & Amp; Rsquo, S Algorithm
- Консольное приложение для Threading использован…
- Булева логика для ActivePerl
- PushButton Учебник серии - Параллакс Background