Initial 2d camera setup
This commit is contained in:
@@ -0,0 +1,28 @@
|
|||||||
|
package game
|
||||||
|
|
||||||
|
import rl "vendor:raylib"
|
||||||
|
|
||||||
|
camera_init :: proc(player: Player, camera_zoom: f32) -> rl.Camera2D {
|
||||||
|
offset_adjust := (TILE_SIZE / 2) * camera_zoom
|
||||||
|
|
||||||
|
return rl.Camera2D {
|
||||||
|
target = player.pos,
|
||||||
|
offset = rl.Vector2{ f32(GAME_WIDTH/2 - offset_adjust), f32(GAME_HEIGHT/2 - offset_adjust) },
|
||||||
|
rotation = 0,
|
||||||
|
zoom = camera_zoom
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
update_camera :: proc(player_pos: rl.Vector2, camera: ^rl.Camera2D) {
|
||||||
|
//camera.target = rl.Vector2Lerp(camera.target, player_pos, 0.2)
|
||||||
|
camera.target = player_pos
|
||||||
|
}
|
||||||
|
|
||||||
|
draw_camera :: proc(camera: ^rl.Camera2D) {
|
||||||
|
view_width := GAME_WIDTH / camera.zoom
|
||||||
|
view_height := GAME_HEIGHT / camera.zoom
|
||||||
|
|
||||||
|
top_left := camera.target - rl.Vector2{ f32(view_width)/2, f32(view_height)/2 }
|
||||||
|
|
||||||
|
rl.DrawRectangleLines(i32(top_left.x), i32(top_left.y), i32(view_width), i32(view_height), rl.RED)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user