diff options
Diffstat (limited to 'src/game.ts')
| -rw-r--r-- | src/game.ts | 40 |
1 files changed, 38 insertions, 2 deletions
diff --git a/src/game.ts b/src/game.ts index f01e2ea..3fdfa8c 100644 --- a/src/game.ts +++ b/src/game.ts @@ -1,7 +1,7 @@ import Anime from "./Animation"; import { Background } from "./drawables/Background"; import Bullet from "./drawables/Bullet"; -import { canvas, ctx } from "./consts"; +import { canvas, ctx, TOPBAR_HEIGHT } from "./consts"; import BigCircle from "./enemies/BigCircle"; import Straight from "./enemies/Straight"; import Red1 from "./enemies/Red1"; @@ -16,6 +16,7 @@ import Green1 from "./enemies/Green1"; import Green2 from "./enemies/Green2"; import Strange from "./enemies/Strange"; import White from "./enemies/White"; +// import Startscreen from "./drawables/Startscreen"; let p = new Player() let pLifes = 1; @@ -33,6 +34,7 @@ let rafId = 0; const bg = new Background() const tb = new TopBar() const hg = new Highscore() +// const ss = new Startscreen(); export function start() { p = new Player() @@ -51,6 +53,9 @@ export function start() { rafId = requestAnimationFrame(gpuLoop) } export function cpuLoop() { + // ss.move() + // newTimeout() + // return if (hg.show) { hg.move(); tb.setData(score, pLifes, rolls, highscore) @@ -60,6 +65,7 @@ export function cpuLoop() { p.move() p.shoot(bullets) bg.move() + spawnEnemies() tb.setData(score, pLifes, rolls, highscore) if (enemies.length === 0) { // enemies.push(new BigCircle(25, -20)) @@ -105,7 +111,7 @@ export function cpuLoop() { }) // console.log("aft: ", enemies.length); // playerDied({} as Enemy) - if (!bullCollPlay.length || enemCollPlay.length) playerDied(enemCollPlay) + if (bullCollPlay.length || enemCollPlay.length) playerDied(enemCollPlay) else newTimeout() } @@ -161,3 +167,33 @@ export async function drawRestartScreen() { const newTimeout = (f = cpuLoop) => { clearTimeout(intervalId); intervalId = setTimeout(f, 1000 / keys.fps) } +function spawnEnemies() { + if(bg.delta === 180) enemies.push(new Straight(80, 0)); + if(bg.delta === 180 + 20) enemies.push(new Straight(110, 0)); + if(bg.delta === 180 + 20 + 30) enemies.push(new Straight(160, 0)); + if(bg.delta === 180 + 20 + 30 + 25) enemies.push(new Straight(210, 0)); + if(bg.delta === 180 + 20 + 30 + 25 + 80) enemies.push(new Straight(130, 0)); + if(bg.delta === 180 + 20 + 30 + 25 + 80 + 50) enemies.push(new Straight(90, 0)); + if(bg.delta === 180 + 20 + 30 + 25 + 80 + 50 + 32) enemies.push(new Straight(220, 0)); + if(bg.delta === 630) enemies.push(new BigCircle(16, TOPBAR_HEIGHT - 40)) + if(bg.delta === 630 + 38) enemies.push(new Straight(90, 0), new Straight(266, 0)) + if(bg.delta === 630 + 38 + 38) enemies.push(new Straight(140, 0)) + if(bg.delta === 630 + 38 + 38 + 70) enemies.push(new Straight(30, 0)) + if(bg.delta === 630 + 38 + 38 + 70 + 30) enemies.push(new Straight(266, 0)) + if(bg.delta === 1016 + 21 * 0) enemies.push(new Red1(-20, 52)) + if(bg.delta === 1016 + 21 * 1) enemies.push(new Red1(-20, 52)) + if(bg.delta === 1016 + 21 * 2) enemies.push(new Red1(-20, 52)) + if(bg.delta === 1016 + 21 * 3) enemies.push(new Red1(-20, 52)) + if(bg.delta === 1016 + 21 * 4) enemies.push(new Red1(-20, 52)) + if(bg.delta === 1120) enemies.push(new Green1(110, canvas.height, true), new Green1(170, canvas.height, false)) + if(bg.delta === 1498) enemies.push(new Strange(160, canvas.height)) + if(bg.delta === 1498 + 45) enemies.push(new Red2(100, 0, true), new Red2(180, 0, false)) + if(bg.delta === 1498 + 45 + 90) enemies.push(new Green2(100, 0, true), new Green2(180, 0, false)) + if(bg.delta === 2000 + 85 * 0) enemies.push(new White(60, 0, true), new White(230, 0, false)) + if(bg.delta === 2000 + 85 * 1) enemies.push(new White(60, 0, true), new White(230, 0, false)) + if(bg.delta === 2000 + 85 * 2) enemies.push(new White(60, 0, true), new White(230, 0, false)) + if(bg.delta === 2000 + 85 * 3) enemies.push(new White(60, 0, true)) + + if(bg.delta > 2200) + console.log(bg.delta); +} |
