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

Создание платформы флэш-игры с Flixel и Flex - Enemies

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

<р> скачать Исходный код

<р> Учебник ИНДЕКС

<р>, чтобы дать игроку что-то делать, мы будем добавить врагов. Эти враги будут довольно тупой, просто перемещая влево и вправо в верхней части блоков мы добавили. Даже если это не особенно продвинутый поведение, это было довольно распространенным с большим количеством старых 8/16 бит платформы игры.


<Р> Сначала мы определяем константу, которая управляет, сколько враги будут добавлены к уровню в класс GameState

 защищен статической строительства ENEMY_COUNT: UINT = 10; <р> Затем мы добавляем FlxArray провести новые враги 

 охраняемые покупатель враги:.. FlxArray = новый FlxArray (); < р> Мы тогда сделать вызов новых функциональных addEnemies в конструкторе (после того как мы добавили блоки на уровне) 

 функция GameState общественности () {//... для (VAR J:.

UINT = 0, J <р> Функция addEnemies разместит врагов на вершине блоков случайно на протяжении уровне Тем не менее, мы не можем разместить врага сверху любого блока, потому что есть хороший шанс, что в двух кварталах были. помещены в верхней части друг с другом, это означает, что нет места для нашего врага

 защищенная функция addEnemies (): пустота {вар enemyCount: UINT = 0; для каждого. (Var block1: FlxBlock в this.levelBlocks) { вар enemyStartX: Number = block1.x; вар enemyStartY: Number = block1.y; вар сталкивается: Boolean = False; для каждого (VAR block2: FlxBlock в this.

levelBlocks) {вар xCollision: INT = enemyStartX + (BLOCK_DIMENSIONS >> 1); вар xCollision2: INT = xCollision + BLOCK_DIMENSIONS; вар yCollision: INT = enemyStartY - (BLOCK_DIMENSIONS >> 1); вар yCollision2: INT = yCollision - BLOCK_DIMENSIONS; если (блок1! == блок2 && (block2.overlapsPoint (xCollision, yCollision) || block2.overlapsPoint (xCollision, yCollision2) || block2.overlapsPoint (xCollision2, yCollision) || block2.overlapsPoint (xCollision2, yCollision2))) { сталкивается = TRUE; ломать; }} <Р> Чтобы проверить это, мы петлю через блоки на уровне в два раза.

Таким образом, мы можем проверить каждый блок для столкновения в этом пространстве выше с любой другой блок в уровне. Мы должны найти блок, где площадь блока 2x2 (так 16x16 пикселей), выше в верхнем левом углу бесплатно (это потому, что наши враги занимают пространство 4 блоков).

<Р> Чтобы проверить это, мы должны Тест 4 точки в пространстве. Первый будет полквартала, и половина блока поперек. Это эффективно проверяет область выделены красным цветом н

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