aboutsummaryrefslogtreecommitdiff
path: root/src/main.odin
diff options
context:
space:
mode:
authorXander Swan <[hidden email]>2026-01-01 18:32:20 -0500
committerXander Swan <[hidden email]>2026-01-01 18:32:20 -0500
commit65a2ceda55198dab3bab75c06c0d50adeb0a1101 (patch)
tree2a08400520f60fcd86b381bc840bb5c739ff998a /src/main.odin
parentdc373b507ca68ada2cbf4c8e0d7949d6bc46ed9b (diff)
lots of changes + player dash
Diffstat (limited to 'src/main.odin')
-rw-r--r--src/main.odin86
1 files changed, 39 insertions, 47 deletions
diff --git a/src/main.odin b/src/main.odin
index ff794f6..3a90917 100644
--- a/src/main.odin
+++ b/src/main.odin
@@ -24,55 +24,44 @@ Rect :: struct {
}
state: struct {
- player: Player,
+ camera: rl.Camera2D,
platform_list: Entity_List(Platform),
-
- room: tiled.Map,
}
init :: proc() {
+ state.camera.zoom = 1
+ // state.camera.offset = {draw.SCREEN_WIDTH/2, draw.SCREEN_HEIGHT/2}
+
init_keybinds()
draw.init()
- init_player(&state.player)
+ init_player()
- room, err := tiled.load_map("res/room_begin.tmj")
- if err != .NONE {
- log.errorf("Error loading map (%v)", err)
- }
- state.room = room
+ // room, err := tiled.load_map("res/room_begin.tmj")
+ // if err != .NONE {
+ // log.errorf("Error loading map (%v)", err)
+ // }
+ // state.room = room
- make_map_collisions :: proc(
- x: i32,
- y: i32,
- tile: tiled.Tile,
- tile_set: tiled.Tile_Set,
- ) {
- objs, is_object_layer := tile.object_group.layer.(tiled.Object_Layer)
- if !is_object_layer {
- return
- }
+ tiled.load_world("res/map.world")
+ tiled.open_new_room_at({0, 0})
- for obj in objs {
- make_platform({
- Vec2{f32(x), f32(y)} + obj.position,
- obj.size,
- })
- }
- }
-
- tiled.iterate_map_tiles(state.room, make_map_collisions)
+ setup_map_collisions()
}
frame :: proc() {
- update_player(&state.player, rl.GetFrameTime())
+ update_player(rl.GetFrameTime())
draw.new_frame()
+
+ rl.BeginMode2D(state.camera)
+
+ draw_player()
+ tiled.draw_map(tiled.current_room.tmap)
+ draw_platforms()
- draw_player(state.player)
- tiled.draw_map(state.room)
- // draw_platforms()
+ rl.EndMode2D()
fps_text := fmt.caprintf(
"FPS: %v", rl.GetFPS(),
@@ -84,27 +73,27 @@ frame :: proc() {
}
cleanup :: proc() {
- delete_player(state.player)
+ delete_player()
delete_entity_list(state.platform_list)
- tiled.delete_map(state.room)
+ tiled.delete_world()
phys.destroy_world()
}
main :: proc() {
- when ODIN_DEBUG {
- track: mem.Tracking_Allocator
- mem.tracking_allocator_init(&track, context.allocator)
- context.allocator = mem.tracking_allocator(&track)
+ when ODIN_DEBUG {
+ track: mem.Tracking_Allocator
+ mem.tracking_allocator_init(&track, context.allocator)
+ context.allocator = mem.tracking_allocator(&track)
- defer {
- if len(track.allocation_map) > 0 {
- fmt.eprintf(
+ defer {
+ if len(track.allocation_map) > 0 {
+ fmt.eprintf(
"=== %v allocations not freed: ===\n",
len(track.allocation_map),
)
total := 0
- for _, entry in track.allocation_map {
- fmt.eprintf(
+ for _, entry in track.allocation_map {
+ fmt.eprintf(
"- %v bytes @ %v (%v, mode %v)\n",
entry.size,
entry.location,
@@ -112,12 +101,12 @@ main :: proc() {
entry.mode,
)
total += entry.size
- }
+ }
fmt.eprintf("=== a total of %v bytes unfreed ===\n", total)
- }
- mem.tracking_allocator_destroy(&track)
- }
+ }
+ mem.tracking_allocator_destroy(&track)
+ }
}
logger := log.create_console_logger()
@@ -131,6 +120,9 @@ main :: proc() {
init()
for !rl.WindowShouldClose() {
+ // pbody := phys.get_body(player.body_handle)
+ // state.camera.target = {pbody.pos.x, pbody.pos.y}
+
frame()
free_all(context.temp_allocator)