User prompt
karakterin ve düşmanları y ekseninde %2 aşağı taşı
User prompt
karakterin ve düşmanları y ekseninde %44.4 aşağı taşı
User prompt
karakterin ve düşmanları y ekseninde %45 aşağı taşı
User prompt
karakterin ve düşmanları y ekseninde %44 aşağı taşı
User prompt
karakterin ve düşmanları y ekseninde %40 aşağı taşı
User prompt
karakterin ve düşmanları y ekseninde %30 aşağı taşı
User prompt
karakterin ve düşmanları y ekseninde %45 aşağı taşı
User prompt
karakterin ve düşmanları y ekseninde aşağı indir
User prompt
karakterin ve düşmanları y ekseninde %10 aşağı indir
User prompt
karakterin ve düşmanları y ekseninde %45 aşağı indir
User prompt
karakterin ve düşmanları y ekseninde %20 aşağı indir
User prompt
arkapılanı çoğalt ve hareket etsin ↪💡 Consider importing and using the following plugins: @upit/tween.v1
Code edit (3 edits merged)
Please save this source code
User prompt
bir düşman x eksenini otasından geçtikten sonra diğer düşman spawn olsun
User prompt
düşmanlar aynı gelmesin bir düşman 2 den fazla peş peşe gelmesin
Code edit (1 edits merged)
Please save this source code
Code edit (1 edits merged)
Please save this source code
User prompt
düşmanlar ekrana aynı anda girmesin ve 2 den fazla aynı düşman gelmesin
User prompt
plantenemy geliş hızını %3 artır
User prompt
yerçekimini %2 artıt
User prompt
plantenemy geliş hızını %2 artır
User prompt
plantenemy zıplamasını azalt
User prompt
farklı düşman çeşitleri için yeni 2 adet asset oluştur
Remix started
Copy Mario vs Monsters
/**** * Classes ****/ // 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(); } }; }); // Define a class for flying enemies var FlyingEnemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('flyingEnemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 7; self.amplitude = 100; self.frequency = 0.03; self.initialY = 0; self.angle = Math.random() * Math.PI * 2; self.passed = false; self.update = function () { self.x -= self.speed; self.y = self.initialY + Math.sin(self.angle) * self.amplitude; self.angle += self.frequency; if (self.x < -100) { self.destroy(); } }; return self; }); // Define a class for plant enemies var PlantEnemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('plantEnemy', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 4; self.passed = false; self.canJump = true; self.jumpInterval = Math.floor(Math.random() * 100) + 50; self.jumpCounter = 0; self.velocityY = 0; self.isJumping = false; self.update = function () { self.x -= self.speed; // Jump logic self.jumpCounter++; if (self.jumpCounter >= self.jumpInterval && self.canJump && !self.isJumping) { self.isJumping = true; self.velocityY = -15; self.jumpCounter = 0; } if (self.isJumping) { self.y += self.velocityY; self.velocityY += 0.6; if (self.y >= 2732 / 2) { self.y = 2732 / 2; self.isJumping = false; self.velocityY = 0; } } if (self.x < -100) { 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 = 25; self.isJumping = false; self.velocityY = 0; self.update = function () { if (self.isJumping) { self.y += self.velocityY; self.velocityY += 0.35; // Decreased gravity effect by 30% if (self.y >= 2732 / 2) { // Ground level self.y = 2732 / 2; self.isJumping = false; self.velocityY = 0; } } }; self.jump = function () { if (!self.isJumping) { self.isJumping = true; self.velocityY = -self.jumpHeight; } }; }); /**** * 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 / 2; // Initialize enemies var enemies = []; var enemySpawnInterval = 100; var enemySpawnCounter = 0; var lastEnemyType = -1; // Track the last enemy type that was spawned var sameTypeCount = 0; // Counter for consecutive same-type enemies var canSpawn = true; // Flag to control enemy spawning // Create a new Text2 object to display the score var scoreText = new Text2('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; // Handle game updates game.update = function () { player.update(); // Spawn enemies enemySpawnCounter++; if (enemySpawnCounter >= enemySpawnInterval && canSpawn) { // Check if any enemies are at the screen edge (about to enter) var enemiesEnteringScreen = false; for (var i = 0; i < enemies.length; i++) { if (enemies[i].x >= 2048 - 300) { // Buffer zone at screen edge enemiesEnteringScreen = true; break; } } if (!enemiesEnteringScreen) { // Randomly choose enemy type var enemyType = Math.floor(Math.random() * 3); // Always make sure we don't spawn the same enemy type more than twice in a row if (enemyType === lastEnemyType) { sameTypeCount++; // If we already have 2 of the same type, force a different type if (sameTypeCount >= 2) { // Get all possible enemy types except the last one var availableTypes = [0, 1, 2].filter(function (type) { return type !== lastEnemyType; }); // Select randomly from available types enemyType = availableTypes[Math.floor(Math.random() * availableTypes.length)]; sameTypeCount = 0; } } else { sameTypeCount = 0; } var enemy; if (enemyType === 0) { enemy = new Enemy(); enemy.x = 2048; enemy.y = 2732 / 2; // Fixed the typo 'it =' to just be '=' } else if (enemyType === 1) { enemy = new FlyingEnemy(); enemy.x = 2048; enemy.y = 2732 / 3; // Flying enemy starts higher enemy.initialY = enemy.y; } else { enemy = new PlantEnemy(); enemy.x = 2048; enemy.y = 2732 / 2; } // Save the current enemy type as the last one lastEnemyType = enemyType; enemies.push(enemy); game.addChild(enemy); // Randomize the spawn interval for the next enemy // Ensure enemies don't spawn too close together by setting a minimum interval enemySpawnInterval = Math.floor(Math.random() * 100) + 100; // Min: 100, Max: 199 enemySpawnCounter = 0; } } // Update enemies for (var j = enemies.length - 1; j >= 0; j--) { enemies[j].update(); if (player.intersects(enemies[j])) { LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } else if (player.x > enemies[j].x && !enemies[j].passed) { enemies[j].passed = true; LK.setScore(LK.getScore() + 1); scoreText.setText(LK.getScore()); } } }; // Handle player jump game.down = function (x, y, obj) { player.jump(); };
===================================================================
--- original.js
+++ change.js
@@ -85,15 +85,15 @@
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 5;
- self.jumpHeight = 35;
+ self.jumpHeight = 25;
self.isJumping = false;
self.velocityY = 0;
self.update = function () {
if (self.isJumping) {
self.y += self.velocityY;
- self.velocityY += 0.4; // Decreased gravity effect by 30%
+ self.velocityY += 0.35; // Decreased gravity effect by 30%
if (self.y >= 2732 / 2) {
// Ground level
self.y = 2732 / 2;
self.isJumping = false;
@@ -162,16 +162,19 @@
}
if (!enemiesEnteringScreen) {
// Randomly choose enemy type
var enemyType = Math.floor(Math.random() * 3);
- // Check if we need to avoid the same enemy type
+ // Always make sure we don't spawn the same enemy type more than twice in a row
if (enemyType === lastEnemyType) {
sameTypeCount++;
- // If we already have 2 of the same type, choose a different type
+ // If we already have 2 of the same type, force a different type
if (sameTypeCount >= 2) {
- do {
- enemyType = Math.floor(Math.random() * 3);
- } while (enemyType === lastEnemyType);
+ // Get all possible enemy types except the last one
+ var availableTypes = [0, 1, 2].filter(function (type) {
+ return type !== lastEnemyType;
+ });
+ // Select randomly from available types
+ enemyType = availableTypes[Math.floor(Math.random() * availableTypes.length)];
sameTypeCount = 0;
}
} else {
sameTypeCount = 0;
@@ -179,9 +182,9 @@
var enemy;
if (enemyType === 0) {
enemy = new Enemy();
enemy.x = 2048;
- enemy.y = it = 2732 / 2;
+ enemy.y = 2732 / 2; // Fixed the typo 'it =' to just be '='
} else if (enemyType === 1) {
enemy = new FlyingEnemy();
enemy.x = 2048;
enemy.y = 2732 / 3; // Flying enemy starts higher
@@ -195,9 +198,10 @@
lastEnemyType = enemyType;
enemies.push(enemy);
game.addChild(enemy);
// Randomize the spawn interval for the next enemy
- enemySpawnInterval = Math.floor(Math.random() * 150) + 50;
+ // Ensure enemies don't spawn too close together by setting a minimum interval
+ enemySpawnInterval = Math.floor(Math.random() * 100) + 100; // Min: 100, Max: 199
enemySpawnCounter = 0;
}
}
// Update enemies