diff --git a/game.js b/game.js
index ad25731..fecc7f7 100644
--- a/game.js
+++ b/game.js
@@ -16,6 +16,7 @@ function TIC() {
const gameStages = {
mainMenu,
+ gameover,
gameplay,
}
@@ -38,12 +39,14 @@ let arena = {
}
let player = {
- sprite: 1,
+ sprite: 64,
speed: 1,
x: 0,
y: 0,
}
+let enemies = []
+
// Main Menu
function mainMenu() {
@@ -60,24 +63,50 @@ function mainMenu() {
print(instruction, 12, 30, 4)
}
+// Gameover
+
+function gameover() {
+ const title = 'Game Over'
+
+ cls(0)
+
+ drawEnemies()
+ drawPlayer()
+ print(title, 12, 12, 10, false, 2)
+}
+
// Gameplay
function gameplay() {
- // chackColisions()
+ checkColisions()
handleMoves()
handleMorse()
- // spawn()
+ spawn()
// moveEnemies()
drawInterface()
drawArena()
// drawFX()
- // drawEnemies()
+ drawEnemies()
drawPlayer()
}
+function checkColisions() {
+ if (
+ enemies
+ .map((enemy) => [
+ enemy,
+ Math.hypot(player.x - enemy.x[0], player.y - enemy.y[0]),
+ ])
+ .some(([enemy, distance]) => distance < enemy.dangerZone)
+ ) {
+ cls(10)
+ currentStage = 'gameover'
+ }
+}
+
function handleMoves() {
player.speed = btn(BTN_A) ? 2 : 1
@@ -88,7 +117,20 @@ function handleMoves() {
}
function handleMorse() {
- player.sprite = btn(BTN_B) ? 17 : 1
+ player.sprite = btn(BTN_B) ? 65 : 64
+}
+
+function spawn() {
+ if (enemies.length === 0) {
+ enemies = [
+ {
+ x: [100],
+ y: [50],
+ type: 'zombie',
+ dangerZone: 8,
+ },
+ ]
+ }
}
function drawInterface() {
@@ -99,6 +141,17 @@ function drawArena() {
map(0, 0, 30, 15)
}
+function drawEnemies() {
+ enemies.forEach((enemy) => {
+ spr(
+ 80,
+ interface.arenaX + enemy.x[0] - interface.spriteHalfSize,
+ interface.arenaY + enemy.y[0] - interface.spriteHalfSize,
+ 0,
+ )
+ })
+}
+
function drawPlayer() {
spr(
player.sprite,
@@ -116,33 +169,36 @@ const [BTN_U, BTN_D, BTN_L, BTN_R, BTN_A, BTN_B, BTN_X, BTN_Y] = [
]
//
-// 001:8800088080000080008880000088800000888000800000808800088000000000
-// 002:0000000000000000000000000000000000000000000001110000012200000123
-// 003:0000000000000000000000000000000000000000111111112222222233333333
-// 004:0000000000000000000000000000000000000000111000002210000032100000
-// 017:0000000008808800080008000008000008000800088088000000000000000000
-// 018:0000012300000123000001230000012300000123000001230000012300000123
-// 019:2111111111111111111111111111111111111111111111111111111111111111
-// 020:3210000032100000321000003210000032100000321000003210000032100000
-// 034:0000012300000122000001110000000000000000000000000000000000000000
-// 035:3333333322222222111111110000000000000000000000000000000000000000
-// 036:3210000022100000111000000000000000000000000000000000000000000000
+// 001:1111110012222100123321001233210012222100111111000000000000000000
+// 002:1111111112222221123333211233332112222221111111110000000000000000
+// 016:0000000000000000000000000000000000000000000001110000012200000123
+// 017:0000000000000000000000000000000000000000111111112222222233333333
+// 018:0000000000000000000000000000000000000000111000002210000032100000
+// 032:0000012300000123000001230000012300000123000001230000012300000123
+// 033:2111111111111111111111111111111111111111111111111111111111111111
+// 034:3210000032100000321000003210000032100000321000003210000032100000
+// 048:0000012300000122000001110000000000000000000000000000000000000000
+// 049:3333333322222222111111110000000000000000000000000000000000000000
+// 050:3210000022100000111000000000000000000000000000000000000000000000
+// 064:8800088080000080008880000088800000888000800000808800088000000000
+// 065:0000000008808800080008000008000008000800088088000000000000000000
+// 080:aaaaaaa0aaaaaaa0aa000aa0aa000aa0aa000aa0aaaaaaa0aaaaaaa000000000
//
//
//