pilas-engine

Resumen del sprint 27

¡Buenas!, recién publiqué la versión 2.7.0 de Pilas Engine con varias novedades.

En este video les resumo algunas de las mejoras:

Agregando soporte para bloques

¡A partir de esta versión Pilas va a permitirnos programar con bloques!

Así que con este soporte de bloques muchas más personas van a animarse a programar juegos con Pilas. Los bloques se utilizan en cursos iniciales y en herramientas como Scratch o Pilas Bloques.

Aun así, vale mencionar que apenas tenemos bloques para empezar, aún tengo que crear más bloques y mejorar la experiencia en general.

Aquí voy a necesitar la guía de @Marisol_Ramos y @Veronica_Aides para que me orienten a ver qué bloques podemos añadir. Técnicamente podemos hacer bloques para todo lo que trae pilas, pero me gustaría ir incorporándolos poco a poco.

Por cierto, yo tenía la idea de hacer una versión paralela de Pilas con el soporte de bloques a modo de pruebas. Pero finalmente charlando con un amigo llegué a la conclusión que sería mejor tener una sola versión de pilas e ir incorporando bloques poco a poco.

Creo que esta estructura inicial nos va a servir para ir mejorando poco a poco.

¿Cómo lo ven?

Agregando soporte MultiTouch

Corregí un bug que detectó @lukeitor en teléfonos y tablets: pilas no permitía hacer pulsaciones simultáneas en pantalla una vez que el juego se ejecutaba en el dispositivo.

Por suerte luego de investigar un buen rato di con la solución y pude añadir el soporte para tener hasta 6 pulsaciones en pantalla en simultáneo:

De hecho, creo que con el soporte touch mejorado podría llegar a implementar gestos y otras mejoras a futuro. ¿Se les ocurren juegos para hacer usando gestos táctiles en la pantalla?

Más ejemplos y mejoras de interfaz

Agregué una pantalla para mejorar la creación de proyectos nuevos. Ahora la pantalla nos muestra una serie de plantillas para que podamos elegir un punto de partida:

Voy a incorporar más plantillas en breve, pero por el momento ya tenemos las básicas para facilitar los primeros pasos.

Aprovecho para agradecer a @Veronica_Aides por esta idea, es muy práctico tener la posibilidad de elegir plantillas a la hora de comenzar un juego.

