Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Chaskarron

#1
Scripting / While congela Unity
Febrero 19, 2019, 02:52:25 PM
Cita de: BlackBloodGC date=1550583322Gracias. He estado mirando y tendría que usar el método OnEnable()? Y si no es este  cual debería usar? 
   


OnEnable es para cuando el GameObject se activa en la jerarquia de la escena y comienza a estar activo, que funciona indistintamente en el editor y en la compilacion. Por otro lado, y el cual seria mas factible de usar, seria el metodo Update, que se llama cada frame de la aplicacion, pero tenemos el dilema que mientras exista un bucle en dicho metodo, unity quedara congelado mientras el bucle no se rompa. Quedaria la opcion de usar una corrutina o agregar un "listener" a cada boton con la funcion a ejecutar en caso de ser pulsado.

Te recomiendo intentar algo mas sencillo antes de abarcar temas complejos sin conocer un minimo las librerias del engine. ¡¡Saludos!!
#2
Scripting / Elementos dinámicos dentro de ScrollView
Febrero 19, 2019, 02:14:46 PM
Tienes que leer la propiedad "rect" del RectTransform del contenedor, cuyos valores width y height son las dimensiones en pixels respectivamente, y modificarlo mediante la propiedad "deltaSize" del RectTransform, ya que todo lo que quieras hacer mediante el GameObject no resultara. Espero que sea esa la solucion a tu dilema. ¡¡Saludos!!
#3
Scripting / Elementos dinámicos dentro de ScrollView
Febrero 19, 2019, 01:01:56 PM
Trabajar en los elementos de interfaz puede ser quiza lo mas complejo en el desarrollo de un videojuego, mas aun cuando hay que rellenar dinamicamente algun elemento.
 
Tienes que calcular unitariamente cada elemento que agregas al contenido del scrollview, para determinar su altura, ancho, y manejar la posicion relativa que ocupa dentro del contenedor del que debe ser "hijo" usando dichos valores de ancho y altura para no solapar los elementos dentro del contenedor, asi como su orden de insercion para determinar su posicion relativa. Y a su vez controlar dinamicamente el tamaño del contenedor para que permita el scroll, ya sea horizontal, vertical, o ambos, alterando el valor de este mediante su "deltaSize".
 
Espero haberme hecho entender y que te sirva de ayuda. ¡¡Saludos!!
#4
Scripting / While congela Unity
Febrero 19, 2019, 11:40:19 AM
Todos y cada uno de los bloques de codigo son herramientas de la programacion, su funcionalidad radica en el conocimiento y aplicacion de dichas herramientas, por lo tanto, ahi estan, pero hay que saber utilizarlas correctamente. No se puede decir que algo no funciona por los inconvenientes que se producen de su incorrecta aplicacion.
#5
Scripting / While congela Unity
Febrero 19, 2019, 10:34:20 AM
Si se congela unity, entonces no esta bien, y no esta bien precisamente porque estas intentando hacer que funcione en el metodo Start, por lo tanto jamas de los jamases funcionara correctamente.

Puedes consultar la documentacion de los metodos propios del Monobehaviour en la documentacion de la API de unity
 
¡¡Un saludo!!
#6
Otros / Exportar sprites en formato png
Febrero 19, 2019, 12:08:05 AM
En la carpeta de tu proyecto, donde hayas importado los assets, deberian estar los sprites, que puedes abrir directamente con un editor de imagenes sin necesidad de exportar nada, o copiarlos a otra carpeta accediendo desde el explorador de windows.
#7
Pues me apunto al carro, aunque de momento mi portfolio es bastante escueto y mas simple que el mecanismo de un chupete.
 
Perfil de itch.io
 
Perfil de gamejolt
 
Espero terminar el que tengo entre manos y seguir mejorando poco a poco para hacer juegos mas serios.
 
¡¡Saludos!!!!
#8
Proyectos / Space Revenge (Demo) released
Febrero 15, 2019, 06:31:45 PM
Cita de: zelleGames date=1550139981El tema de los efectos de los impactos de disparos se me ocurre que puedes crear un efecto de impacto, lo guardas como prefab y cuando el proyectil impacte instancias el prefab en la posicion donde impacto el proyectil. Asi un poco pensado por encima. Ganaria mucho el juego.
   
   
      La verdad que no llegue al jefe final, jeje.
   
   
      Jugare de nuevo a ver si me lo encuentro. 
   
   
      Un saludo
   


Pues ya me contaras que te parece ahora que he actualizado recientemente el juego, el tema de los efectos de disparo creo que ya tengo una solucion mas sencilla y que ocupa menos recursos, sin necesidad de instanciar nada mas en la escena, aunque obviamente no estara disponible hasta la siguiente actualizacion.
 
Saludos y gracias por jugar y los consejos, siempre se agradecen para ir mejorando.
#9
Proyectos / Delta Squad
Febrero 15, 2019, 06:26:55 PM
Por dios y por la virgen!!!! Ese juego hay que pillarlo cuando la economia lo permita!! En cuanto entre a steam ya lo estoy añadiendo a favoritos.
 
Mucha suerte con el lanzamiento y espero que sea todo un exito. ¡¡Saludos!!!
 
