User prompt
When player touched portal, the background were changed
User prompt
Portallar haraket etsin. Canavarlar gibi
User prompt
Spawn portals when player kukla 10 enemies. When player touched a portal the background were changed marioba background
User prompt
Speak turkish
User prompt
Portalın y pozisyonu diğer karakterlerlerle aynı olsun
User prompt
Spawn portala
User prompt
Don't spawn portala in beginnig
User prompt
Spawn mario portal. But they cannot move
User prompt
When player touched Monsters body and head the Monster dies
User prompt
When player touched Monsters head Monster dies
User prompt
When player touched Monsters head, Monster döş
User prompt
When player touched Monsters player döş
User prompt
Spawn Monsters
User prompt
Spawn coins
User prompt
Spawn the coins up bees
User prompt
Spawn bees
User prompt
Lower the Y cortinates player and enemies
User prompt
Oyunçunun ve düşmanın y kordinatini aşağı indir
User prompt
Zıplama gücünü az çoğalt
User prompt
İkili zıplama YAP ve zıplamasını azaltın
User prompt
Karakter düşmanın üzerine zıplayanda düşman ölsün
User prompt
Zıplamasaını artırın Karakter
User prompt
Zıplamasını azaltın. Karakter
Remix started
Copy Mario vs Monsters
/**** * Classes ****/ // Define a class for bee enemies var Bee = Container.expand(function () { var self = Container.call(this); var beeGraphics = self.attachAsset('Bee', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 6; // Slightly faster than regular enemies self.verticalSpeed = 2; self.direction = 1; // 1 for down, -1 for up self.verticalRange = 150; // How far the bee can move up and down self.startY = 0; // Will be set on initialization self.update = function () { // Move horizontally self.x -= self.speed; // Move vertically in a wave pattern self.y += self.verticalSpeed * self.direction; // Change direction when reaching vertical limits if (self.y > self.startY + self.verticalRange) { self.direction = -1; } else if (self.y < self.startY - self.verticalRange) { self.direction = 1; } // Remove when off screen if (self.x < -50) { self.destroy(); } }; return self; }); // Define a class for collectible coins var Coin = Container.expand(function () { var self = Container.call(this); var coinGraphics = self.attachAsset('Coin', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.update = function () { self.x -= self.speed; // Remove when off screen if (self.x < -50) { self.destroy(); } }; return self; }); // Define a class for enemies var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.update = function () { self.x -= self.speed; if (self.x < -50) { self.destroy(); } }; return self; }); // Define a class for monster enemies var Monster = Container.expand(function () { var self = Container.call(this); var monsterGraphics = self.attachAsset('Enemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 4; // Slightly slower than regular enemies self.health = 2; // Monsters take two hits to defeat self.update = function () { self.x -= self.speed; // Remove when off screen if (self.x < -50) { self.destroy(); } }; return self; }); //<Assets used in the game will automatically appear here> // Define a class for the player character var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 5; self.jumpHeight = 30; // Slightly increased jump height self.isJumping = false; self.velocityY = 0; self.jumpCount = 0; // Track number of jumps self.maxJumps = 2; // Allow double jump self.update = function () { if (self.isJumping) { self.y += self.velocityY; self.velocityY += 0.7; // Decreased gravity effect by 30% if (self.y >= 2732 * 0.8) { // Ground level self.y = 2732 * 0.8; self.isJumping = false; self.velocityY = 0; self.jumpCount = 0; // Reset jump count when landing } } }; self.jump = function () { if (!self.isJumping || self.jumpCount < self.maxJumps) { self.isJumping = true; self.velocityY = -self.jumpHeight; self.jumpCount++; // Increment jump count } }; }); // Define a class for Mario portal var Portal = Container.expand(function () { var self = Container.call(this); var portalGraphics = self.attachAsset('Creat', { anchorX: 0.5, anchorY: 0.5 }); // Scale up the portal for better visibility portalGraphics.scale.set(2.5, 2.5); // Set movement properties similar to monsters self.speed = 3; // Slightly slower than other enemies // Add a rotation animation to make it look more like a portal self.update = function () { // Move horizontally like enemies self.x -= self.speed; // Continue rotating portalGraphics.rotation += 0.02; // Remove when off screen if (self.x < -50) { self.destroy(); } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x87CEEB // Sky blue background }); /**** * Game Code ****/ var background = game.addChild(LK.getAsset('background', { anchorX: 0, anchorY: 0 })); background.x = 0; background.y = 0; // Initialize player var player = game.addChild(new Player()); player.x = 2048 / 2; player.y = 2732 * 0.8; // Position player lower on the screen // Initialize enemies var enemies = []; var enemySpawnInterval = 100; var enemySpawnCounter = 0; // Initialize bees var bees = []; var beeSpawnInterval = 200; var beeSpawnCounter = 0; // Initialize coins var coins = []; var coinSpawnInterval = 80; var coinSpawnCounter = 0; // Initialize monsters var monsters = []; var monsterSpawnInterval = 300; var monsterSpawnCounter = 0; // Initialize portals var portals = []; var portalCount = 3; // Number of portals to create var enemyKillCount = 0; // Track enemy kills for portal spawning var needPortalSpawn = false; // Flag to trigger portal spawn // Create a new Text2 object to display the score var scoreText = new Text2('Puan: 0', { size: 100, fill: 0xFFFFFF }); // Add the score text to the game GUI at the top center of the screen LK.gui.top.addChild(scoreText); scoreText.x = 2048 / 2; scoreText.y = 0; // Function to spawn portals function spawnPortal() { var portal = new Portal(); portal.x = 2048; portal.y = 2732 * 0.8; // Position at same height as other characters portals.push(portal); game.addChild(portal); needPortalSpawn = false; // Reset the spawn flag } // Portal spawning is now tied to enemy kills, no need for timed spawning // Handle game updates game.update = function () { player.update(); // Spawn enemies enemySpawnCounter++; if (enemySpawnCounter >= enemySpawnInterval) { var enemy = new Enemy(); enemy.x = 2048; enemy.y = 2732 * 0.8; // Position enemies at the same height as player enemies.push(enemy); game.addChild(enemy); // Randomize the spawn interval for the next enemy enemySpawnInterval = Math.floor(Math.random() * 150) + 50; enemySpawnCounter = 0; } // Spawn bees beeSpawnCounter++; if (beeSpawnCounter >= beeSpawnInterval) { var bee = new Bee(); bee.x = 2048; // Position bees higher than ground enemies, random Y position bee.y = 2732 * 0.8 - 200 - Math.random() * 300; bee.startY = bee.y; // Set the center of vertical movement bees.push(bee); game.addChild(bee); // Randomize the spawn interval for the next bee beeSpawnInterval = Math.floor(Math.random() * 200) + 150; beeSpawnCounter = 0; } // Spawn coins coinSpawnCounter++; if (coinSpawnCounter >= coinSpawnInterval) { var coin = new Coin(); coin.x = 2048; // Position coins at random heights coin.y = 2732 * 0.8 - 50 - Math.random() * 400; coins.push(coin); game.addChild(coin); // Randomize the spawn interval for the next coin coinSpawnInterval = Math.floor(Math.random() * 100) + 50; coinSpawnCounter = 0; } // Spawn monsters monsterSpawnCounter++; if (monsterSpawnCounter >= monsterSpawnInterval) { var monster = new Monster(); monster.x = 2048; monster.y = 2732 * 0.8; // Position monsters at the same height as player monsters.push(monster); game.addChild(monster); // Randomize the spawn interval for the next monster monsterSpawnInterval = Math.floor(Math.random() * 250) + 150; monsterSpawnCounter = 0; } // Update enemies for (var j = enemies.length - 1; j >= 0; j--) { enemies[j].update(); if (player.intersects(enemies[j])) { // Check if player is jumping and falling (coming from above) if (player.isJumping && player.velocityY > 0 && player.y < enemies[j].y) { // Kill enemy when jumped on enemies[j].destroy(); enemies.splice(j, 1); // Bounce the player back up a bit player.velocityY = -player.jumpHeight * 0.6; // Add score LK.setScore(LK.getScore() + 1); scoreText.setText('Puan: ' + LK.getScore()); // Track enemy kills for portal spawning enemyKillCount++; // Check if player killed 10 enemies if (enemyKillCount >= 10) { needPortalSpawn = true; enemyKillCount = 0; // Reset counter } } else { // Player collided with enemy but not from above LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver("Oyun Bitti!"); } } else if (player.x > enemies[j].x && !enemies[j].passed) { enemies[j].passed = true; LK.setScore(LK.getScore() + 1); scoreText.setText('Puan: ' + LK.getScore()); } } // Update bees for (var k = bees.length - 1; k >= 0; k--) { bees[k].update(); if (player.intersects(bees[k])) { // Check if player is jumping and falling (coming from above) if (player.isJumping && player.velocityY > 0) { // Kill bee when jumped on bees[k].destroy(); bees.splice(k, 1); // Bounce the player back up a bit player.velocityY = -player.jumpHeight * 0.6; // Add score (bees are worth 2 points) LK.setScore(LK.getScore() + 2); scoreText.setText('Puan: ' + LK.getScore()); } else { // Player collided with bee but not from above LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver("Oyun Bitti!"); } } else if (player.x > bees[k].x && !bees[k].passed) { bees[k].passed = true; LK.setScore(LK.getScore() + 1); scoreText.setText('Puan: ' + LK.getScore()); } } // Update coins for (var i = coins.length - 1; i >= 0; i--) { coins[i].update(); // Check for collision with player if (player.intersects(coins[i])) { // Collect coin coins[i].destroy(); coins.splice(i, 1); // Add 5 points for collecting a coin LK.setScore(LK.getScore() + 5); scoreText.setText('Puan: ' + LK.getScore()); } } // Update monsters for (var m = monsters.length - 1; m >= 0; m--) { monsters[m].update(); if (player.intersects(monsters[m])) { // Always kill the monster when player touches it, regardless of position monsters[m].destroy(); monsters.splice(m, 1); // Bounce the player back up a bit player.velocityY = -player.jumpHeight * 0.6; // Add score (monsters are worth 3 points when defeated) LK.setScore(LK.getScore() + 3); scoreText.setText('Puan: ' + LK.getScore()); } else if (player.x > monsters[m].x && !monsters[m].passed) { monsters[m].passed = true; LK.setScore(LK.getScore() + 2); scoreText.setText('Puan: ' + LK.getScore()); } } // Update portals (animation only, no movement) for (var p = 0; p < portals.length; p++) { portals[p].update(); // Check if player intersects with a portal if (player.intersects(portals[p])) { // Visual feedback when player touches a portal LK.effects.flashObject(portals[p], 0x00ff00, 500); // Change background to Marioba background background.texture = LK.getAsset('Marioba', { width: 2048, height: 2732, anchorX: 0, anchorY: 0 }).texture; // Remove the portal after use portals[p].destroy(); portals.splice(p, 1); break; } } // Check if we need to spawn a new portal if (needPortalSpawn && portals.length < portalCount) { spawnPortal(); } }; // Handle player jump game.down = function (x, y, obj) { player.jump(); };
===================================================================
--- original.js
+++ change.js
@@ -351,9 +351,14 @@
if (player.intersects(portals[p])) {
// Visual feedback when player touches a portal
LK.effects.flashObject(portals[p], 0x00ff00, 500);
// Change background to Marioba background
- background.texture = LK.getAsset('Marioba', {}).texture;
+ background.texture = LK.getAsset('Marioba', {
+ width: 2048,
+ height: 2732,
+ anchorX: 0,
+ anchorY: 0
+ }).texture;
// Remove the portal after use
portals[p].destroy();
portals.splice(p, 1);
break;
Turtle. In-Game asset. 2d. High contrast. No shadows
Boy running. In-Game asset. 2d. High contrast. No shadows
Mario background. In-Game asset. 2d. High contrast. No shadows
Bee. In-Game asset. 2d. High contrast. No shadows
Coin. In-Game asset. 2d. High contrast. No shadows
Monster. In-Game asset. 2d. High contrast. No shadows
Mario portal.. In-Game asset. 2d. High contrast. No shadows
Mario background night. In-Game asset. 2d. High contrast. No shadows