game: gameover sound

This commit is contained in:
He4eT 2025-06-18 19:55:29 +02:00
commit 78a40cee31

24
game.js
View file

@ -102,6 +102,7 @@ const arena = {
bottom: 105, bottom: 105,
left: 0, left: 0,
}, },
gameoverTimestamp: 0,
highscore: pmem(0), highscore: pmem(0),
wave: 0, wave: 0,
waveSeed: 0, waveSeed: 0,
@ -223,11 +224,7 @@ function handleMorse() {
} }
function drawPlayer() { function drawPlayer() {
drawSprite( drawSprite(playerStates[player.state].sprite, player.position)
playerStates[player.state].sprite,
player.position.x,
player.position.y,
)
} }
/* Enemies */ /* Enemies */
@ -435,11 +432,7 @@ function destroyEnemiesByLetter(letter) {
function drawEnemies() { function drawEnemies() {
enemies.forEach((enemy) => enemies.forEach((enemy) =>
drawSprite( drawSprite(enemyBlueprints[enemy.type].sprite, enemy.positions[0]),
enemyBlueprints[enemy.type].sprite,
enemy.positions[0].x,
enemy.positions[0].y,
),
) )
} }
@ -632,13 +625,14 @@ function gameoverScreen() {
false, false,
) )
if (anyKeyPressed()) { if (time() - arena.gameoverTimestamp >= 500 && anyKeyPressed()) {
reset() reset()
} }
} }
} }
function gameover() { function gameover() {
sfx(0, 'F-2', 30, 1, 5)
effects = [ effects = [
{ {
type: 'flash', type: 'flash',
@ -650,6 +644,7 @@ function gameover() {
pmem(0, player.score) pmem(0, player.score)
} }
arena.gameoverTimestamp = time()
currentScreen = 'gameoverScreen' currentScreen = 'gameoverScreen'
} }
@ -694,9 +689,9 @@ function worldToScreen({ x, y }) {
} }
} }
function drawSprite(spriteIndex, x, y) { function drawSprite(spriteIndex, position) {
const colorkey = 0 const colorkey = 0
const center = worldToScreen({ x, y }) const center = worldToScreen(position)
spr(spriteIndex, center.x - SPRITE_RADIUS, center.y - SPRITE_RADIUS, colorkey) spr(spriteIndex, center.x - SPRITE_RADIUS, center.y - SPRITE_RADIUS, colorkey)
} }
@ -704,7 +699,7 @@ function drawSprite(spriteIndex, x, y) {
function anyKeyPressed() { function anyKeyPressed() {
return arr(8) return arr(8)
.map((_, i) => i) .map((_, i) => i)
.some(btnp) .some((b) => btnp(b, 500))
} }
/* Constants */ /* Constants */
@ -751,6 +746,7 @@ const BTN_Y = 7
* bottom: number, * bottom: number,
* left: number, * left: number,
* }, * },
* gameoverTimestamp: number,
* highscore: number, * highscore: number,
* wave: number, * wave: number,
* waveSeed: number, * waveSeed: number,