Code edit (2 edits merged)
Please save this source code
User prompt
add big flying enemies
User prompt
make the enemies size change every time and randomize their speed
Code edit (3 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Text is not a constructor' in or related to this line: 'var scoreText = new Text('0', {' Line Number: 83
Code edit (1 edits merged)
Please save this source code
User prompt
fix score text. add right into the game
Remix started
Copy Mario vs Monsters
/**** * Classes ****/ // Define a class for big flying enemies var BigEnemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5, scaleX: 2, scaleY: 2 }); self.speed = Math.random() * 5 + 5; self.update = function () { self.x -= self.speed; if (self.x < -50) { self.destroy(); } }; }); // Define a class for enemies var Enemy = Container.expand(function () { var self = Container.call(this); // Randomize enemy size var size = Math.random() * 0.5 + 0.5; var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5, scaleX: size, scaleY: size }); // Randomize enemy speed self.speed = Math.random() * 5 + 5; self.update = function () { self.x -= self.speed; if (self.x < -50) { self.destroy(); } }; }); //<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: 0x000000 }); // Add the score text to the game GUI at the top right of the screen game.addChild(scoreText); scoreText.x = 2048 / 2; scoreText.y = 100; // Handle game updates game.update = function () { player.update(); // Spawn enemies enemySpawnCounter++; if (enemySpawnCounter >= enemySpawnInterval) { var enemy; if (Math.random() < 0.2) { // 20% chance to spawn a big enemy enemy = new BigEnemy(); } else { enemy = new Enemy(); } enemy.x = 2096; 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() + (enemies[j] instanceof BigEnemy ? 2 : 1)); // Big enemies give 2 points scoreText.setText(LK.getScore()); } } }; // Handle player jump game.down = function (x, y, obj) { player.jump(); };
===================================================================
--- original.js
+++ change.js
@@ -1,7 +1,24 @@
/****
* Classes
****/
+// Define a class for big flying enemies
+var BigEnemy = Container.expand(function () {
+ var self = Container.call(this);
+ var enemyGraphics = self.attachAsset('enemy', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ scaleX: 2,
+ scaleY: 2
+ });
+ self.speed = Math.random() * 5 + 5;
+ self.update = function () {
+ self.x -= self.speed;
+ if (self.x < -50) {
+ self.destroy();
+ }
+ };
+});
// Define a class for enemies
var Enemy = Container.expand(function () {
var self = Container.call(this);
// Randomize enemy size
@@ -91,9 +108,15 @@
player.update();
// Spawn enemies
enemySpawnCounter++;
if (enemySpawnCounter >= enemySpawnInterval) {
- var enemy = new Enemy();
+ var enemy;
+ if (Math.random() < 0.2) {
+ // 20% chance to spawn a big enemy
+ enemy = new BigEnemy();
+ } else {
+ enemy = new Enemy();
+ }
enemy.x = 2096;
enemy.y = 2732 / 2;
enemies.push(enemy);
game.addChild(enemy);
@@ -108,9 +131,9 @@
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);
+ LK.setScore(LK.getScore() + (enemies[j] instanceof BigEnemy ? 2 : 1)); // Big enemies give 2 points
scoreText.setText(LK.getScore());
}
}
};