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

Создание клона Space Invaders с PushButton - вражеских пуль

<р> Играть демо

<р> Загрузить исходный код ИСТОЧНИК

<р> Возврат к учебнику ИНДЕКС

В прошлом уроке мы добавили компонент, чтобы лица, которые будут уничтожены на столкновения. Это обошел HealthComponent используемый противника лиц, но теперь мы прошли полный круг и добавить HealthComponent к игроку, поэтому он может быть поврежден пулями противника. Здесь мы добавляем HealthComponent, и указать, что игра имеет начальную здоровья 5.

<р> код

<р> Для игрока на расстрел мы должны создать новый шаблон объекта.

Это почти точная копия шаблона EnemyBullet, за исключением видов типа лицо и столкновения меняются, чтобы идентифицировать его как пуля врагом и столкновения с игроком

. <Р> код

<р> EnemyControllerComponent .as

<р> Так же, как PlayerControllerComponent, который создает новый объект PlayerBullet После нажатия пробела, тем EnemyControllerComponent будет случайным образом создавать новый EnemyBullet сущность.

<р> Переменная timeToNextShot, используется для контроля количество времени между каждой возможной стрельбы пули, отсчитывается до 0.


 общественная функция коррекции OnTick (тикрейтом: Number): пустота {//... timeToNextShot - = тикрейтом; timeToNextShot = timeToNextShot <р> После timeToNextShot достигает 0 противник будет иметь возможность выстрелить. TimeToNextShot сбрасывается, чтобы начать отсчет снова 

, если (timeToNextShot == 0) {timeToNextShot = timeBetweenShots;. <Р> Мы хотим, чтобы эти кадры, чтобы быть случайным, поэтому мы используем переменную chanceOfShot с случайной функции чтобы определить, если выстрел должны быть приняты.

В следующем, если заявление имеет 1 в chanceOfShot шанс быть правдой.

, если (Math.round (мой E-mail () * chanceOfShot) == 0) {<р> Если, если заявление будет верно новый экземпляр шаблона EnemyBullet создается, расположены и установить скорость 

 Вар пуля:. IEntity = TemplateManager.instance.instantiateEntity (bulletEntityName); если (пуля! = NULL) {вар пространственное: Box2DSpatialComponent = bullet.lookupComponentByType (Box2DSpatialComponent), как Box2DSpatialComponent; Spatial.position = новая точка (position.x, position.y); spatial.

linearVelocity = новая точка (0, bulletSpeed); }}}} <Р> Мы должны сделать небольшое изменение в PlayerControllerComponent остановить вражеских пуль стучать игрока с экрана. Когда два объекта сталкиваются в системе физики они не просто остановить мертв - если только они не сталкиваются с головы на оди

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