2024-12-15 09:10:19 +00:00
|
|
|
structure GameUpdate =
|
|
|
|
|
struct
|
|
|
|
|
fun update (game, input) =
|
|
|
|
|
let
|
2025-01-07 13:31:17 +00:00
|
|
|
val {player, walls, wallTree, platforms, platformTree, enemies, enemyTree} =
|
|
|
|
|
game
|
2024-12-24 19:00:11 +00:00
|
|
|
|
2024-12-24 12:05:44 +00:00
|
|
|
val player = Player.runPhysicsAndInput (game, input)
|
2024-12-24 19:00:11 +00:00
|
|
|
|
2025-01-11 13:45:29 +00:00
|
|
|
(* check and react to enemy collisions with player projectile *)
|
|
|
|
|
val enemies =
|
|
|
|
|
ProjectileEnemy.checkCollisions
|
|
|
|
|
(#projectiles player, enemies, enemyTree)
|
2024-12-27 18:12:42 +00:00
|
|
|
val enemyTree = Enemy.generateTree enemies
|
2025-01-11 13:45:29 +00:00
|
|
|
|
|
|
|
|
(* check player-enemy collisions and react *)
|
|
|
|
|
val (player, enemies, enemyTree) =
|
|
|
|
|
PlayerEnemy.checkCollisions (player, enemies, enemyTree)
|
2024-12-15 09:10:19 +00:00
|
|
|
in
|
2024-12-17 21:42:06 +00:00
|
|
|
{ player = player
|
|
|
|
|
, walls = walls
|
|
|
|
|
, wallTree = wallTree
|
|
|
|
|
, platforms = platforms
|
|
|
|
|
, platformTree = platformTree
|
2024-12-19 03:08:26 +00:00
|
|
|
, enemies = enemies
|
|
|
|
|
, enemyTree = enemyTree
|
2024-12-17 21:42:06 +00:00
|
|
|
}
|
2024-12-15 09:10:19 +00:00
|
|
|
end
|
|
|
|
|
end
|