add player projectiles to game type

This commit is contained in:
2025-01-07 11:05:53 +00:00
parent 61bb214150
commit 60c93f54cc
2 changed files with 24 additions and 3 deletions

View File

@@ -23,6 +23,8 @@ sig
type defeated_enemies = {angle: int}
type player_projectile = {x: int, y: int}
type player =
{ yAxis: player_y_axis
, xAxis: player_x_axis
@@ -57,6 +59,8 @@ sig
type game_type =
{ player: player
, playerProjectiles: player_projectile vector
, playerProjectileTree: QuadTree.t
, walls: wall vector
, wallTree: QuadTree.t
, platforms: platform vector
@@ -94,6 +98,8 @@ struct
type defeated_enemies = {angle: int}
type player_projectile = {x: int, y: int}
type player =
{ yAxis: player_y_axis
, xAxis: player_x_axis
@@ -128,6 +134,8 @@ struct
type game_type =
{ player: player
, playerProjectiles: player_projectile vector
, playerProjectileTree: QuadTree.t
, walls: wall vector
, wallTree: QuadTree.t
, platforms: platform vector
@@ -171,6 +179,8 @@ struct
val enemyTree = Enemy.generateTree enemies
in
{ player = player
, playerProjectileTree = QuadTree.empty
, playerProjectiles = Vector.fromList []
, walls = walls
, wallTree = wallTree
, platforms = platforms

View File

@@ -98,7 +98,7 @@ struct
(* add collided enemies to player record,
* concatenating with the previous enemies defeated *)
val newDefeated =
val newDefeated =
Vector.map (fn id => {angle = 360}) enemyCollisions
val oldDefeated = #enemies player
@@ -150,8 +150,17 @@ struct
fun update (game, input) =
let
val {player, walls, wallTree, platforms, platformTree, enemies, enemyTree} =
game
val
{ player
, playerProjectileTree
, playerProjectiles
, walls
, wallTree
, platforms
, platformTree
, enemies
, enemyTree
} = game
val player = Player.runPhysicsAndInput (game, input)
@@ -162,6 +171,8 @@ struct
val enemyTree = Enemy.generateTree enemies
in
{ player = player
, playerProjectiles = playerProjectiles
, playerProjectileTree = playerProjectileTree
, walls = walls
, wallTree = wallTree
, platforms = platforms