0xc3 пре 2 недеља
родитељ
комит
5fdacba68e
2 измењених фајлова са 491 додато и 276 уклоњено
  1. 433 276
      src/cmd/sandbox/main.odin
  2. 58 0
      src/core/input/input.odin

Разлика између датотеке није приказан због своје велике величине
+ 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)]
+}

Неке датотеке нису приказане због велике количине промена