add player-flashing animation when player is attacked
This commit is contained in:
@@ -11,7 +11,7 @@ struct
|
|||||||
val jumpLimit = 150
|
val jumpLimit = 150
|
||||||
val floatLimit = 3
|
val floatLimit = 3
|
||||||
val recoilLimit = 15
|
val recoilLimit = 15
|
||||||
val attackLimit = 35
|
val attackLimit = 55
|
||||||
|
|
||||||
fun mkPlayer (health, xAxis, yAxis, x, y, jumpPressed, recoil, attacked) =
|
fun mkPlayer (health, xAxis, yAxis, x, y, jumpPressed, recoil, attacked) =
|
||||||
{ yAxis = yAxis
|
{ yAxis = yAxis
|
||||||
@@ -166,7 +166,7 @@ struct
|
|||||||
in
|
in
|
||||||
checkEnemies
|
checkEnemies
|
||||||
( FALLING, STAY_STILL, x, y, health
|
( FALLING, STAY_STILL, x, y, health
|
||||||
, jumpPressed, newRecoil, attacked
|
, jumpPressed, newRecoil, ATTACKED 0
|
||||||
, tl, platCollisions, wallCollisions, game
|
, tl, platCollisions, wallCollisions, game
|
||||||
)
|
)
|
||||||
end
|
end
|
||||||
@@ -453,10 +453,28 @@ struct
|
|||||||
end
|
end
|
||||||
|
|
||||||
(* block is placeholder asset *)
|
(* block is placeholder asset *)
|
||||||
fun getDrawVec ({x, y, ...}: player, width, height) =
|
fun helpGetDrawVec (x, y, size, width, height, attacked) =
|
||||||
|
case attacked of
|
||||||
|
NOT_ATTACKED =>
|
||||||
|
Block.lerp (x, y, size, size, width, height, 0.5, 0.5, 0.5)
|
||||||
|
| ATTACKED amt =>
|
||||||
|
if amt mod 5 = 0 then
|
||||||
|
Block.lerp (x, y, size, size, width, height, 0.9, 0.9, 0.9)
|
||||||
|
else
|
||||||
|
Block.lerp (x, y, size, size, width, height, 0.5, 0.5, 0.5)
|
||||||
|
|
||||||
|
fun getDrawVec ({x, y, attacked, ...}: player, width, height) =
|
||||||
let
|
let
|
||||||
val wratio = width / 1920.0
|
val wratio = width / 1920.0
|
||||||
val hratio = height / 1080.0
|
val hratio = height / 1080.0
|
||||||
|
val (r, g, b) =
|
||||||
|
case attacked of
|
||||||
|
NOT_ATTACKED => (0.5, 0.5, 0.5)
|
||||||
|
| ATTACKED amt =>
|
||||||
|
if amt mod 5 = 0 then
|
||||||
|
(0.9, 0.9, 0.9)
|
||||||
|
else
|
||||||
|
(0.5, 0.5, 0.5)
|
||||||
in
|
in
|
||||||
if wratio < hratio then
|
if wratio < hratio then
|
||||||
let
|
let
|
||||||
@@ -471,7 +489,7 @@ struct
|
|||||||
|
|
||||||
val realSize = realSize * wratio
|
val realSize = realSize * wratio
|
||||||
in
|
in
|
||||||
Block.lerp (x, y, realSize, realSize, width, height, 0.5, 0.5, 0.5)
|
helpGetDrawVec (x, y, realSize, width, height, attacked)
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
let
|
let
|
||||||
@@ -486,7 +504,7 @@ struct
|
|||||||
|
|
||||||
val realSize = realSize * hratio
|
val realSize = realSize * hratio
|
||||||
in
|
in
|
||||||
Block.lerp (x, y, realSize, realSize, width, height, 0.5, 0.5, 0.5)
|
helpGetDrawVec (x, y, realSize, width, height, attacked)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user