48 lines
1.1 KiB
Plaintext
48 lines
1.1 KiB
Plaintext
|
InitWindow := fn(w: uint, h: uint, name: ^u8): uint @import()
|
||
|
WindowShouldClose := fn(): bool @import()
|
||
|
BeginDrawing := fn(): void @import()
|
||
|
EndDrawing := fn(): void @import()
|
||
|
DrawRectangleV := fn(pos: Vec2, size: Vec2, color: Color): void @import()
|
||
|
DrawRectangle := fn(a: uint, b: uint, c: uint, d: uint, color: Color): void @import()
|
||
|
ClearBackground := fn(color: Color): void @import()
|
||
|
SetTargetFPS := fn(target: uint): void @import()
|
||
|
GetFrameTime := fn(): f32 @import()
|
||
|
|
||
|
Vec2 := struct {x: f32, y: f32}
|
||
|
Color := struct {r: u8, g: u8, b: u8, a: u8}
|
||
|
|
||
|
$W := 800
|
||
|
$H := 600
|
||
|
|
||
|
main := fn(): uint {
|
||
|
_ = InitWindow(W, H, "whawee\0".ptr)
|
||
|
|
||
|
SetTargetFPS(60)
|
||
|
|
||
|
pos := Vec2.(100, 100)
|
||
|
vel := Vec2.(300, 300)
|
||
|
size := Vec2.(100, 100)
|
||
|
color := Color.(17, 255, 17, 255)
|
||
|
|
||
|
loop if WindowShouldClose() break else {
|
||
|
BeginDrawing()
|
||
|
ClearBackground(.(0, 0, 0, 255))
|
||
|
|
||
|
DrawRectangleV(pos, size, color)
|
||
|
pos += vel * .(GetFrameTime(), GetFrameTime())
|
||
|
|
||
|
if pos.x < 0 | pos.x + size.x > W {
|
||
|
vel.x *= -1
|
||
|
color += .(32, 11, 20, 0)
|
||
|
}
|
||
|
|
||
|
if pos.y < 0 | pos.y + size.y > H {
|
||
|
vel.y *= -1
|
||
|
color += .(32, 11, 20, 0)
|
||
|
}
|
||
|
EndDrawing()
|
||
|
}
|
||
|
|
||
|
return 0
|
||
|
}
|