Ideas para pilas "prestadas" de otras herramientas

Hola, vengo a hablar sobre algunas funciones que tienen otras herramientas para crear videojuegos y estarian buenas verlas en pilas…

Una funcion que tiene Processing que se trata de cambiar la imagen del raton estaria buena en pilas:

cursor(ARROW);
cursor(HAND);
cursor(CROSS);
cursor(image);

Tambien poder cambiar el icono y el texto de la ventana en windows, lo haria ver mas profesional!

Love2D tiene “tablas” una buena forma de variables, seria algo como:

asd = {a=1,b=2}
if asd.a == 1 then
  print("sin errores")
end

Tambien estaria genial poder añadir mas pestañas, en processing podes abrir mas pestañas dentro del mismo programa para no tener todo el codigo dentro de una sola pestaña, con pestaña no me refiero a ventana de windows:
https://youtu.be/TC7qL_CC8E4?t=645

Ademas de agregar un forma de hacer un retraso o delay en vez de usar tareas estaria bien poder hacer un delay a todo el programa como en love2d:
delay(60)//el programa se detiene por 60 milisegundos

Tambien el poder editar los fps como en Processing:

frameRate(5);

esto es util a la hora de crear juegos como el snake que si se va a sumando por casilla, si no hay un tiempo de espera, va muy rapido, y una manera facil de poder controlarlo mejor es bajando los fps.

Otra cosa que facilitaria las cosas seria poder usar una “funcion” que tiene processing que es el ya tener los datos de la altura y anchura de la ventana:

//sintaxis de codigo de dibujar rectangulo:
rect(x1,y1,ancho,alto);
//dibujarlo en medio del eje x e y de la ventana:
rect(width/2,hight/2,20,20);

Tambien estaria bueno que una vez ya definido el tamaño de la ventana, que se pueda editar/redefinir, en processing se puede hacer pero es mas complicado.

Hola @Pan, ¡muchas gracias por tus sugerencias!. Recién publiqué una actualización de la aplicación con una de las ideas que nos comentaste.

Ahora se pueden cambiar los cursores usando funciones como:

pilas.definir_cursor("normal");
pilas.definir_cursor("pointer");
[etc]

Los cursores que se pueden utilizar son los estándar que traen los navegadores:

Sin embargo, en el caso en que se quiera personalizar por completo, también se puede ocultar el puntero del mouse y tomar un actor como sustituto para el cursor del mouse.

Mirá este ejemplo:

https://app.pilas-engine.com.ar/#/ejemplos/angulo

En el código escribí algo así:

actor_mira.aprender("seguir al mouse");
pilas.ocultar_cursor();

Con respecto a las tablas de love2d, no las conocía. ¿es algo de love o lua?. En javascript hay un tipo de dato muy similar que tal vez pueda servir como sustituto.

Siguiendo tu ejemplo, se escribiría así:

let asd = {a: 1, b: 2}

if (asd.a == 1) {
   alert("sin errores")
}

y si la clave es compuesta por varias palabras se puede usar así también:

let asd = {"nombre completo": "pepe ruiz", "documento": 123123123}

alert("El nombre completo es" + asd["nombre completo"]);

Con respecto a las demoras, con funciones como delay(60), en pilas no tenemos algo similar, de hecho en javascript es un poco difícil de replicar. Lo que sí existe en pilas hoy son las tareas, que en realidad son funciones que se pueden ejecutar en el “futuro” luego de una demora.

Por ejemplo, imaginá que quiero crear una nave, y a los 5 segundos eliminarla diciendo “chau”. Se puede escribir así:

let nave = pilas.actores.nave();

pilas.luego(5, () => {
  nave.decir("chau");
  nave.eliminar();
});

Ah, y lo último que me comentas, sobre las funciones para dibujar. Es lo siguiente que quiero implementar en pilas. Me gustaría crear algo similar a lo que teníamos en pilas 1 llamado “pizarra”. La idea era sencilla, la pizarra es un actor invisible pero sobre el que se puede dibujar: Dibujado simple en pantalla - pilas-engine

Muchas gracias por las sugerencias @Pan, ¡si se te ocurren más avisame!, super interesante leer tus aportes.

Abrazo!

1 Like