make enemies move per loop (calling update EnemyMap by calling EnemyBehaviour)
This commit is contained in:
@@ -1,16 +1,44 @@
|
|||||||
structure Enemy =
|
structure Enemy =
|
||||||
struct
|
struct
|
||||||
(* - Updating state of enemies per loop - *)
|
(* - Updating state of enemies per loop - *)
|
||||||
(*
|
structure UpdateEnemies =
|
||||||
structure UpdateEnemies = MakeGapMapMapper (struct
|
MakeGapMapMapper
|
||||||
structure Pair = EnemyPair
|
(struct
|
||||||
|
structure Pair = EnemyPair
|
||||||
|
|
||||||
type env = {walls: wall vector, wallTree: QuadTree.t, platforms: platform
|
type env =
|
||||||
vector, platformTree: QuadTree.t}
|
{ walls: Wall.t vector
|
||||||
|
, wallTree: QuadTree.t
|
||||||
|
, platforms: Platform.t vector
|
||||||
|
, platformTree: QuadTree.t
|
||||||
|
, player: PlayerType.player
|
||||||
|
, graph: PlatSet.elem vector vector
|
||||||
|
}
|
||||||
|
|
||||||
(enemy, walls, wallTree, platforms, platformTree, player, graph) =
|
type state = EnemyMap.t
|
||||||
end)
|
|
||||||
*)
|
fun map (enemy, env) =
|
||||||
|
let
|
||||||
|
val {walls, wallTree, platforms, platformTree, player, graph} = env
|
||||||
|
in
|
||||||
|
EnemyBehaviour.updateEnemyState
|
||||||
|
(enemy, walls, wallTree, platforms, platformTree, player, graph)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
fun update (enemies, walls, wallTree, platforms, platformTree, player, graph) =
|
||||||
|
let
|
||||||
|
val env =
|
||||||
|
{ walls = walls
|
||||||
|
, wallTree = wallTree
|
||||||
|
, platforms = platforms
|
||||||
|
, platformTree = platformTree
|
||||||
|
, player = player
|
||||||
|
, graph = graph
|
||||||
|
}
|
||||||
|
in
|
||||||
|
UpdateEnemies.map (enemies, env)
|
||||||
|
end
|
||||||
|
|
||||||
(* - Generating enemy tree - *)
|
(* - Generating enemy tree - *)
|
||||||
structure EnemyTree =
|
structure EnemyTree =
|
||||||
|
|||||||
@@ -16,31 +16,16 @@ struct
|
|||||||
val enemyTree = Enemy.generateTree enemies
|
val enemyTree = Enemy.generateTree enemies
|
||||||
val player = Player.runPhysicsAndInput (game, input, enemyTree)
|
val player = Player.runPhysicsAndInput (game, input, enemyTree)
|
||||||
|
|
||||||
val projectiles = #projectiles player
|
val enemies = Enemy.update
|
||||||
val projectileTree = Projectile.generateTree projectiles
|
(enemies, walls, wallTree, platforms, platformTree, player, graph)
|
||||||
|
|
||||||
(* update state of falling enemies and possibly filter *)
|
(* update state of falling enemies and possibly filter *)
|
||||||
(* todo: use enemy map
|
(* todo: use enemy map
|
||||||
val fallingEnemies = FallingEnemies.updateList
|
val fallingEnemies = FallingEnemies.updateList
|
||||||
(Vector.length fallingEnemies - 1, fallingEnemies, player, [])
|
(Vector.length fallingEnemies - 1, fallingEnemies, player, [])
|
||||||
|
|
||||||
val (enemies, fallingEnemies) = Enemy.updateEnemyList
|
val fallingEnemies = Vector.fromList fallingEnemies
|
||||||
( Vector.length enemies - 1
|
*)
|
||||||
, enemies
|
|
||||||
, projectiles
|
|
||||||
, projectileTree
|
|
||||||
, walls
|
|
||||||
, wallTree
|
|
||||||
, platforms
|
|
||||||
, platformTree
|
|
||||||
, player
|
|
||||||
, graph
|
|
||||||
, []
|
|
||||||
, fallingEnemies
|
|
||||||
)
|
|
||||||
|
|
||||||
val fallingEnemies = Vector.fromList fallingEnemies
|
|
||||||
*)
|
|
||||||
in
|
in
|
||||||
{ player = player
|
{ player = player
|
||||||
, walls = walls
|
, walls = walls
|
||||||
|
|||||||
2
oms.mlb
2
oms.mlb
@@ -33,7 +33,6 @@ fcore/enemy/enemy-pair.sml
|
|||||||
fcore/enemy/enemy-map.sml
|
fcore/enemy/enemy-map.sml
|
||||||
|
|
||||||
fcore/player/player-type.sml
|
fcore/player/player-type.sml
|
||||||
fcore/enemy/enemy.sml
|
|
||||||
fcore/game-type.sml
|
fcore/game-type.sml
|
||||||
|
|
||||||
fcore/player/player-patch.sml
|
fcore/player/player-patch.sml
|
||||||
@@ -42,6 +41,7 @@ fcore/physics.sml
|
|||||||
|
|
||||||
fcore/trace-jump.sml
|
fcore/trace-jump.sml
|
||||||
fcore/enemy/enemy-behaviour.sml
|
fcore/enemy/enemy-behaviour.sml
|
||||||
|
fcore/enemy/enemy.sml
|
||||||
fcore/enemy/falling-enemies.sml
|
fcore/enemy/falling-enemies.sml
|
||||||
fcore/player/player.sml
|
fcore/player/player.sml
|
||||||
fcore/projectile.sml
|
fcore/projectile.sml
|
||||||
|
|||||||
Reference in New Issue
Block a user