0xc3 2 hafta önce
ebeveyn
işleme
5fdacba68e
2 değiştirilmiş dosya ile 491 ekleme ve 276 silme
  1. 433 276
      src/cmd/sandbox/main.odin
  2. 58 0
      src/core/input/input.odin

Dosya farkı çok büyük olduğundan ihmal edildi
+ 433 - 276
src/cmd/sandbox/main.odin


+ 58 - 0
src/core/input/input.odin

@@ -0,0 +1,58 @@
+package input
+
+import sapp "third-party:sokol/app"
+
+MAX_KEYS :: 1024
+
+Context :: struct {
+	key_curr:       [MAX_KEYS]bool,
+	key_last:       [MAX_KEYS]bool,
+	button_curr:    [MAX_KEYS]bool,
+	button_last:    [MAX_KEYS]bool,
+	mouse_delta:    [2]f32,
+	mouse_position: [2]f32,
+	mouse_scroll:   [2]f32,
+}
+
+to_int :: proc {
+	to_int_key,
+	to_int_button,
+}
+
+@(private)
+to_int_key :: proc(code: sapp.Keycode) -> int {
+	return int(code)
+}
+
+@(private)
+to_int_button :: proc(code: sapp.Mousebutton) -> int {
+	return int(code)
+}
+
+key_just_pressed :: proc(ctx: Context, code: sapp.Keycode) -> bool {
+	idx := to_int(code)
+	return !ctx.key_last[idx] && ctx.key_curr[idx]
+}
+
+key_just_released :: proc(ctx: Context, code: sapp.Keycode) -> bool {
+	idx := to_int(code)
+	return ctx.key_last[idx] && !ctx.key_curr[idx]
+}
+
+key_is_down :: proc(ctx: Context, code: sapp.Keycode) -> bool {
+	return ctx.key_curr[to_int(code)]
+}
+
+mouse_just_pressed :: proc(ctx: Context, code: sapp.Mousebutton) -> bool {
+	idx := to_int(code)
+	return !ctx.button_last[idx] && ctx.button_curr[idx]
+}
+
+mouse_just_released :: proc(ctx: Context, code: sapp.Mousebutton) -> bool {
+	idx := to_int(code)
+	return ctx.button_last[idx] && !ctx.button_curr[idx]
+}
+
+mouse_is_down :: proc(ctx: Context, code: sapp.Mousebutton) -> bool {
+	return ctx.button_curr[to_int(code)]
+}

Bu fark içinde çok fazla dosya değişikliği olduğu için bazı dosyalar gösterilmiyor