/** Actualiza al enemigo. */ @Override public void act(float delta) { super.act(delta); switch (mode) { case 0: // Ha aparecido y espera para atacar. Ataca if (actualDelay > 0) actualDelay -= delta; else { actualDelay = delayDisappear; mode = 1; game.attacks.add( new BallAttack(this, attackDirection.x, attackDirection.y, Attack.Type.BASIC)); } break; case 1: // Ha atacado y espera para desaparecer. Desaparece if (actualDelay > 0) actualDelay -= delta; else { actualDelay = delayAppear; mode = 2; draw = false; game.removeTemporallyEntity(this); } break; case 2: // Ha desaparecido y espera para aparecer. Aparece if (actualDelay > 0) actualDelay -= delta; else if (calculateNewStep()) { // Si se puede mover actualDelay = delayAttack; mode = 0; draw = true; game.addTemporallyEntity(this); setCenterPosition(nextStep); attackDirection.x = mainpj.getCenterX(); attackDirection.y = mainpj.getCenterY(); setRotation( new Vector2(getCenterX() - attackDirection.x, getCenterY() - attackDirection.y) .angle() + 180); } break; } }