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 = 40; self.isJumping = false; self.velocityY = 0; self.update = function () { if (self.isJumping) { self.y += self.velocityY; self.velocityY += 0.7; // 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; // 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) { // Randomly choose enemy type var enemyType = Math.floor(Math.random() * 3); var enemy; if (enemyType === 0) { enemy = new Enemy(); enemy.x = 2048; enemy.y = 2732 / 2; } 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; } enemies.push(enemy); game.addChild(enemy); // Randomize the spawn interval for the next enemy enemySpawnInterval = Math.floor(Math.random() * 150) + 50; 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
@@ -15,8 +15,69 @@
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);
@@ -74,9 +135,9 @@
var enemySpawnCounter = 0;
// Create a new Text2 object to display the score
var scoreText = new Text2('0', {
size: 100,
- fill: "#ffffff"
+ 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;
@@ -86,11 +147,25 @@
player.update();
// Spawn enemies
enemySpawnCounter++;
if (enemySpawnCounter >= enemySpawnInterval) {
- var enemy = new Enemy();
- enemy.x = 2048;
- enemy.y = 2732 / 2;
+ // Randomly choose enemy type
+ var enemyType = Math.floor(Math.random() * 3);
+ var enemy;
+ if (enemyType === 0) {
+ enemy = new Enemy();
+ enemy.x = 2048;
+ enemy.y = 2732 / 2;
+ } 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;
+ }
enemies.push(enemy);
game.addChild(enemy);
// Randomize the spawn interval for the next enemy
enemySpawnInterval = Math.floor(Math.random() * 150) + 50;