return (player, enemies vector) tuple from function to check player-enemy collisions, because we will later want to update both player and enemy in the event that both collide
This commit is contained in:
@@ -69,8 +69,12 @@ struct
|
|||||||
let
|
let
|
||||||
val enemyCollisions = QuadTree.getCollisions
|
val enemyCollisions = QuadTree.getCollisions
|
||||||
(x, y, size, size, 0, 0, 1920, 1080, 0, enemyTree)
|
(x, y, size, size, 0, 0, 1920, 1080, 0, enemyTree)
|
||||||
in
|
|
||||||
|
val patches =
|
||||||
checkEnemies (player, enemies, enemyCollisions, [])
|
checkEnemies (player, enemies, enemyCollisions, [])
|
||||||
|
val player = Player.withPatches (player, patches)
|
||||||
|
in
|
||||||
|
(player, enemies)
|
||||||
end
|
end
|
||||||
| ATTACKED amt =>
|
| ATTACKED amt =>
|
||||||
if amt = Player.attackedLimit then
|
if amt = Player.attackedLimit then
|
||||||
@@ -79,8 +83,11 @@ struct
|
|||||||
val enemyCollisions = QuadTree.getCollisions
|
val enemyCollisions = QuadTree.getCollisions
|
||||||
(x, y, size, size, 0, 0, 1920, 1080, 0, enemyTree)
|
(x, y, size, size, 0, 0, 1920, 1080, 0, enemyTree)
|
||||||
val lst = [W_ATTACKED NOT_ATTACKED]
|
val lst = [W_ATTACKED NOT_ATTACKED]
|
||||||
in
|
val patches =
|
||||||
checkEnemies (player, enemies, enemyCollisions, lst)
|
checkEnemies (player, enemies, enemyCollisions, lst)
|
||||||
|
val player = Player.withPatches (player, patches)
|
||||||
|
in
|
||||||
|
(player, enemies)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
(* if attacked, don't detect collisions,
|
(* if attacked, don't detect collisions,
|
||||||
@@ -89,15 +96,20 @@ struct
|
|||||||
let
|
let
|
||||||
val amt = amt + 1
|
val amt = amt + 1
|
||||||
val attacked = ATTACKED amt
|
val attacked = ATTACKED amt
|
||||||
|
val player = Player.withPatches
|
||||||
|
(player, [W_ATTACKED attacked])
|
||||||
in
|
in
|
||||||
[W_ATTACKED attacked]
|
(player, enemies)
|
||||||
end)
|
end)
|
||||||
| MAIN_ATTACKING amt =>
|
| MAIN_ATTACKING amt =>
|
||||||
let
|
let
|
||||||
val enemyCollisions = QuadTree.getCollisions
|
val enemyCollisions = QuadTree.getCollisions
|
||||||
(x, y, size, size, 0, 0, 1920, 1080, 0, enemyTree)
|
(x, y, size, size, 0, 0, 1920, 1080, 0, enemyTree)
|
||||||
in
|
val patches =
|
||||||
checkEnemiesWhileAttacking (player, enemies, enemyCollisions, [])
|
checkEnemiesWhileAttacking (player, enemies, enemyCollisions, [])
|
||||||
|
val player = Player.withPatches (player, patches)
|
||||||
|
in
|
||||||
|
(player, enemies)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -109,8 +121,7 @@ struct
|
|||||||
val player = Player.runPhysicsAndInput (game, input)
|
val player = Player.runPhysicsAndInput (game, input)
|
||||||
|
|
||||||
(* check player-enemy collisions and react *)
|
(* check player-enemy collisions and react *)
|
||||||
val playerPatches = checkPlayerEnemyCollisions (player, game)
|
val (player, enemies) = checkPlayerEnemyCollisions (player, game)
|
||||||
val player = Player.withPatches (player, playerPatches)
|
|
||||||
in
|
in
|
||||||
{ player = player
|
{ player = player
|
||||||
, walls = walls
|
, walls = walls
|
||||||
|
|||||||
Reference in New Issue
Block a user