*   >> Чтение Образование Статьи >> science >> programming

Создание клона Space Invaders с КНОПКА - Убийство Player

ee === mySpatial event.collider: event.collidee; для каждого (VAR collisionType: String в deathCollisionTypes) {если (ObjectTypeManager.instance.doesTypeOverlap (other.collisionType, collisionType)) {<р> Если так мы посылаем событие, похожий на то, что HealthComponent вызовет, если бы это было убить объект , Таким образом, эти компоненты, которые наблюдают за лицо, чтобы умереть, как DeathHandlerComponent, также будет работать, когда компания умирает из-за столкновения

 Вар healthEvent:. HealthEvent = новый HealthEvent (HealthComponent.DIED, 0, 0 , other.owner); owner.

eventDispatcher.dispatchEvent (healthEvent); <р> И, конечно же, лицо разрушается

 owner.destroy (). ломать; }}} 

DeathHandlerComponent получает новую переменную с именем entityToCreateOnDeath, что позволяет нам определить, что объект будет создаваться, когда предприятие умирает. Это позволит нам создать различные взрывы для врагов и игрока (поскольку игрок является больше спрайт)

<р> DeathHandlerComponent.as

 Открытый класс DeathHandlerComponent распространяется EntityComponent {общественного вар PositionReference:.

PropertyReference = NULL; общественного вар entityToCreateOnDeath: String; Функция DeathHandlerComponent общественности () {супер (); } Функция коррекции защищены onAdd (): пустота {super.onAdd (); owner.eventDispatcher.addEventListener (HealthComponent.DIED, onDied); } Защищены переопределение функции OnRemove (): пустота {super.onRemove (); owner.eventDispatcher.removeEventListener (HealthComponent.DIED, onDied); } Защищенная функция onDied (событие: Event): недействительным {позицию уаг: Точка = owner.getProperty (PositionReference); вар лицо: IEntity = TemplateManager.instance.

instantiateEntity (entityToCreateOnDeath); если (лицо! = NULL) {вар пространственное: Box2DSpatialComponent = entity.lookupComponentByType (Box2DSpatialComponent), как Box2DSpatialComponent; вар simpleSpatial: SimpleSpatialComponent = entity.lookupComponentByType (SimpleSpatialComponent), как SimpleSpatialComponent; если (пространственное! = NULL) {Spatial.position = новая точка (position.x, position.y); } Еще, если (simpleSpatial! = NULL) {simpleSpatial.position = новая точка (position.x, position.y); }}}} <Р> Враг и шаблоны игрока и получить новый компонент DeathOnContactComponent.


<Р> код

<р> Игрок также получает DeathHandlerComponent, который установлен для создания новой организации PlayerExplosion когда игрок умирает (шаблон PlayerExplosion точно так

Page   <<  [1] [2] [3] >>
Copyright © 2008 - 2016 Чтение Образование Статьи,https://ru.nmjjxx.com All rights reserved.