@Override
	public void update() {
		/** Coleta eventos de explosão. */
		List<Event> explosionEvents = getEntityManager().getEvents(
				InAnExplosionEvent.class);
		/** Verifica se a lista de eventos não está vazia. */
		if (explosionEvents != null) {
			for (Event event : explosionEvents) {
				InAnExplosionEvent explosion = (InAnExplosionEvent) event;

				/**
				 * @if Confere se o evento de explosão já não foi tratado.
				 */
				if (!processedEvents.contains(explosion)) {
					if (isBlockExplosion(explosion)) {
						createPowerUp(explosion);
					}

					if (isPowerUpExplosion(explosion)) {
						destroyPowerUp(explosion.getIdHit());
					}
				}

				/** Processa evento de explosão. */
				processedEvents.add(explosion);

			}
		}

		/** Coleta eventos de Colisão. */
		List<Event> collisionEvents = getEntityManager().getEvents(
				CollisionEvent.class);
		/** Verifica se a lista de eventos não está vazia. */
		if (collisionEvents != null) {
			for (Event event : collisionEvents) {
				CollisionEvent collision = (CollisionEvent) event;

				/**
				 * @if Confere se o evento de colisão já não foi tratado.
				 */
				if (!processedEvents.contains(collision)) {
					/**
					 * @if Confere a possibilidade de criar evento de power up
					 *     adquirido.
					 */
					if (checkCollision(collision)) {
						createPowerUpEvent(collision);
					}

					/** Processa evento de colisão mesmo se não retirar vida. */
					processedEvents.add(collision);
				}
			}
		}
	}