From e622ccec2dc98df6b1e2406da02c587e19b610e1 Mon Sep 17 00:00:00 2001 From: Andrea <634arl@gmail.com> Date: Mon, 20 Jan 2025 19:11:32 -0600 Subject: [PATCH] Sprig App - el gato --- games/el-gato.js | 182 ++++++++++++++++++++++++++++++++++++++++++ games/img/el-gato.png | Bin 0 -> 19505 bytes 2 files changed, 182 insertions(+) create mode 100644 games/el-gato.js create mode 100644 games/img/el-gato.png diff --git a/games/el-gato.js b/games/el-gato.js new file mode 100644 index 0000000000..12171ddd62 --- /dev/null +++ b/games/el-gato.js @@ -0,0 +1,182 @@ +/* +@title: gatitoj +@author: arojeza +@tags: ['tutorial'] +@addedOn: 2025-01-20 + +*/ + +// Create tunes for movement and victory +const izquierda = tune` +500, +500: G5-500, +15000;`; +const derecha = tune` +500, +500: D5/500, +15000;`; + +const winTune = tune` +500: C5-500, +500: E5-500, +500: G5-500, +500: C6-500, +15000;`; + +// Define sprites +const player = "p"; +const fish = "f"; +const background = "b"; + +// Assign bitmap art to each sprite +setLegend( + [player, bitmap` +33333......33333 +3003888888830003 +3000838888890003 +3008888839999003 +3388888899999333 +.38822799922733. +.38822799822733. +.39977799977733. +.39999300093333. +0000000000000000 +.30003330333000. +0003333000333300 +..333300300333.. +...3330333033... +....33333333.... +................`], + [fish, bitmap` +................ +.....9...9...... +.....99.99...... +.....99999...... +......999....... +.....99999...... +....9999999..... +....9999999..... +....9920999..... +.....99999...... +.....99999...... +......999....... +................ +................ +................ +................`], + [background, bitmap` +7777777777777777 +7777777777777777 +7777777777777777 +7777777777777777 +7777777777777777 +7777777777777777 +7777777777777777 +7777777777777777 +7777777777777777 +7777777777777777 +7777777777777777 +7777777777777777 +7777777777777777 +7777777777777777 +7777777777777777 +7777777777777777`] +); + +// Set the background +setBackground(background); + +// Initialize level +let level = 0; + +// Define map +const levels = [ + map` +bbbbbbb +bbbbbbb +bbbbbbb +bbbbbbb +bbbpbbb` +]; + +setMap(levels[level]); + +// Display the current level +addText(`Level: ${level}`, { x: 6, y: 2, color: color`3` }); + +// Function to update level text +function updateLevelText() { + clearText(); + addText(`Level: ${level}`, { x: 6, y: 2, color: color`3` }); +} + +// Generate falling fish periodically +setInterval(() => { + const x = Math.floor(Math.random() * width()); + addSprite(x, 0, fish); // Add a fish at a random x position +}, 1000); // One fish every second + +// Make fish fall +setInterval(() => { + const allFish = getAll(fish); + for (const f of allFish) { + if (f.y < height() - 1) { + f.y += 1; // Move fish down + } else { + f.remove(); // Remove fish that reach the bottom + } + } +}, 500); + +// Check for collisions with fish +setInterval(() => { + const playerSprite = getFirst(player); + + if (playerSprite) { // Ensure the player exists + const allFish = getAll(fish); + + for (const f of allFish) { + if (f.x === playerSprite.x && f.y === playerSprite.y) { + f.remove(); // Remove the fish + level += 1; // Increase the level + updateLevelText(); + + // Check for victory + if (level === 15) { + clearText(); + // Remove all sprites + getAll(player).forEach(sprite => sprite.remove()); + getAll(fish).forEach(sprite => sprite.remove()); + // Display "You Win!" message + addText("You Win!", { x: 6, y: 6, color: color`5` }); + playTune(winTune); // Play victory tune + return; // Stop further game logic + } + } + } + } +}, 100); // Check for collisions every 100 msdd + +// Player movement controls +onInput("a", () => { + const playerSprite = getFirst(player); + if (playerSprite && playerSprite.x > 0) { // Ensure the player exists + playerSprite.x -= 1; + playTune(izquierda); + } +}); + +onInput("d", () => { + const playerSprite = getFirst(player); + if (playerSprite && playerSprite.x < width() - 1) { // Ensure the player exists + playerSprite.x += 1; + playTune(derecha); + } +}); + +// Reset level +onInput("j", () => { + level = 0; + updateLevelText(); + setMap(levels[level]); +}); diff --git a/games/img/el-gato.png b/games/img/el-gato.png new file mode 100644 index 0000000000000000000000000000000000000000..fd6e35004748dae9501a91f2f541e5abdc806b2e GIT binary patch literal 19505 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 AtN;K2 literal 0 HcmV?d00001