User prompt
Reduce the time it takes for everything to arrive in 200 seconds. Make the end of the game 300 seconds
User prompt
If the time is less than 60, send only waves and monsters, if it is more, send big monsters and big wawes, if it is more than 120, send king monsters and big waves. If it's more than 200, let everything come up, and when it's 500 seconds, the game ends
User prompt
I cant see time
User prompt
Add time
User prompt
Add King Monster is damage 10 And Add Huge wawe İs damage 7. (Make Assets for them)
User prompt
Do Monster Damage is 5 and do Wawe Damage 2, add big wawe is damage 4, add big monster damage 5 (Add assets to both)
User prompt
If our life is full, let our 5 lives increase
User prompt
Delete score
Code edit (1 edits merged)
Please save this source code
User prompt
Sea Storm Survivor
Initial prompt
It is a game that takes place at sea, but monsters and waves will come to us, we will escape with our ship, add life (our health is 100) Adding a scoring system, let broken ships come and increase our health by 10, but if our health is full, 5 Rise
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var PlayerShip = Container.expand(function () { var self = Container.call(this); var shipGraphics = self.attachAsset('playerShip', { anchorX: 0.5, anchorY: 0.5 }); self.maxHealth = 100; self.health = 100; self.lastDamageTime = 0; self.damageDelay = 1000; // 1 second invincibility after damage self.takeDamage = function (amount) { var currentTime = Date.now(); if (currentTime - self.lastDamageTime < self.damageDelay) { return false; // Still invincible } self.health -= amount; self.lastDamageTime = currentTime; // Flash red when taking damage LK.effects.flashObject(self, 0xff0000, 500); LK.getSound('damage').play(); if (self.health <= 0) { self.health = 0; return true; // Game over } return false; }; self.heal = function (amount) { var oldHealth = self.health; self.health = Math.min(self.maxHealth, self.health + amount); return self.health - oldHealth; // Return actual healing amount }; return self; }); var SeaMonster = Container.expand(function () { var self = Container.call(this); var monsterGraphics = self.attachAsset('seaMonster', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 2 + Math.random() * 2; self.direction = Math.random() * Math.PI * 2; self.update = function () { self.x += Math.cos(self.direction) * self.speed; self.y += Math.sin(self.direction) * self.speed; }; return self; }); var Wave = Container.expand(function () { var self = Container.call(this); var waveGraphics = self.attachAsset('wave', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 3 + Math.random() * 3; self.direction = Math.random() * Math.PI * 2; self.update = function () { self.x += Math.cos(self.direction) * self.speed; self.y += Math.sin(self.direction) * self.speed; // Add slight rotation for wave effect waveGraphics.rotation += 0.02; }; return self; }); var Wreck = Container.expand(function () { var self = Container.call(this); var wreckGraphics = self.attachAsset('wreck', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 1 + Math.random(); self.direction = Math.random() * Math.PI * 2; self.update = function () { self.x += Math.cos(self.direction) * self.speed; self.y += Math.sin(self.direction) * self.speed; // Slight rotation for floating effect wreckGraphics.rotation += 0.01; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x001f3f }); /**** * Game Code ****/ // Game variables var player; var enemies = []; var wrecks = []; var gameStartTime = Date.now(); var lastSpawnTime = 0; var spawnDelay = 2000; // Start with 2 second spawn delay var difficultyTimer = 0; // UI elements var healthText = new Text2('Health: 100', { size: 60, fill: 0xFFFFFF }); healthText.anchor.set(0, 0); healthText.x = 150; healthText.y = 50; LK.gui.topLeft.addChild(healthText); var scoreText = new Text2('Score: 0', { size: 60, fill: 0xFFFFFF }); scoreText.anchor.set(1, 0); scoreText.x = -50; scoreText.y = 50; LK.gui.topRight.addChild(scoreText); // Create player player = game.addChild(new PlayerShip()); player.x = 1024; player.y = 1366; // Drag controls var dragNode = null; function handleMove(x, y, obj) { if (dragNode) { dragNode.x = x; dragNode.y = y; // Keep player within bounds dragNode.x = Math.max(40, Math.min(2008, dragNode.x)); dragNode.y = Math.max(60, Math.min(2672, dragNode.y)); } } game.move = handleMove; game.down = function (x, y, obj) { dragNode = player; handleMove(x, y, obj); }; game.up = function (x, y, obj) { dragNode = null; }; function spawnEnemy() { var enemy; var spawnSide = Math.floor(Math.random() * 4); // 0: top, 1: right, 2: bottom, 3: left if (Math.random() < 0.6) { // Spawn sea monster enemy = new SeaMonster(); } else { // Spawn wave enemy = new Wave(); } // Position enemy at edge of screen switch (spawnSide) { case 0: // top enemy.x = Math.random() * 2048; enemy.y = -50; break; case 1: // right enemy.x = 2098; enemy.y = Math.random() * 2732; break; case 2: // bottom enemy.x = Math.random() * 2048; enemy.y = 2782; break; case 3: // left enemy.x = -50; enemy.y = Math.random() * 2732; break; } // Point enemy toward center of screen var centerX = 1024; var centerY = 1366; enemy.direction = Math.atan2(centerY - enemy.y, centerX - enemy.x); enemies.push(enemy); game.addChild(enemy); } function spawnWreck() { var wreck = new Wreck(); // Spawn wreck from random edge var spawnSide = Math.floor(Math.random() * 4); switch (spawnSide) { case 0: // top wreck.x = Math.random() * 2048; wreck.y = -25; break; case 1: // right wreck.x = 2073; wreck.y = Math.random() * 2732; break; case 2: // bottom wreck.x = Math.random() * 2048; wreck.y = 2757; break; case 3: // left wreck.x = -25; wreck.y = Math.random() * 2732; break; } wrecks.push(wreck); game.addChild(wreck); } // Start music LK.playMusic('ocean'); game.update = function () { var currentTime = Date.now(); difficultyTimer++; // Increase difficulty over time if (difficultyTimer % 1800 == 0) { // Every 30 seconds spawnDelay = Math.max(500, spawnDelay - 100); } // Spawn enemies if (currentTime - lastSpawnTime > spawnDelay) { spawnEnemy(); lastSpawnTime = currentTime; // Sometimes spawn wreck too if (Math.random() < 0.3) { spawnWreck(); } } // Update and check enemies for (var i = enemies.length - 1; i >= 0; i--) { var enemy = enemies[i]; // Check if enemy is off screen (far off) if (enemy.x < -200 || enemy.x > 2248 || enemy.y < -200 || enemy.y > 2932) { enemy.destroy(); enemies.splice(i, 1); continue; } // Check collision with player if (enemy.intersects(player)) { var gameOver = player.takeDamage(10); if (gameOver) { LK.showGameOver(); return; } // Update health display healthText.setText('Health: ' + player.health); // Remove enemy after hit enemy.destroy(); enemies.splice(i, 1); } } // Update and check wrecks for (var j = wrecks.length - 1; j >= 0; j--) { var wreck = wrecks[j]; // Check if wreck is off screen if (wreck.x < -100 || wreck.x > 2148 || wreck.y < -100 || wreck.y > 2832) { wreck.destroy(); wrecks.splice(j, 1); continue; } // Check collision with player if (wreck.intersects(player)) { var actualHealing = player.heal(10); if (actualHealing > 0) { // Healed healthText.setText('Health: ' + player.health); } else { // Already at full health, give points instead LK.setScore(LK.getScore() + 5); } LK.getSound('pickup').play(); wreck.destroy(); wrecks.splice(j, 1); } } // Update score based on survival time var survivalTime = Math.floor((currentTime - gameStartTime) / 1000); var baseScore = survivalTime; scoreText.setText('Score: ' + (LK.getScore() + baseScore)); };
===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,286 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+var PlayerShip = Container.expand(function () {
+ var self = Container.call(this);
+ var shipGraphics = self.attachAsset('playerShip', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.maxHealth = 100;
+ self.health = 100;
+ self.lastDamageTime = 0;
+ self.damageDelay = 1000; // 1 second invincibility after damage
+ self.takeDamage = function (amount) {
+ var currentTime = Date.now();
+ if (currentTime - self.lastDamageTime < self.damageDelay) {
+ return false; // Still invincible
+ }
+ self.health -= amount;
+ self.lastDamageTime = currentTime;
+ // Flash red when taking damage
+ LK.effects.flashObject(self, 0xff0000, 500);
+ LK.getSound('damage').play();
+ if (self.health <= 0) {
+ self.health = 0;
+ return true; // Game over
+ }
+ return false;
+ };
+ self.heal = function (amount) {
+ var oldHealth = self.health;
+ self.health = Math.min(self.maxHealth, self.health + amount);
+ return self.health - oldHealth; // Return actual healing amount
+ };
+ return self;
+});
+var SeaMonster = Container.expand(function () {
+ var self = Container.call(this);
+ var monsterGraphics = self.attachAsset('seaMonster', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 2 + Math.random() * 2;
+ self.direction = Math.random() * Math.PI * 2;
+ self.update = function () {
+ self.x += Math.cos(self.direction) * self.speed;
+ self.y += Math.sin(self.direction) * self.speed;
+ };
+ return self;
+});
+var Wave = Container.expand(function () {
+ var self = Container.call(this);
+ var waveGraphics = self.attachAsset('wave', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 3 + Math.random() * 3;
+ self.direction = Math.random() * Math.PI * 2;
+ self.update = function () {
+ self.x += Math.cos(self.direction) * self.speed;
+ self.y += Math.sin(self.direction) * self.speed;
+ // Add slight rotation for wave effect
+ waveGraphics.rotation += 0.02;
+ };
+ return self;
+});
+var Wreck = Container.expand(function () {
+ var self = Container.call(this);
+ var wreckGraphics = self.attachAsset('wreck', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 1 + Math.random();
+ self.direction = Math.random() * Math.PI * 2;
+ self.update = function () {
+ self.x += Math.cos(self.direction) * self.speed;
+ self.y += Math.sin(self.direction) * self.speed;
+ // Slight rotation for floating effect
+ wreckGraphics.rotation += 0.01;
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x001f3f
+});
+
+/****
+* Game Code
+****/
+// Game variables
+var player;
+var enemies = [];
+var wrecks = [];
+var gameStartTime = Date.now();
+var lastSpawnTime = 0;
+var spawnDelay = 2000; // Start with 2 second spawn delay
+var difficultyTimer = 0;
+// UI elements
+var healthText = new Text2('Health: 100', {
+ size: 60,
+ fill: 0xFFFFFF
+});
+healthText.anchor.set(0, 0);
+healthText.x = 150;
+healthText.y = 50;
+LK.gui.topLeft.addChild(healthText);
+var scoreText = new Text2('Score: 0', {
+ size: 60,
+ fill: 0xFFFFFF
+});
+scoreText.anchor.set(1, 0);
+scoreText.x = -50;
+scoreText.y = 50;
+LK.gui.topRight.addChild(scoreText);
+// Create player
+player = game.addChild(new PlayerShip());
+player.x = 1024;
+player.y = 1366;
+// Drag controls
+var dragNode = null;
+function handleMove(x, y, obj) {
+ if (dragNode) {
+ dragNode.x = x;
+ dragNode.y = y;
+ // Keep player within bounds
+ dragNode.x = Math.max(40, Math.min(2008, dragNode.x));
+ dragNode.y = Math.max(60, Math.min(2672, dragNode.y));
+ }
+}
+game.move = handleMove;
+game.down = function (x, y, obj) {
+ dragNode = player;
+ handleMove(x, y, obj);
+};
+game.up = function (x, y, obj) {
+ dragNode = null;
+};
+function spawnEnemy() {
+ var enemy;
+ var spawnSide = Math.floor(Math.random() * 4); // 0: top, 1: right, 2: bottom, 3: left
+ if (Math.random() < 0.6) {
+ // Spawn sea monster
+ enemy = new SeaMonster();
+ } else {
+ // Spawn wave
+ enemy = new Wave();
+ }
+ // Position enemy at edge of screen
+ switch (spawnSide) {
+ case 0:
+ // top
+ enemy.x = Math.random() * 2048;
+ enemy.y = -50;
+ break;
+ case 1:
+ // right
+ enemy.x = 2098;
+ enemy.y = Math.random() * 2732;
+ break;
+ case 2:
+ // bottom
+ enemy.x = Math.random() * 2048;
+ enemy.y = 2782;
+ break;
+ case 3:
+ // left
+ enemy.x = -50;
+ enemy.y = Math.random() * 2732;
+ break;
+ }
+ // Point enemy toward center of screen
+ var centerX = 1024;
+ var centerY = 1366;
+ enemy.direction = Math.atan2(centerY - enemy.y, centerX - enemy.x);
+ enemies.push(enemy);
+ game.addChild(enemy);
+}
+function spawnWreck() {
+ var wreck = new Wreck();
+ // Spawn wreck from random edge
+ var spawnSide = Math.floor(Math.random() * 4);
+ switch (spawnSide) {
+ case 0:
+ // top
+ wreck.x = Math.random() * 2048;
+ wreck.y = -25;
+ break;
+ case 1:
+ // right
+ wreck.x = 2073;
+ wreck.y = Math.random() * 2732;
+ break;
+ case 2:
+ // bottom
+ wreck.x = Math.random() * 2048;
+ wreck.y = 2757;
+ break;
+ case 3:
+ // left
+ wreck.x = -25;
+ wreck.y = Math.random() * 2732;
+ break;
+ }
+ wrecks.push(wreck);
+ game.addChild(wreck);
+}
+// Start music
+LK.playMusic('ocean');
+game.update = function () {
+ var currentTime = Date.now();
+ difficultyTimer++;
+ // Increase difficulty over time
+ if (difficultyTimer % 1800 == 0) {
+ // Every 30 seconds
+ spawnDelay = Math.max(500, spawnDelay - 100);
+ }
+ // Spawn enemies
+ if (currentTime - lastSpawnTime > spawnDelay) {
+ spawnEnemy();
+ lastSpawnTime = currentTime;
+ // Sometimes spawn wreck too
+ if (Math.random() < 0.3) {
+ spawnWreck();
+ }
+ }
+ // Update and check enemies
+ for (var i = enemies.length - 1; i >= 0; i--) {
+ var enemy = enemies[i];
+ // Check if enemy is off screen (far off)
+ if (enemy.x < -200 || enemy.x > 2248 || enemy.y < -200 || enemy.y > 2932) {
+ enemy.destroy();
+ enemies.splice(i, 1);
+ continue;
+ }
+ // Check collision with player
+ if (enemy.intersects(player)) {
+ var gameOver = player.takeDamage(10);
+ if (gameOver) {
+ LK.showGameOver();
+ return;
+ }
+ // Update health display
+ healthText.setText('Health: ' + player.health);
+ // Remove enemy after hit
+ enemy.destroy();
+ enemies.splice(i, 1);
+ }
+ }
+ // Update and check wrecks
+ for (var j = wrecks.length - 1; j >= 0; j--) {
+ var wreck = wrecks[j];
+ // Check if wreck is off screen
+ if (wreck.x < -100 || wreck.x > 2148 || wreck.y < -100 || wreck.y > 2832) {
+ wreck.destroy();
+ wrecks.splice(j, 1);
+ continue;
+ }
+ // Check collision with player
+ if (wreck.intersects(player)) {
+ var actualHealing = player.heal(10);
+ if (actualHealing > 0) {
+ // Healed
+ healthText.setText('Health: ' + player.health);
+ } else {
+ // Already at full health, give points instead
+ LK.setScore(LK.getScore() + 5);
+ }
+ LK.getSound('pickup').play();
+ wreck.destroy();
+ wrecks.splice(j, 1);
+ }
+ }
+ // Update score based on survival time
+ var survivalTime = Math.floor((currentTime - gameStartTime) / 1000);
+ var baseScore = survivalTime;
+ scoreText.setText('Score: ' + (LK.getScore() + baseScore));
+};
\ No newline at end of file