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:
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user