add function to generate quad tree from falling enemies
This commit is contained in:
@@ -3,6 +3,32 @@ struct
|
|||||||
open EnemyType
|
open EnemyType
|
||||||
open EntityType
|
open EntityType
|
||||||
|
|
||||||
|
(* - Generating tree of falling enemies - *)
|
||||||
|
structure FallingTree =
|
||||||
|
MakeGapMapFolder
|
||||||
|
(struct
|
||||||
|
structure Pair = FallingEnemyPair
|
||||||
|
|
||||||
|
type env = unit
|
||||||
|
type state = QuadTree.t
|
||||||
|
|
||||||
|
fun fold (fallingID, falling: EnemyType.falling_enemy, (), quadTree) =
|
||||||
|
let
|
||||||
|
val {x, y, ...} = falling
|
||||||
|
val size = Constants.enemySize
|
||||||
|
in
|
||||||
|
QuadTree.insert (x, y, size, size, fallingID, quadTree)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
fun generateTree falling =
|
||||||
|
FallingTree.foldUnordered
|
||||||
|
( falling
|
||||||
|
, ()
|
||||||
|
, QuadTree.create (Constants.worldWidth, Constants.worldHeight)
|
||||||
|
)
|
||||||
|
|
||||||
|
(* - Drawing falling enemies - *)
|
||||||
structure FallingDrawVec =
|
structure FallingDrawVec =
|
||||||
MakeGapMapFolder
|
MakeGapMapFolder
|
||||||
(struct
|
(struct
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
structure PlayerAttack =
|
structure PlayerAttack =
|
||||||
struct
|
struct
|
||||||
(* - Handle collisions where player hits enemy directly - *)
|
(* - Handle collisions where player hits enemy directly - *)
|
||||||
structure AttackEnemies =
|
structure PlayerAttackEnemy =
|
||||||
MakeQuadTreeFold
|
MakeQuadTreeFold
|
||||||
(struct
|
(struct
|
||||||
type env = unit
|
type env = unit
|
||||||
@@ -45,7 +45,7 @@ struct
|
|||||||
FACING_RIGHT => x + Constants.playerSize
|
FACING_RIGHT => x + Constants.playerSize
|
||||||
| FACING_LEFT => x - length)
|
| FACING_LEFT => x - length)
|
||||||
|
|
||||||
val (defeatedList, enemyMap) = AttackEnemies.foldRegion
|
val (defeatedList, enemyMap) = PlayerAttackEnemy.foldRegion
|
||||||
(x, y, length, height, (), ([], enemyMap), enemyTree)
|
(x, y, length, height, (), ([], enemyMap), enemyTree)
|
||||||
|
|
||||||
val defeatedList = Vector.fromList defeatedList
|
val defeatedList = Vector.fromList defeatedList
|
||||||
|
|||||||
Reference in New Issue
Block a user