Edito: Acabo de echar un ojo a la pagina de steam y creo que es una maravilla. Lo dicho, cuando tenga pasta sera mio.
#10
Proyectos / Space Revenge (Demo) released
Febrero 14, 2019, 11:08:06 AM
Cita de: zelleGames date=1550081136Buenas Chaskarron!
   
   
      Enhorabuena por tu proyecto, lo he probado y esta entretenido aunque te comento algunas cosillas que he visto:
   
   
      -En la primera pantalla de los créditos pondría un botón para pasarlos, la primera vez esta bien leerlos pero cuando ya has jugado más veces tener que esperar 20 segundos se hace un poco pesado (ya sabes que los jugadores somos un poco impacientes, jeje)
   
   
      -En la pantalla del menú principal quitaría el parpadeo de las letras de los botones a mi por lo menos se me ha hecho incomodo. La animación del titulo me gusta pero la haría bastante más lenta.
   
   
      -La música del menú me mola mucho pero la del juego se me hace un poco triste y lenta, le pegaría algo más movidito y animado.
   
   
      -Cuando disparas a los enemigos estaría bien alguna animación de impacto o que cambie de color cuando le impacta un proyectil, porque cuando les impacta no pasa nada y parece que no les estas haciendo daño.
   
   
       
   
   
      Por lo demás esta chulo.
   
   
       
   
   
      saludos
   


Si lo has encontrado entrenido entonces vamos bien, esa es la idea. Respecto a la pantalla de los creditos iniciales, efectivamente tengo que hacer algo ahi. Los menus y todo el diseño de momento es provisional hasta que encuentre algo mejor y termine el tema de la jugabilidad que es en lo que estoy centrado actualmente ya que creo que es lo principal de un juego, el tema diseño de momento lo considero secundario. Al ser la demo solo has escuchado el tema del primer nivel, y aun no he subido la actualizacion pero el tema del jefe de final de fase es mas cañero. El dilemade los disparos aun no se como lo voy a apañar, pero me lo anoto.
 
En la proxima actualizacion estara incluida la mecanica de los logros, y no se si habras terminado el primer nivel que te lleva a la tienda en la que puedes gastar los puntos obtenidos en mejorar la nave. Y no se que tan bien funcionara el tema de guardar la partida en la version jugable de browser de la actualizacion, espero que funcione bien para no tener que reprogramarlo de nuevo.


Muchisimas gracias por jugarlo y me alegro que te haya gustado.
 
¡¡Saludos!!  ¡¡¡Tiembla Ubisoft!!! 
#11
Proyectos / Space Revenge (Demo) released
Febrero 10, 2019, 11:56:54 AM
Cita de: Bamf date=1549714012Es entretenido! Enhorabuena! La próxima vez incluye unas cuantas imágenes en el post para que más o menos nos hagamos a la idea de como es. Un saludo!
   


Puede resultar ironico que sea programador y aun no sepa como insertar imagenes en el post, pero es un hecho  Cuando tenga un rato editare el post para intentar insertar alguna, aunque muera en el intento.
 
Muchisimas gracias por jugarlo. Si entretiene y tiene buena jugabilidad entonces merece la pena ponerle enfasis para terminarlo.
 
Saludos!!!!
#12
Proyectos / Space Revenge (Demo) released
Febrero 08, 2019, 09:29:30 PM
Muy buenas, quisiera presentar mi primera demo publicada y lista para jugar en el navegador en la plataforma de itch.io y en gamejolt.
 
Esta basado en los juegos antiguos como el Aero Fighters de la antigua Super Nintendo. Aunque ya tengo 10 niveles implementados en la demo solo esta disponible el primer nivel. Ya que aun tengo que crear mas tipos de enemigos e ir comprobando la dificultad.
 
Bueno, sin mas dilaciones, si quereis echarle un ojo y probarlo, podeis hacerlo en el siguiente link.
 
Edito: Dejo un pequeño video de apenas 1 minuto con los añadidos de la actualizacion que he subido recientemente. No se si se pueden insertar videos, y si se puede ya mirare como se hace, asi que dejo el link a palo seco.
Video promo
 
Saludos!!!!
 
#13
Ya sabiendolo estare al tanto de twitch para otra clase magistral de programacion, creo que las 20:00 es una hora razonable para que el stream dure hasta la hora de cenar y poder digerir bien el contenido mientras se hace la digestion de la cena. Aunque personalmente yo espero con ansia viva que expliques lo de los timers, mas que nada para poder prescindir de las corrutinas de C# y aprender a hacer las cosas bien. No obstante tambien me parece muy interesante lo de las 300 balas con un drawcall y sin gameobjects, esta claro que cada stream que haces es como poco interesante y explica muy buenas tecnicas para adquirir buenas practicas y metodologias de programacion. Sea como sea y expliques lo que expliques sera de agradecer. Estoy ahorrando para regalarte un jamon del bueno en agradecimiento a tus magistrales clases.
 
