Bladeren bron

mouse examp[le

Karl Zylinski 2 maanden geleden
bovenliggende
commit
5610011d8d
1 gewijzigde bestanden met toevoegingen van 73 en 0 verwijderingen
  1. 73 0
      examples/mouse/mouse.odin

+ 73 - 0
examples/mouse/mouse.odin

@@ -0,0 +1,73 @@
+package karl2d_gamepad_example
+
+import k2 "../.."
+import "core:log"
+
+init :: proc() {
+	k2.init(1000, 600, "Karl2D Mouse Demo")
+}
+
+step :: proc() -> bool {
+	k2.new_frame()
+	k2.process_events()
+	k2.clear(k2.BLUE)
+
+	pos := k2.get_mouse_position()
+	k2.draw_circle(pos, 50, k2.WHITE)
+
+	left_pos := pos - {30, 20}
+	middle_pos := pos - {0, 30}
+	right_pos := pos - {-30, 20}
+
+	left_color := k2.BLACK
+	middle_color := k2.BLACK
+	right_color := k2.BLACK
+
+	if k2.mouse_button_went_down(.Left) {
+		left_color = k2.GREEN
+	} else if k2.mouse_button_is_held(.Left) {
+		left_color = k2.YELLOW
+	} else if k2.mouse_button_went_up(.Left) {
+		left_color = k2.RED
+	}
+
+	if k2.mouse_button_went_down(.Middle) {
+		middle_color = k2.GREEN
+	} else if k2.mouse_button_is_held(.Middle) {
+		middle_color = k2.YELLOW
+	} else if k2.mouse_button_went_up(.Middle) {
+		middle_color = k2.RED
+	}
+
+	if k2.mouse_button_went_down(.Right) {
+		right_color = k2.GREEN
+	} else if k2.mouse_button_is_held(.Right) {
+		right_color = k2.YELLOW
+	} else if k2.mouse_button_went_up(.Right) {
+		right_color = k2.RED
+	}
+
+	k2.draw_circle(left_pos, 10, left_color)
+	k2.draw_circle(middle_pos, 10, middle_color)
+	k2.draw_circle(right_pos, 10, right_color)
+
+	k2.present()
+	free_all(context.temp_allocator)
+	return !k2.shutdown_wanted()
+}
+
+shutdown :: proc() {
+	k2.shutdown()
+}
+
+main :: proc() {
+	context.logger = log.create_console_logger()
+	init()
+	run := true
+
+	for run {
+		run = step()
+	}
+
+	shutdown()
+}