61 lines
1.1 KiB
Odin
61 lines
1.1 KiB
Odin
package main
|
|
|
|
import rl "vendor:raylib"
|
|
|
|
main :: proc() {
|
|
rl.InitWindow(800, 600, "grimm sprite stacking")
|
|
rl.SetTargetFPS(60)
|
|
defer rl.CloseWindow()
|
|
|
|
sprite := rl.LoadTexture("assets/Chair_strip12.png")
|
|
defer rl.UnloadTexture(sprite)
|
|
|
|
sprite_size :: 12
|
|
stack_count :: 11
|
|
|
|
camera := rl.Camera2D{}
|
|
camera.zoom = 3
|
|
camera.offset = {400, 300}
|
|
|
|
spacing: f32 = 1
|
|
rotation: f32 = 0
|
|
|
|
for !rl.WindowShouldClose() {
|
|
if rl.IsKeyPressed(rl.KeyboardKey.SPACE) {
|
|
spacing += 0.5
|
|
}
|
|
|
|
rl.BeginDrawing()
|
|
rl.ClearBackground(rl.BLUE)
|
|
|
|
rl.BeginMode2D(camera)
|
|
|
|
for i in 0 ..< stack_count {
|
|
source := rl.Rectangle {
|
|
x = f32(i * sprite_size),
|
|
y = 0,
|
|
width = sprite_size,
|
|
height = sprite_size,
|
|
}
|
|
|
|
destination := rl.Rectangle {
|
|
x = 0,
|
|
y = -spacing * f32(i),
|
|
width = sprite_size,
|
|
height = sprite_size,
|
|
}
|
|
|
|
origin := rl.Vector2{}
|
|
origin.x = sprite_size / 2
|
|
origin.y = sprite_size / 2
|
|
|
|
rl.DrawTexturePro(sprite, source, destination, origin, rotation, rl.WHITE)
|
|
}
|
|
|
|
rl.EndMode2D()
|
|
rl.EndDrawing()
|
|
|
|
rotation += 1
|
|
}
|
|
}
|