remove enemyTree (quad tree holding enemies) from game type as this is not static geometry and, since enemies are moving every frame, this should also be regenerated on every frame

This commit is contained in:
2025-01-11 22:06:08 +00:00
parent 8498eacde2
commit 49282887e3
3 changed files with 4 additions and 9 deletions

View File

@@ -70,7 +70,6 @@ sig
, platforms: platform vector , platforms: platform vector
, platformTree: QuadTree.t , platformTree: QuadTree.t
, enemies: enemy vector , enemies: enemy vector
, enemyTree: QuadTree.t
} }
val initial: game_type val initial: game_type
@@ -149,7 +148,6 @@ struct
, platforms: platform vector , platforms: platform vector
, platformTree: QuadTree.t , platformTree: QuadTree.t
, enemies: enemy vector , enemies: enemy vector
, enemyTree: QuadTree.t
} }
val initial: game_type = val initial: game_type =
@@ -185,7 +183,6 @@ struct
val enemy2 = {id = 2, x = 555, y = 945, health = 5} val enemy2 = {id = 2, x = 555, y = 945, health = 5}
val enemy3 = {id = 3, x = 979, y = 945, health = 5} val enemy3 = {id = 3, x = 979, y = 945, health = 5}
val enemies = Vector.fromList [enemy1, enemy2, enemy3] val enemies = Vector.fromList [enemy1, enemy2, enemy3]
val enemyTree = Enemy.generateTree enemies
in in
{ player = player { player = player
, walls = walls , walls = walls
@@ -193,7 +190,6 @@ struct
, platforms = platforms , platforms = platforms
, platformTree = platformTree , platformTree = platformTree
, enemies = enemies , enemies = enemies
, enemyTree = enemyTree
} }
end end
end end

View File

@@ -2,16 +2,16 @@ structure GameUpdate =
struct struct
fun update (game, input) = fun update (game, input) =
let let
val {player, walls, wallTree, platforms, platformTree, enemies, enemyTree} = val {player, walls, wallTree, platforms, platformTree, enemies} = game
game
val player = Player.runPhysicsAndInput (game, input) val player = Player.runPhysicsAndInput (game, input)
val enemyTree = Enemy.generateTree enemies
(* check player-enemy collisions and react *) (* check player-enemy collisions and react *)
val (player, enemies, enemyTree) = val (player, enemies, enemyTree) =
PlayerEnemy.checkCollisions PlayerEnemy.checkCollisions
(player, enemies, enemyTree, #projectiles player) (player, enemies, enemyTree, #projectiles player)
in in
{ player = player { player = player
, walls = walls , walls = walls
@@ -19,7 +19,6 @@ struct
, platforms = platforms , platforms = platforms
, platformTree = platformTree , platformTree = platformTree
, enemies = enemies , enemies = enemies
, enemyTree = enemyTree
} }
end end
end end

View File

@@ -422,7 +422,7 @@ struct
(* only checks for collisions with environment (walls and platforms) *) (* only checks for collisions with environment (walls and platforms) *)
fun getEnvironmentPatches (player, game) = fun getEnvironmentPatches (player, game) =
let let
val {walls, wallTree, platformTree, platforms, enemyTree, enemies, ...} = val {walls, wallTree, platformTree, platforms, enemies, ...} =
game game
val {x, y, attacked, mainAttack, ...} = player val {x, y, attacked, mainAttack, ...} = player