Siguiendo mi pasión 2: vector de posición y aprendiendo Zig

Introducción: Esta noche me puse a programar un poco para mi proyecto después de un día intenso en el trabajo donde tuve que depurar un problema con Kafka que merecerá su propio post otro día.
Ayer creé un proyecto bootstrap con Raylib que simplemente dibujaba un cuadrado en pantalla. El objetivo de hoy fue lograr que el cuadrado se moviera, y lo conseguí.
Para organizar el código creé una estructura Player en Zig para almacenar posición y tamaño del cuadrado: const Player = struct{ x: usize, y: usize, width: usize, height: usize }; Esto me ayudó a pensar en términos de vectores de posición y propiedades del objeto en pantalla.
Zig me recordó en varios aspectos a Go pero con diferencias importantes. En Zig puedes asociar funciones a structs y el constructor suele ir dentro de la propia estructura. También descubrí que Zig trata los valores como constantes por defecto, así que para permitir mutaciones hay que trabajar con punteros. Por ejemplo la función update debe recibir un puntero a Player para modificar x en cada frame.
Otro aprendizaje práctico fue el manejo de tipos entre Raylib y Zig. Muchas funciones de Raylib usan f32 mientras que varias de las llamadas de Raylib devuelven i32, así que tuve que convertir y castear explícitamente para evitar errores de compilación. No es perfecto en cuanto a precisión pero mantiene el flujo de trabajo mientras se refina más adelante.
Al final el bucle principal comprobaba la pulsación de una tecla y llamaba a update y draw sobre el jugador, y así logré desplazar el cuadrado al mantener pulsada la tecla D. Fue una pequeña victoria que consolidó conceptos de estado, mutabilidad y conversiones de tipos en Zig.
Próximos pasos: quiero dibujar más cuadrados y aprender detección de colisiones para que mi cuadrado pueda posarse sobre otros. Además aprovecharé para experimentar con más características de Raylib y mejorar la estructura del código conforme avance.
Sobre Q2BSTUDIO: somos Q2BSTUDIO, empresa de desarrollo de software especializada en aplicaciones a medida y software a medida, con experiencia en inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi. Si buscas crear soluciones personalizadas puedes conocer nuestros servicios de desarrollo de aplicaciones y software a medida en desarrollo de aplicaciones y software multiplataforma y explorar nuestras capacidades en inteligencia artificial para empresas en servicios de inteligencia artificial. También ofrecemos consultoría en ciberseguridad y pentesting, integración con plataformas cloud como AWS y Azure, y proyectos de inteligencia de negocio con Power BI.
Palabras clave integradas: aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA y power bi. Si te interesa que te ayudemos a convertir una idea en una aplicación robusta y segura, en Q2BSTUDIO combinamos experiencia en desarrollo y en tecnologías emergentes para ofrecer soluciones a medida.
Comentarios