Entradas

Mostrando entradas de 2017

Unity: Generación procedural de niveles para juego de plataformas (2D)

Estoy iniciándome en el desarrollo de videojuegos, de momento 2D, en Unity; siguiendo algunos tutoriales en YouTube he creado el principio de un juego básico de plataformas. Una vez lo tenía todo listo me asaltó la duda, ¿ Diseño de niveles o niveles procedurales ? Como la segunda opción parecía mas interesante a modo de reto, he estado viendo como podría hacer esto y al final la solución ha sido bastante sencilla; obviamente habrán mejores formas de generarlos pero para hacer algo tipo Mario Bross queda bastante resultón. La solución se basa en tener un objeto (GameObject) que recorre el mapa desde un punto y va instanciando objetos. Tiene una lista de plataformas diferentes, va avanzando como máximo lo mismo que puede avanzar el jugador que son 5 espacios, y dependiendo de unos valores generados aleatoriamente dibujan suelo o añaden enemigos. Este es el script resultante. public   class   LevelCreator   :   MonoBehaviour   {      public   GameObject   ground ;      publi

Qt cross platform UI scaling ( Android / Windows / Linux )

Sé que Qt tiene otros métodos para disfrutar de una escala apropiada en cualquier plataforma, pero es bastante común el trabajar sobre un proyecto en el cual no puedes hacer uso de esos métodos y necesitas al final usar un factor común de escala para todos los elementos. Tras mucho investigar y hacer pruebas empíricas he conseguido tener un factor de escala que realmente funcione en todas las plataformas ( he probado en Android, Windows y linux ) resultando en un mismo aspecto en cualquier dispositivo sin importar de su resolución o densidad.   Aquí os cuento como hacerlo.   1.- El primer paso es obtener los dpi en los que el dispositivo está funcionando realmente   - Android - // Android tiene density baseline de 160dpi ( mdpi )  QAndroidJniObject qtActivity =  QAndroidJniObject::callStaticObjectMethod("org/qtproject/qt5/android/QtNative", "activity", "()Landroid/app/Activity;");  QAndroidJniObject resources = qtActivity.callObjectMethod(&q