También añadí dos ejemplos nuevos, un juego educativo (el mismo que hicimos con Marisol Ramos en youtube y un juego de Ninjas (que hicimos con Fede Sawady también en video):

Además, los ejemplos ahora están ordenados para mostrar las novedades primero. Creo que de esa forma los ejemplos se ven mucho mejor.

Ah, y tenemos funciones nuevas, como intercambiar_posiciones_al_azar y otras para generar números aleatorios que vimos en el video con Marisol.

Links útiles

Recuerden que pueden usar Pilas desde la web desde el sitio web:

y la versión offline, no pude subirla al sitio web por el momento, sin embargo la pueden descargar directamente desde el repositorio:

¡Les envío un abrazo grande!, y los invito a hacer sugerencias y proponer mejoras para el próximo Sprint, que recién lo estoy planificando.

4 Likes

Estaría bueno que pilas traiga una forma de poder cargar escenas dinámicamente… Osea a veces los juegos se hacen pesados al momento de cargarlos completos, entonces que se pueda cargar un juego por niveles para que los tiempos de carga sean más cortos… Técnicamente no sé cómo se llama eso en desarrollo web, pero tendría que ser posible de alguna manera, ya que hay páginas que se cargan de esa manera… Esto es algo que mucha gente siempre pregunta, no hay forma de hacerlo actualmente con los motores más conocidos como Godot, Unity o Unreal Engine porque usan WebAssembly o por lo menos eso investigue por ahora…
Felicitaciones por el progreso del motor, son increíbles los bloques y seguro va a ayudar a que mucha gente use el motor como herramienta educativa…

Hola @hugoruscitti , que buenos implemento que hay en la nueva versión de pilas! aunque quise probarlo pero no sabia como avanzar, luego de ver tu tutorial en youtube me di cuenta que tienes una variable llamada “acciones” pero no me da esa opción a mi


¿lo sacaste o es un bug? estoy usando la versión online.
Como para contribuir, te recomiendo que pruebes una aplicación para celulares que me gusto que se llama “pocked code” es para crear juegos y usa programación por bloques también, quizás podrías sacar algunas ideas de ahí, luego seguiré revisando la nueva versión un saludo!

1 Like

Selecciona un actor como el personaje y en acciones te aparecen las acciones como hablar, saltar, etc…Seguro que podes sugerir más acciones… Creo que es esto lo que no encuentras…

1 Like

Quedó genial! Me encanta que puedas combinar ambos tipos de programación para que aquello que no puedas hacer con bloques, tengas la posibilidad de hacerlo con código y que ambos funcionen a la vez.
Yo suelo hacer algunas app para android usando MIT app inventor y la verdad que aquí los bloques quedaron muy bien logrados.
El único bloque que creo es crucial agregar es el equivalente a:
this.camara.seguir_al_actor()
Al menos yo no lo encontré. Por lo demás, esta genial.

Hola.
Esta super genial la implementación de bloques a Pilas Engine.
Es increíble lo que haces.
Primero partiendo por las plantillas es una excelente forma de partir para ir desarrollando un juego.
Ahora los bloques genial. Hay muchas personas un poco mayores que tienen la inquietud de aprender a programar. Con bloques le es mas sencillo.
Complementar código y bloques muy buena idea.
Pilas tiene bloques de Lógica:

  • Si entonces
  • Y O
  • Operador numérico
  • Booleano
  • Pulsar la tecla
    Acciones:
  • Saltar
  • Decir
  • Desplazar
  • Impulsar
  • Reproducir animación.
    Una idea seria incorporar un bloque de Control
  • Repetir
  • Por Siempre
  • Repetir hasta que
  • Esperar un segundo

Ya tiene el condicional si entonces o si hacer.
Esta genial.
Agregar un bloque de control.
Esta super genial.
Abrazos

1 Like

@hugoruscitti Encontré un bug menor: cuando clonas a un actor, su codigo de bloques no se clona. El nuevo actor aparece con código vacío, a pesar de que el original si lo tenía.

1 Like

es verdad @lukeitor , yo duplique mi personaje que tiene código de bloque y el duplicado no tiene código, yo no se que es lo que estoy haciendo mal, pero tengo un personaje que se mueve con las teclas y quise agregar los botones para que también se muevan en pantalla táctil pero cuando le doy a ejecutar los botones desaparecen, si logro encontrar porque lo voy a comentar.

ya lo descubrir, al parecer tiene que ver con el fijo en

iniciar(){
  this.fijo = true;
}

eso hace que el botón desaparezca, pero si no lo tiene el botón esta pero no sigue a la cámara, @hugoruscitti fíjate si a vos te hace lo mismo, habri la plantilla vacía y ahí me lo hace.

@PabloSosa quizás suceda porque el boton es también un actor de texto? los actores de texto funcionan medio raro con eso de this.fijo jaja prueba hacer botones que sean actores normales y fíjate que ya no debería desaparecer.
Con normales me refiero a que crees un actor desde cero y le agregues el código para que se pueda pulsar.

Que bueno que se puede ya probar, lo voy a ir probando y te paso feedback de como me va, es super util todo lo que agregaste!!!

Con respecto a los bloques, veo que con la estrellita se puede agregar el SI NO por ejemplo, pero le agregaria algun comentario cuando paso con el mouse que se puede clickear para extender funcionalidad y … la verdad que cuando lo selecciono no lo puedo arrastrar hasta el bloque si para poder usarlo como que me


desaparece. si no queda claro grabo un video .

No amigo @lukeitor el botón es el normal que tiene pilas en la lista de actores, creo saber cual es el problema, necesito que me ayudes para saber si no me pasa solo a mi, habré una escena cualquiera y crea un actor botón (cualquiera) luego pon su posición a -300 en Y y con la cámara centrada al botón ejecuta el juego y veras que desaparece el botón.

y como cosas basicas que le pondria en esta primera version de los BLOQUES…

  1. algun loop en el control, algo que me permita ciclar, o el for o el while…
  2. en el “decir” , le pondria un “decir por x segundos”… donde 1 sea el basico, pero ya l agregaria la posibilidad de decir un tiempo. Tambien le agregaria el bloque Esperar x segundos,
  3. esto ultimo creo que es un bug… Si dentro del bolque INICIAR se le coloca el bloque “reiniciar” queda colgado pilas… se que no tendria sentido hacerlo pero en un entorno educativo tal vez le diria que son bloques incompatibles o algo asi… tampoco me queda muy claro que hace el reiniciar, que cosas inicias, pero si son atributos del actor no deberia colgar. lo planteo nada mas…(me sale un maximun call stack size exeeded.)

lo que hace el botón “reiniciar” es que devuelve al actor en sus valores donde inicio cuando se ejecuto el programa.

Claro, como dice @PabloSosa el reiniciar no es otra cosa que el comando:
this.pilas.reiniciar_escena()
Lo que hace es volver a cargar la escena desde cero, entre esas cosas que se vuelven a cargar estarán todos los
iniciar()
De cada actor y por eso entras en un Bucle, quizás @hugoruscitti puedas poner que el editor de código te lo señale como un error y te explique.

1 Like