| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- package karl2d_minimal_example
- import k2 "../.."
- import "core:mem"
- import "core:log"
- import "core:fmt"
- import "core:math"
- import "core:time"
- _ :: fmt
- _ :: mem
- tex: k2.Texture
- init :: proc() {
- k2.init(1080, 1080, "Karl2D Minimal Program", { .Resizable })
- k2.set_window_position(300, 100)
- tex = k2.load_texture_from_bytes(#load("sixten.jpg"))
- }
- t: f32
- step :: proc(dt: f32) -> bool {
- k2.process_events()
- k2.clear(k2.BLUE)
- t += dt
- pos := math.sin(t*10)*10
- rot := t*50
- k2.draw_texture_ex(tex, {0, 0, f32(tex.width), f32(tex.height)}, {pos + 400, 450, 900, 500}, {450, 250}, rot)
- k2.draw_rect({10, 10, 60, 60}, k2.GREEN)
- k2.draw_rect({20, 20, 40, 40}, k2.BLACK)
- k2.draw_circle({120, 40}, 30, k2.BLACK)
- k2.draw_circle({120, 40}, 20, k2.GREEN)
- k2.draw_text("Hellöpe!", {10, 100}, 64, k2.WHITE)
- k2.present()
- free_all(context.temp_allocator)
- res := true
- if k2.key_went_down(.Escape) {
- res = false
- }
- return res
- }
- shutdown :: proc() {
- k2.destroy_texture(tex)
- k2.shutdown()
- }
- main :: proc() {
- context.logger = log.create_console_logger()
- init()
- prev_time := time.now()
- for !k2.shutdown_wanted() {
- now := time.now()
- since := time.diff(prev_time, now)
- dt := f32(time.duration_seconds(since))
- prev_time = now
-
- if !step(dt) {
- break
- }
- }
- shutdown()
- }
|