защищен вар startingX: INT;. защищен вар maxHorizontalMovement: INT; защищенные покупатель прижимные планки: FlxEmitterпеременная хранит startingX стартовая позиция противника.
Поскольку все враги начинают в левой части блока, и мы знаем, насколько широк блок, мы можем использовать, начиная с текущей позиции врагов, чтобы определить, когда он должен вернуться к праву, чтобы избежать падения с края.
< р> Переменная maxHorizontalMovement это ширина основного блока. Это, в сочетании с переменной startingX, останавливает врагов движущихся от края блока.
<Р> Переменная прижимные планки проведет FlxEmitter, которая, как системы частиц, который будет отображать взрыв планками, когда враг будет уничтожен
функция Враг общественности (X: INT, Y: INT, maxHorizontalMovement: INT). {супер (EnemyImage, X, Y, правда); this.y - = this.height; this.startingX = Х; this.maxHorizontalMovement = maxHorizontalMovement - this.width; this.velocity.x = ENEMY_SPEED; this.health = ENEMY_HEALTH; this.gibs = FlxG.state.add (новый FlxEmitter (0,0,0,0, NULL, -1.5, -150 150 -200, 0, -720,720,400,0, EnemyGibsImage, 20, правда)), как FlxEmitter; addAnimation ("аним", [0, 1], 12); this.play ("аним"); } <р> Все это код прямо вперед. Мы просто установки основополагающие FlxSprite переменные вместе с тем, мы определили себя, а затем настройку анимации противника. . Мы также создаем новый FlxEmitter, который будет отображать ливень планками, когда враг умирает
общественного переопределения обновление функции (): недействительным {super.update (); если (this.x - this.startingX> = maxHorizontalMovement) {this.x = this.startingX + maxHorizontalMovement; this.velocity.x = -ENEMY_SPEED; .} Еще, если (this.x - this.startingX <р> В функции обновления мы изменяем скорость врага, если он переехал по краю основной блок
общественная функция коррекции hitWall (Контактное лицо: FlxCore = NULL): Boolean {this.velocity.x = -this.velocity.x; вернуться верно;} <р> Функция hitWall будет вызываться, если враг ударил стену Так как мы знаем путь ясно над.Слева от основного блока, это означает, что враг попал блок, как она переехала прямо В этом случае мы просто установить скорость, чтобы переместить противника на левом
общественная функция переопределения убийствам ():.. пустота {super.kill (); this.gibs.x = this.x + (this.width >> 1); this.gibs.y = this.y + (this.height >>