Muchas gracias por tu tiempo y por pensar en nosotros genio. Saludos!!!
#14
Cita de: Eskema date=1519316882Yo no dije que C# no fuera multihilo. Dije que unity NO es multihilo, cuidado con ese matiz que en unity todo va al mismo hilo, por eso el lock que puse no tiene mucho sentido, pero lo pongo a nivel previsor :)
   
   
      Btw, tu codigo tiene una cantidad interesante de "problemas". Sincronizar el hilo "externo" entre unity y tu hilo no es facil. Los hilos no aparecen en el debugger y si peta tu hilo unity no se entera. Asi que cuidado con eso.
   
   
      ¿Recomendacion?, no usar hilos para NADA, salvo que tengas una tarea tipo "generar mundo procedural que tarda mucho y lo asigno a un hilo para hacer calculos de los datos antes de volver a unity para generar las mallas o lo que sea"
   


Ok, entonces fallo mio al no enterarme bien.

De momento no tengo la mas minima intencion de usar hilos salvo que no me quede otra que usarlos, pero si unity se pasa los hilos por el forro entonces es tonteria de la buena. Antes de todo eso ya habia observado que cuando el hilo peta, el debbuger no te dice ni pio, simplemente no se ejecuta y te quedas viendolas venir. De momento es lo que te decia, hacer uso de esto unicamente para salvar la partida en segundo plano mientras el juego sigue en ejecucion, aunque si peta estamos en las mismas. Lo de los mundos procedurales aun es demasiado para mi, hay mucho camino por aprender e investigar todavia.

Me ha parecido interesante esto de los hilos y liarla unas cuantas veces antes de publicarlo, no obstante lo dejo aparcado, te hago caso y me espero al siguiente stream. Un saludo!!!!
#15
Muy buenas de nuevo @Eskemalas instancias del core consultadas desde los hilos consevan el hashCode y no crea nuevas instancias que consumen memoria.
 
Dejo el ejemplo bastante comentado de las pruebas que he estado haciendo con los hilos de C# para aquellos inquietos como yo que les gusta hacer experimentos aunque la maquina termine explotando.
 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Threading; // la libreria de los Threads de C#
// cada uno que importe el espacio de nombres de su core
using CKN.core;
public class TestThreads : MonoBehaviour {
private Thread _th1; // hilo 1
private Thread _th2; // hilo 2
private ThreadStart _delegado;   // un delegado para hacer el hilo 1 sin lambda
private bool _threadKey = false; // para asegurarme que no lanza el hilo mas de una vez
void Awake() {
   _delegado = new ThreadStart(Metodo1);
   
   // Thread.Start() inicia el hilo
   // Thread.Join() espera a que el hilo finalice
   // realizo la prueba de fuego pintando el hashcode del Singleton
   Debug.Log("Awake: " + Core.GetInstance().GetHashCode().ToString());
   
}
void Start () {
   // Dentro de los hilos que se ejecuten en el metodo Awake
   // lanzara un error al obtener el GetInstace del core
   _th2 = new Thread( () => { // este hilo es de unica ejecucion
      for(int i = 0; i < 100; i++){
         Thread.Sleep(10);
      }
      // esto es curioso, conserva el hashCode de la clase Singleton
      // cuando en Java hay que sincronizar los hilos
      // para evitar sobrecargar la memoria
      // ya que el hilo termina pero la instancia permanece cargada
      Debug.Log("Lambda: " + Core.GetInstance().GetHashCode().ToString());
   });
   // segunda prueba de fuego con el hashcode, no deberia haber diferencias
   // ya que se ejecuta fuera de un hilo
   Debug.Log("Start:" + Core.GetInstance().GetHashCode().ToString());
   _th1 = new Thread(_delegado);
   _th1.Start();
}
void Update(){
   Debug.Log("Hilo 1 IsAlive: " + _th1.IsAlive.ToString());
   Debug.Log("Hilo 2 IsAlive: " + _th2.IsAlive.ToString());
   if(Input.GetKeyDown(KeyCode.A) && !_threadKey) {
      _threadKey = true; // impido lanzar de nuevo el hilo ya que arrojaria error
      _th2.Start();
   }else if(Input.GetKeyDown(KeyCode.A) && _threadKey && !_th2.IsAlive){
      _th2 = new Thread( () => {
         for(int i = 0; i < 100; i++){
            Thread.Sleep(10);
         }
         // nuevamente conserva el hashCode todas las veces que se ejecute
         Debug.Log("Lambda2: " + Core.GetInstance().GetHashCode().ToString());
      });
      _th2.Start();
   }
   if(Input.GetKeyDown(KeyCode.B) && !_th1.IsAlive){
      _th1 = new Thread(_delegado);
      _th1.Start();
   }
}
void Metodo1(){
   for(int i = 0; i < 100; i++){
      Thread.Sleep(10);
   }
   Debug.Log("Metodo1: " + Core.GetInstance().GetHashCode().ToString());
}

}

 
Lo unico que se me ocurre para usar los hilos es para guardar la partida con autosave como hacen los juegos actuales mostrando el icono en la esquina o esperar la carga de datos complejos.
 
Espero que este post le resulte interesante a alguien. Seguire investigando mientras espero con ansia viva la siguiente clase magistral. Un saludo!!!!