Something went wrong. Try again.
🌱 A minimal programming language and compiler. git.urbach.dev/cli/q
high-performance programming-language compiler
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798// This example is currently Windows only and it// needs the raylib.dll file next to the executable.// It creates a window showing the number of frames// per second and a rectangle that can be moved with// the arrow keys.//// Linux users can use WINE after adding raylib.dll://// q build examples/raylib -os windows// wine examples/raylib/raylib.exe//const { CANVAS_WIDTH = 1280 CANVAS_HEIGHT = 720}main() { raylib.InitWindow(CANVAS_WIDTH, CANVAS_HEIGHT, "raylib example\0".ptr) raylib.SetTargetFPS(1000) player := new(Player) { x: CANVAS_WIDTH / 2, y: CANVAS_HEIGHT / 2, width: 10, height: 10, } loop { if raylib.WindowShouldClose() { raylib.CloseWindow() return } input(player) update(player) draw(player) }}input(player *Player) { if raylib.IsKeyDown(Key.Right) { player.x += 1 } if raylib.IsKeyDown(Key.Left) { player.x -= 1 } if raylib.IsKeyDown(Key.Down) { player.y += 1 } if raylib.IsKeyDown(Key.Up) { player.y -= 1 }}update(player *Player) { minX := player.width / 2 if player.x < minX { player.x = minX } maxX := CANVAS_WIDTH - minX if player.x > maxX { player.x = maxX } minY := player.height / 2 if player.y < minY { player.y = minY } maxY := CANVAS_HEIGHT - minY if player.y > maxY { player.y = maxY }}draw(player *Player) { raylib.BeginDrawing() raylib.ClearBackground(Color{r: 0, g: 0, b: 0, a: 255}) raylib.DrawFPS(10, 10) raylib.DrawRectangle(player.x-player.width/2, player.y-player.height/2, player.width, player.height, Color{r: 0, g: 255, b: 0, a: 255}) raylib.EndDrawing()}Player { x int y int width int height int}