diff --git a/src/enemy.odin b/src/enemy.odin index b4b26ec..0898039 100644 --- a/src/enemy.odin +++ b/src/enemy.odin @@ -84,11 +84,9 @@ spawn_enemy :: proc(enemy_array: ^[MAX_ENEMIES]Enemy, assets: ^Enemy_Assets, ene -update_enemies :: proc(enemy_array: ^[MAX_ENEMIES]Enemy, assets: ^Enemy_Assets) { +update_enemies :: proc(enemy_array: ^[MAX_ENEMIES]Enemy, assets: ^Enemy_Assets, dt: f32) { for &enemy in enemy_array { moving := false - dt := rl.GetFrameTime() - enemy.state = moving ? .WALK : .IDLE animation_play(&enemy.animation, &assets.clips[enemy.state]) diff --git a/src/game.odin b/src/game.odin index a61ff9d..84469c8 100644 --- a/src/game.odin +++ b/src/game.odin @@ -43,26 +43,19 @@ game_init :: proc() -> Game { game_should_run :: proc(game: ^Game) -> bool { return !rl.WindowShouldClose() } game_update :: proc(game: ^Game) { - active_gamepad: i32 = -1 + dt := rl.GetFrameTime() - for i in i32(0)..<4 { - if rl.IsGamepadAvailable(i) { - name := string(rl.GetGamepadName(i)) - if strings.contains(name, "Mouse") do continue - if strings.contains(name, "Keyboard") do continue - active_gamepad = i - break - } - } - - update_player(&game.player, &game.assets.player, game.camera, game.current_map, &game.enemies, game.enemy_cnt) + update_player(&game.player, &game.assets.player, game.camera, game.current_map, &game.enemies, game.enemy_count, dt) update_camera(&game.player, &game.camera, game.current_map.width_px, game.current_map.height_px) - spawn_enemy(&game.enemies, &game.assets.enemy, &game.enemy_cnt, game.current_map) - update_enemies(&game.enemies, &game.assets.enemy) + if update_timer(&game.enenmy_spawn_timer, dt) { + spawn_enemy(&game.enemies, &game.assets.enemy, &game.enemy_count, game.current_map) + } + update_enemies(&game.enemies, &game.assets.enemy, dt) // @ DEBUG debug_camera_update(&game.debug) + } game_draw :: proc(game: ^Game) { diff --git a/src/player.odin b/src/player.odin index 9973b1c..310bcf4 100644 --- a/src/player.odin +++ b/src/player.odin @@ -56,11 +56,10 @@ get_player_collider :: proc(player: ^Player, pos: rl.Vector2) -> rl.Rectangle { update_player :: proc( player: ^Player, assets: ^Player_Assets, camera: rl.Camera2D, - game_map: Game_Map, enemies: ^[MAX_ENEMIES]Enemy, active_enemies: int + game_map: Game_Map, enemies: ^[MAX_ENEMIES]Enemy, active_enemies: int, + dt: f32 ) { moving := false - - dt := rl.GetFrameTime() input_dir := rl.Vector2{0,0} if rl.IsKeyDown(.W) || rl.IsKeyDown(.UP) { moving = true; input_dir.y -= 1 }