Fix Distance en Todos los Mapas para Usar Zoom en Cámara

Fix Distance en Todos los Mapas para Usar Zoom en Cámara

Hola a todos,

Quería compartir una modificación que he realizado para mejorar la distancia de visualización en todos los mapas al utilizar la cámara con zoom. He reemplazado la función bool TestFrustrum2D(float x, float y, float Range) con una nueva implementación que permite un mejor control sobre las escenas.

Código Modificado

He añadido la siguiente función en lugar de TestFrustrum2D:

cpp

Copiar
bool SelectScenes()
{
   switch (SceneFlag)
   {
   case NON_SCENE:
   case WEBZEN_SCENE:
   case LOADING_SCENE:
      return false;

   case LOG_IN_SCENE:
   case CHARACTER_SCENE:
   case MAIN_SCENE:
      return true;
   }

   return false;
}

bool TestFrustrum2D(float x, float y, float Range)
{
   if (SelectScenes() == true)
   {
      int j = 3;
      for (int i = 0; i < 4; j = i, i++)
      {
         Range -= 300.0f;

         float GetFrustumT = (float)((FrustrumX - x) * (FrustrumY[j] - y));
         float GetFrustumB = (float)((FrustrumX[j] - x) * (FrustrumY - y));

         if (GetFrustumT - GetFrustumB <= Range)
         {
            return false;
         }
      }
   }

   return true;
}

 

Instrucciones

No olvides añadir la declaración de la función en tu archivo .h:

cpp

Copiar
bool SelectScenes();

 

Beneficios

Esta modificación permite que la cámara con zoom funcione mejor en las escenas seleccionadas, mejorando la experiencia de juego al permitir una visualización más clara y precisa.

Si tienes preguntas o necesitas más detalles sobre la implementación, ¡no dudes en preguntar!

¡Espero que esto les sea útil!

Saludos.

Enlaces Salientes

  1. Enlace a la comunidad de Mu Online:
  2. Enlace a foros de discusión sobre Mu Online:
  3. Enlace a herramientas de desarrollo:

Enlaces Internos

  1. Enlace a la sección de herramientas:
  2. Enlace a tutoriales específicos:
  3. Enlace a la sección de descarga de templates:
  4. Enlace a publicaciones en el foro:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *