<р> Загрузить исходный код ИСТОЧНИК
<р> Учебник INDEX
<р> Были два ограничения с движущимися блоков в прошлом уроке. Во-первых, блоки будут скользить под игрока. Это может быть легко исправлена с одной строки кода в функции MovingBlock столкновения
переопределить публичную функцию сталкиваются (Core: FlxCore):. Недействительными {//.. если (contactFromTop) {если (Core.hitCeiling (это )) {Core.y = this.y - Core.height; Core.last.y = Core.y; Core.x + = this.x - this.last.x; }}} <Р> Здесь мы переместить игрока по горизонтали на ту же сумму, как блока, когда игрок столкнулся с блоком сверху (т.е. стоит на нем).
<Р> Второе ограничение было то, что Игрок будет транспортироваться через блоки в ситуациях, когда это должно было быть сплющенные. Чтобы исправить это до нас нужно выполнить обнаружение столкновений на статичных и движущихся блоков индивидуально
<р> Во-первых, мы определим новую FlxArray в классе GameState провести подвижные блоки
защищенные покупатель movingBlocks..: FlxArray = новый FlxArray (); <р> Все экземпляры класса MovingBlock помещают в новый массив
this.movingBlocks.add (this.add (новый MovingBlock (32, 64, 0, 0 , LEVEL_DIMENSIONS >> 1, LEVEL_DIMENSIONS - BLOCK_DIMENSIONS * 3, * 2 BLOCK_DIMENSIONS, BLOCK_DIMENSIONS * 2, TechTilesImage))); <р> В функции обновления мы делаем столкновений на движущихся блоков, а затем статических. Обратите внимание, что порядок вызова функции FlxG collideArray важны: движущиеся блоки должны быть обработаны до статических блоков. Затем мы проверяем, чтобы убедиться, встроен проигрыватель в любом из блоков.Если это было сжато, и мы вызываем функцию playerSquash
общественного переопределения обновление функции (): недействительным {super.update ();. FlxG.collideArray (movingBlocks, игрок); FlxG.collideArray (levelBlocks, игрок); FlxG.collideArrays (playerBullets, levelBlocks); FlxG.collideArrays (враги, levelBlocks); FlxG.overlapArrays (playerBullets, враги, bulletHitEnemy); FlxG.overlapArray (movingBlocks, игрок, playerSquash); FlxG.overlapArray (levelBlocks, игрок, playerSquash); } <р> В функции playerSquash мы просто убить игрока.Для реальной игре вы, вероятно, удалить существующие игроки и перезагрузите состояние этой функции
частные функции playerSquash (Collide1: FlxCore, Collide2: FlxCore):. {Недействительными player.kill ();} <р>
Создание 3D-игры с Огре - Открытие Window
- Как обеспечить чистый код программирования…
- Готовые окна Cursors
- Создание игры на Google Android игры с Flixel - Добавле…
- Целое и плавать Типы объектов в C ++
- Создание базы данных в Mysql
- Таблица базы данных Ключи
- Операторы сравнения в Php
- Mysql событие Scheduler
- Отправка формы HTML с Activeperl
- Поле со списком Messages