add player projectiles to game type
This commit is contained in:
@@ -23,6 +23,8 @@ sig
|
|||||||
|
|
||||||
type defeated_enemies = {angle: int}
|
type defeated_enemies = {angle: int}
|
||||||
|
|
||||||
|
type player_projectile = {x: int, y: int}
|
||||||
|
|
||||||
type player =
|
type player =
|
||||||
{ yAxis: player_y_axis
|
{ yAxis: player_y_axis
|
||||||
, xAxis: player_x_axis
|
, xAxis: player_x_axis
|
||||||
@@ -57,6 +59,8 @@ sig
|
|||||||
|
|
||||||
type game_type =
|
type game_type =
|
||||||
{ player: player
|
{ player: player
|
||||||
|
, playerProjectiles: player_projectile vector
|
||||||
|
, playerProjectileTree: QuadTree.t
|
||||||
, walls: wall vector
|
, walls: wall vector
|
||||||
, wallTree: QuadTree.t
|
, wallTree: QuadTree.t
|
||||||
, platforms: platform vector
|
, platforms: platform vector
|
||||||
@@ -94,6 +98,8 @@ struct
|
|||||||
|
|
||||||
type defeated_enemies = {angle: int}
|
type defeated_enemies = {angle: int}
|
||||||
|
|
||||||
|
type player_projectile = {x: int, y: int}
|
||||||
|
|
||||||
type player =
|
type player =
|
||||||
{ yAxis: player_y_axis
|
{ yAxis: player_y_axis
|
||||||
, xAxis: player_x_axis
|
, xAxis: player_x_axis
|
||||||
@@ -128,6 +134,8 @@ struct
|
|||||||
|
|
||||||
type game_type =
|
type game_type =
|
||||||
{ player: player
|
{ player: player
|
||||||
|
, playerProjectiles: player_projectile vector
|
||||||
|
, playerProjectileTree: QuadTree.t
|
||||||
, walls: wall vector
|
, walls: wall vector
|
||||||
, wallTree: QuadTree.t
|
, wallTree: QuadTree.t
|
||||||
, platforms: platform vector
|
, platforms: platform vector
|
||||||
@@ -171,6 +179,8 @@ struct
|
|||||||
val enemyTree = Enemy.generateTree enemies
|
val enemyTree = Enemy.generateTree enemies
|
||||||
in
|
in
|
||||||
{ player = player
|
{ player = player
|
||||||
|
, playerProjectileTree = QuadTree.empty
|
||||||
|
, playerProjectiles = Vector.fromList []
|
||||||
, walls = walls
|
, walls = walls
|
||||||
, wallTree = wallTree
|
, wallTree = wallTree
|
||||||
, platforms = platforms
|
, platforms = platforms
|
||||||
|
|||||||
@@ -98,7 +98,7 @@ struct
|
|||||||
|
|
||||||
(* add collided enemies to player record,
|
(* add collided enemies to player record,
|
||||||
* concatenating with the previous enemies defeated *)
|
* concatenating with the previous enemies defeated *)
|
||||||
val newDefeated =
|
val newDefeated =
|
||||||
Vector.map (fn id => {angle = 360}) enemyCollisions
|
Vector.map (fn id => {angle = 360}) enemyCollisions
|
||||||
|
|
||||||
val oldDefeated = #enemies player
|
val oldDefeated = #enemies player
|
||||||
@@ -150,8 +150,17 @@ struct
|
|||||||
|
|
||||||
fun update (game, input) =
|
fun update (game, input) =
|
||||||
let
|
let
|
||||||
val {player, walls, wallTree, platforms, platformTree, enemies, enemyTree} =
|
val
|
||||||
game
|
{ player
|
||||||
|
, playerProjectileTree
|
||||||
|
, playerProjectiles
|
||||||
|
, walls
|
||||||
|
, wallTree
|
||||||
|
, platforms
|
||||||
|
, platformTree
|
||||||
|
, enemies
|
||||||
|
, enemyTree
|
||||||
|
} = game
|
||||||
|
|
||||||
val player = Player.runPhysicsAndInput (game, input)
|
val player = Player.runPhysicsAndInput (game, input)
|
||||||
|
|
||||||
@@ -162,6 +171,8 @@ struct
|
|||||||
val enemyTree = Enemy.generateTree enemies
|
val enemyTree = Enemy.generateTree enemies
|
||||||
in
|
in
|
||||||
{ player = player
|
{ player = player
|
||||||
|
, playerProjectiles = playerProjectiles
|
||||||
|
, playerProjectileTree = playerProjectileTree
|
||||||
, walls = walls
|
, walls = walls
|
||||||
, wallTree = wallTree
|
, wallTree = wallTree
|
||||||
, platforms = platforms
|
, platforms = platforms
|
||||||
|
|||||||
Reference in New Issue
Block a user