Jelajahi Sumber

Updated some samples

Karl Zylinski 2 bulan lalu
induk
melakukan
f4bdc58f1b

+ 7 - 8
examples/raylib_ports/2d_camera/2d_camera.odin

@@ -14,7 +14,6 @@ SCREEN_HEIGHT :: 450
 main :: proc() {
 	context.logger = log.create_console_logger()
 	k2.init(SCREEN_WIDTH, SCREEN_HEIGHT, "Karl2D: 2d camera (raylib [core] example - 2d camera)")
-	k2.set_window_position(500, 100)
 
 	player := k2.Rect { 400, 280, 40, 40 }
 	buildings: [MAX_BUILDINGS]k2.Rect
@@ -49,6 +48,7 @@ main :: proc() {
 	}
 
 	for !k2.shutdown_wanted() {
+		k2.new_frame()
 		k2.process_events()
 
 		if k2.key_is_held(.Right) { player.x += 2 }
@@ -85,7 +85,7 @@ main :: proc() {
 		k2.draw_line({-SCREEN_WIDTH*10, camera.target.y}, {SCREEN_WIDTH*10, camera.target.y}, 1, k2.RL_GREEN)
 
 		k2.set_camera(nil)
-		k2.draw_text("SCREEN AREA", {640, 10}, 20, k2.RL_RED)
+		k2.draw_text("SCREEN AREA", {640, 10}, 26, k2.RL_RED)
 
 		k2.draw_rect({0, 0, SCREEN_WIDTH, 5}, k2.RL_RED)
 		k2.draw_rect({0, 5, 5, SCREEN_HEIGHT - 10}, k2.RL_RED)
@@ -95,15 +95,14 @@ main :: proc() {
 		k2.draw_rect({10, 10, 250, 113}, {102, 191, 255, 128})
 		k2.draw_rect_outline({10, 10, 250, 113}, 1, k2.RL_BLUE)
 
-		k2.draw_text("Free 2d camera controls:", {20, 20}, 10, k2.BLACK)
-		k2.draw_text("- Right/Left to move Offset", {40, 40}, 10, k2.RL_DARKGRAY)
-		k2.draw_text("- Mouse Wheel to Zoom in-out", {40, 60}, 10, k2.RL_DARKGRAY)
-		k2.draw_text("- A / S to Rotate", {40, 80}, 10, k2.RL_DARKGRAY)
-		k2.draw_text("- R to reset Zoom and Rotation", {40, 100}, 10, k2.RL_DARKGRAY)
+		k2.draw_text("Free 2d camera controls:", {20, 20}, 15, k2.BLACK)
+		k2.draw_text("- Right/Left to move Offset", {40, 40}, 15, k2.RL_DARKGRAY)
+		k2.draw_text("- Mouse Wheel to Zoom in-out", {40, 60}, 15, k2.RL_DARKGRAY)
+		k2.draw_text("- A / S to Rotate", {40, 80}, 15, k2.RL_DARKGRAY)
+		k2.draw_text("- R to reset Zoom and Rotation", {40, 100}, 15, k2.RL_DARKGRAY)
 
 		k2.present()
 	}
 
 	k2.shutdown()
 }
-

+ 13 - 16
examples/raylib_ports/bunnymark/bunnymark.odin

@@ -6,7 +6,6 @@ import k2 "../../.."
 import "core:math/rand"
 import "core:log"
 import "core:fmt"
-import "core:time"
 
 MAX_BUNNIES :: 50000
 
@@ -29,7 +28,9 @@ init :: proc() {
 	tex_bunny = k2.load_texture_from_bytes(#load("wabbit_alpha.png"))
 }
 
-step :: proc(dt: f32) -> bool {
+step :: proc() -> bool {
+	k2.new_frame()
+
 	if k2.mouse_button_is_held(.Left) {
 		for _ in 0..<100 {
 			append(&bunnies, Bunny {
@@ -78,38 +79,34 @@ step :: proc(dt: f32) -> bool {
 		dest.y = b.position.y
 		k2.draw_texture_ex(tex_bunny, src, dest, {dest.w/2, dest.h/2}, b.rot, b.color)
 	}
-	
-	if k2.key_went_down(.B) {
-		fmt.println(len(bunnies))
-		fmt.println(1/dt)
-	}
 
-	k2.draw_text(fmt.tprintf("num bunnies: %v -- fps: %v", len(bunnies), 1/dt), {10, 20}, 40, k2.BLACK)
+	k2.draw_text(
+		fmt.tprintf("num bunnies: %v -- fps: %v", len(bunnies), 1/k2.get_frame_time()),
+		{10, 20},
+		40,
+		k2.BLACK,
+	)
 
 	k2.present()
 
 	free_all(context.temp_allocator)
 
-	return true
+	return !k2.shutdown_wanted()
 }
 
 shutdown :: proc() {
 	delete(bunnies)
 	k2.destroy_texture(tex_bunny)
-
 	k2.shutdown()
 }
 
 main :: proc() {
 	context.logger = log.create_console_logger()
 	init()
-	prev_time := time.now()
+	run := true
 
-	for !k2.shutdown_wanted() {
-		cur_time := time.now()
-		dt := f32(time.duration_seconds(time.diff(prev_time, cur_time)))
-		prev_time = cur_time
-		step(dt)
+	for run {
+		run = step()
 	}
 
 	shutdown()

+ 3 - 6
examples/raylib_ports/shaders_texture_waves/shaders_texture_waves.odin

@@ -18,7 +18,7 @@ main :: proc() {
 
 	WAVE_SHADER_DATA :: #load("wave.hlsl")
 
-	shader := k2.load_shader_from_memory(WAVE_SHADER_DATA, WAVE_SHADER_DATA)
+	shader := k2.load_shader_from_bytes(WAVE_SHADER_DATA, WAVE_SHADER_DATA)
 	seconds_loc := shader.constant_lookup["seconds"]
 	freq_x_loc := shader.constant_lookup["freqX"]
 	freq_y_loc := shader.constant_lookup["freqY"]
@@ -48,13 +48,10 @@ main :: proc() {
 	last_frame_time := time.now()
 
 	for !k2.shutdown_wanted() {
+		k2.new_frame()
 		k2.process_events()
-		now := time.now()
-		dt := f32(time.duration_seconds(time.diff(last_frame_time, now)))
-		last_frame_time = now
-		seconds += dt
 
-		k2.set_shader_constant(shader, seconds_loc, seconds)
+		k2.set_shader_constant(shader, seconds_loc, f32(k2.get_time()))
 		k2.set_shader(shader)
 
 		k2.draw_texture(texture, {0, 0})