From 6b1c0ca445baffee7bed6933a12d0d66702c4849 Mon Sep 17 00:00:00 2001 From: He4eT Date: Thu, 5 Jun 2025 10:06:04 +0200 Subject: [PATCH] game: PC on arena --- game.js | 112 ++++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 92 insertions(+), 20 deletions(-) diff --git a/game.js b/game.js index 84afc3b..ad25731 100644 --- a/game.js +++ b/game.js @@ -6,6 +6,8 @@ // version: 0.1 // script: js +// api: https://github.com/nesbox/TIC-80/wiki/API + function TIC() { gameStages[currentStage]() } @@ -21,9 +23,26 @@ let currentStage = 'mainMenu' // State -let t = 0 -let x = 96 -let y = 24 +let interface = { + arenaX: 7, + arenaY: 7, + spriteSize: 7, + spriteHalfSize: 3, +} + +let arena = { + top: 0, + right: 225, + bottom: 89, + left: 0, +} + +let player = { + sprite: 1, + speed: 1, + x: 0, + y: 0, +} // Main Menu @@ -44,15 +63,49 @@ function mainMenu() { // Gameplay function gameplay() { - if (btn(BTN_U)) y-- - if (btn(BTN_D)) y++ - if (btn(BTN_L)) x-- - if (btn(BTN_R)) x++ + // chackColisions() - cls(13) - spr(1 + (((t % 60) / 30) | 0) * 2, x, y, 14, 3, 0, 0, 2, 2) - print('HELLO WORLD!', 84, 84) - t++ + handleMoves() + handleMorse() + + // spawn() + // moveEnemies() + + drawInterface() + drawArena() + // drawFX() + // drawEnemies() + drawPlayer() +} + +function handleMoves() { + player.speed = btn(BTN_A) ? 2 : 1 + + if (btn(BTN_U)) player.y = Math.max(player.y - player.speed, arena.top) + if (btn(BTN_D)) player.y = Math.min(player.y + player.speed, arena.bottom) + if (btn(BTN_L)) player.x = Math.max(player.x - player.speed, arena.left) + if (btn(BTN_R)) player.x = Math.min(player.x + player.speed, arena.right) +} + +function handleMorse() { + player.sprite = btn(BTN_B) ? 17 : 1 +} + +function drawInterface() { + cls(0) +} + +function drawArena() { + map(0, 0, 30, 15) +} + +function drawPlayer() { + spr( + player.sprite, + interface.arenaX + player.x - interface.spriteHalfSize, + interface.arenaY + player.y - interface.spriteHalfSize, + 0, + ) } // Constants @@ -63,16 +116,35 @@ const [BTN_U, BTN_D, BTN_L, BTN_R, BTN_A, BTN_B, BTN_X, BTN_Y] = [ ] // -// 001:eccccccccc888888caaaaaaaca888888cacccccccacc0ccccacc0ccccacc0ccc -// 002:ccccceee8888cceeaaaa0cee888a0ceeccca0ccc0cca0c0c0cca0c0c0cca0c0c -// 003:eccccccccc888888caaaaaaaca888888cacccccccacccccccacc0ccccacc0ccc -// 004:ccccceee8888cceeaaaa0cee888a0ceeccca0cccccca0c0c0cca0c0c0cca0c0c -// 017:cacccccccaaaaaaacaaacaaacaaaaccccaaaaaaac8888888cc000cccecccccec -// 018:ccca00ccaaaa0ccecaaa0ceeaaaa0ceeaaaa0cee8888ccee000cceeecccceeee -// 019:cacccccccaaaaaaacaaacaaacaaaaccccaaaaaaac8888888cc000cccecccccec -// 020:ccca00ccaaaa0ccecaaa0ceeaaaa0ceeaaaa0cee8888ccee000cceeecccceeee +// 001:8800088080000080008880000088800000888000800000808800088000000000 +// 002:0000000000000000000000000000000000000000000001110000012200000123 +// 003:0000000000000000000000000000000000000000111111112222222233333333 +// 004:0000000000000000000000000000000000000000111000002210000032100000 +// 017:0000000008808800080008000008000008000800088088000000000000000000 +// 018:0000012300000123000001230000012300000123000001230000012300000123 +// 019:2111111111111111111111111111111111111111111111111111111111111111 +// 020:3210000032100000321000003210000032100000321000003210000032100000 +// 034:0000012300000122000001110000000000000000000000000000000000000000 +// 035:3333333322222222111111110000000000000000000000000000000000000000 +// 036:3210000022100000111000000000000000000000000000000000000000000000 // +// +// 000:203030303030303030303030303030303030303030303030303030303040000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +// 001:213131313131313131313131313131313131313131313131313131313141000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +// 002:213131313131313131313131313131313131313131313131313131313141000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +// 003:213131313131313131313131313131313131313131313131313131313141000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +// 004:213131313131313131313131313131313131313131313131313131313141000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +// 005:213131313131313131313131313131313131313131313131313131313141000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +// 006:213131313131313131313131313131313131313131313131313131313141000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +// 007:213131313131313131313131313131313131313131313131313131313141000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +// 008:213131313131313131313131313131313131313131313131313131313141000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +// 009:213131313131313131313131313131313131313131313131313131313141000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +// 010:213131313131313131313131313131313131313131313131313131313141000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +// 011:213131313131313131313131313131313131313131313131313131313141000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +// 012:223232323232323232323232323232323232323232323232323232323242000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 +// + // // 000:00000000ffffffff00000000ffffffff // 001:0123456789abcdeffedcba9876543210 @@ -88,5 +160,5 @@ const [BTN_U, BTN_D, BTN_L, BTN_R, BTN_A, BTN_B, BTN_X, BTN_Y] = [ // // -// 000:1a1c2c5d275db13e53ef7d57ffcd75a7f07038b76425717929366f3b5dc941a6f673eff7f4f4f494b0c2566c86333c57 +// 000:000000002b36073642586e75657b8383949693a1a1eee8d5b58900cb4b16dc322fd336826c71c4268bd22aa198859900 //