Draw it | Devlog 1


Draw it será un juego estilo Pinturillo, un juego donde deberás dibujar un objeto y los demás jugadores deberán adivinarlo. Será un juego en LAN, a diferencia de Pinturillo que es completamente online, entreotras diferencias que explicaré mas adelante.

Comencé creando el repositorio en github usando el Godot Template, luego le agregué la licencia GPL-3, y lo cloné en mi PC para trabajar.


Si te gusta el proyecto, ¡dale una estrella!

Lo primero que hice fue crear el sistema de dibujo, para eso me apoyé de un vídeo que encontré en youtube, sí, yo también veo tutoriales.

Al principio busqué información sobre cómo hacerlo con el método draw() de Godot, pero pensandolo bien, podría tener problemas con el network, por lo que la solución que encontré en el vídeo me parece mas conveniente.

En el vídeo el chico usa un Timer, yo no lo veo necesario, modifiqué bastante el código que escribió, pero me sirvió como base.

En principio estaba así.

El código que escribí para el nodo Pencil fue este:
Luego me puse a escribir la escena básica del juego. Al inicio añadí el ColorPicker de Godot pero mejor voy a crear un sistema de selección de colores predefinidos.

Todo mi trabajo terminó así:
El código de la escena quedó así:

Ahora ¿Cómo funciona el código?

Pencil es un Line2D, que añade una línea en cada frame usando el método add_point(), la idea es instanciar un Pencil cada vez que el usuario haga clic dentro del lienzo, y añadir en cada frame una línea que representa el trazo, la variable finished la agregué para que cuando el usuario suelte el click deje de añadir líneas.

last_point la agregué pensando en optimización, como se añade una nueva línea en cada frame, si el puntero se queda quieto, estaría añadiendo nueva línea en esa misma posición, entonces con una validación puedo saber si el usuario se quedó quieto, y si está quieto no añadirá mas líneas, la validación es last_point != mouse_pos, luego si esto es cierto, agregué last_point = mouse_pos para que en el siguiente frame se compare con esa posición, last_pos inicializa en null para que siempre se ejecute en el primer frame. ya que null != mouse_pos.

Estos fueron mis primeros pasos con DRAW IT!, mi nuevo proyecto con Godot Engine.

Espero que te haya gustado y si tienes dudas puedes consultarme en mis redes sociales, recuerda que también tengo el proyecto en github! Hasta el siguiente Devlog.


Comentarios