User prompt
счетчик слева
User prompt
счетчик жизней в виде красного сердца
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'set')' in or related to this line: 'livesTxt.anchor.set(1, 0); // Sets anchor to the right of the top edge of the text.' Line Number: 178
User prompt
счетчик жизней в виде сердца
User prompt
враги стоят на месте 30 секунд когда игрок соберет золотую какашку
User prompt
враги стоят на месте 200 секунд когда игрок соберет золотую какашку
User prompt
враги стоят на месте 30 секунд когда игрок соберет золотую какашку
User prompt
удали врагов на 30 секунд когда игрок соберет золотую какашку
User prompt
останови врагов на 100 секунд когда игрок соберет золотую какашку
User prompt
останови врагов на 30 секунд когда игрок соберет золотую какашку
User prompt
останови врагов на 10 секунд когда игрок соберет золотую какашку
Code edit (1 edits merged)
Please save this source code
/****
* Classes
****/
//<Assets used in the game will automatically appear here>
// Car class
var Car = Container.expand(function () {
var self = Container.call(this);
var carGraphics = self.attachAsset('car', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 5;
self.direction = 0; // 0: straight, 1: left, 2: right
self.update = function () {
if (self.direction === 1) {
self.rotation -= 0.05;
} else if (self.direction === 2) {
self.rotation += 0.05;
}
var newX = self.x + self.speed * Math.cos(self.rotation);
var newY = self.y + self.speed * Math.sin(self.rotation);
// Check if the new position is within the game area
if (newX >= 0 && newX <= 2048 && newY >= 0 && newY <= 2732) {
self.x = newX;
self.y = newY;
}
};
self.turnLeft = function () {
self.direction = 1;
};
self.turnRight = function () {
self.direction = 2;
};
self.straighten = function () {
self.direction = 0;
};
});
// Enemy class
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 2;
self.update = function () {
// Randomly change direction
if (Math.random() < 0.01) {
self.speedX = (Math.random() - 0.5) * 10;
self.speedY = (Math.random() - 0.5) * 10;
}
// Move in a random direction
self.x += self.speedX;
self.y += self.speedY;
// Keep within game area and bounce off the walls
if (self.x < 0) {
self.x = 0;
self.speedX = -self.speedX;
}
if (self.x > 2048) {
self.x = 2048;
self.speedX = -self.speedX;
}
if (self.y < 0) {
self.y = 0;
self.speedY = -self.speedY;
}
if (self.y > 2732) {
self.y = 2732;
self.speedY = -self.speedY;
}
// Check if the enemy intersects with any poop
for (var i = 0; i < spirals.length; i++) {
if (spirals[i] instanceof Poop && self.intersects(spirals[i])) {
// Remove the poop from the game
spirals[i].destroy();
spirals.splice(i, 1);
// Decrease player lives by 1
playerLives -= 1;
livesTxt.setText('Lives: ' + playerLives); // Update the displayed lives
// Increase the speed of the enemy
self.speed += 0.1;
// End the game if the player's lives reach zero
if (playerLives <= 0) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
}
}
}
};
});
var GoldenPoop = Container.expand(function () {
var self = Container.call(this);
var goldenPoopGraphics = self.attachAsset('goldenPoop', {
anchorX: 0.5,
anchorY: 0.5
});
self.reposition = function () {
self.x = Math.random() * 2048;
self.y = Math.random() * 2732;
};
});
// Life class
var Life = Container.expand(function () {
var self = Container.call(this);
var lifeGraphics = self.attachAsset('life', {
anchorX: 0.5,
anchorY: 0.5
});
self.reposition = function () {
self.x = Math.random() * 2048;
self.y = Math.random() * 2732;
};
});
// Poop class
var Poop = Container.expand(function () {
var self = Container.call(this);
var poopGraphics = self.attachAsset('poop', {
anchorX: 0.5,
anchorY: 0.5
});
self.reposition = function () {
self.x = Math.random();
self.y = Math.random();
};
});
// Spiral class
var Spiral = Container.expand(function () {
var self = Container.call(this);
self.radius = 100;
self.angle = 0;
self.speed = 0.01;
self.update = function () {
self.angle += self.speed;
self.x = 2048 / 2 + self.radius * Math.cos(self.angle);
self.y = 2732 / 2 + self.radius * Math.sin(self.angle);
if (self.y > 2732) {
self.destroy();
}
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000 //Init game with black background
});
/****
* Game Code
****/
var road = game.addChild(LK.getAsset('road', {
anchorX: 0.5,
anchorY: 0.5,
x: 2048 / 2,
y: 2732 / 2
}));
// Initialize score and lives variables
var playerScore = 100;
var playerLives = 10;
var scoreTxt = new Text2('0', {
size: 150,
fill: "#0000FF" // Blue color
});
scoreTxt.anchor.set(0.5, 0); // Sets anchor to the center of the top edge of the text.
LK.gui.top.addChild(scoreTxt); // Add the score text to the GUI overlay at the top of the screen.
// Initialize and display player lives
var livesTxt = new Text2('10', {
size: 150,
fill: "#FF0000" // Red color
});
livesTxt.anchor.set(1, 0); // Sets anchor to the right of the top edge of the text.
LK.gui.topRight.addChild(livesTxt); // Add the lives text to the GUI overlay at the top right of the screen.
var enemyScore = 0;
// Initialize variables
var car = new Car();
car.x = 2048 / 2;
car.y = 2732 / 2;
game.addChild(car);
var spirals = [];
var enemies = [];
for (var i = 0; i < 3; i++) {
var enemy = new Enemy();
enemy.x = Math.random() * 2048;
enemy.y = 2732 / 2 + 100;
enemies.push(enemy);
game.addChild(enemy);
}
// Handle touch events
game.down = function (x, y, obj) {
if (x < 2048 / 2) {
car.turnLeft();
} else {
car.turnRight();
}
};
game.up = function (x, y, obj) {
car.straighten();
};
// Update game state
game.update = function () {
car.update();
// Create spirals and poops
if (LK.ticks % 60 === 0) {
var spiral = new Spiral();
spiral.x = 2048 / 2;
spiral.y = -100;
spirals.push(spiral);
game.addChild(spiral);
var poopCount = spirals.filter(function (spiral) {
return spiral instanceof Poop;
}).length;
if (poopCount < 3) {
var poop = new Poop();
poop.x = 2048;
poop.y = 2732 / 2;
spirals.push(poop);
game.addChild(poop);
}
if (Math.random() < 0.1) {
// 10% chance to spawn golden poop
var goldenPoop = new GoldenPoop();
goldenPoop.reposition();
spirals.push(goldenPoop);
game.addChild(goldenPoop);
}
}
// Add life instances to the game
if (LK.ticks % 600 === 0) {
// every 10 seconds
var life = new Life();
life.reposition();
spirals.push(life);
game.addChild(life);
// Make life instances blink before disappearing
LK.setTimeout(function () {
var blinkInterval = LK.setInterval(function () {
life.visible = !life.visible;
}, 200);
LK.setTimeout(function () {
LK.clearInterval(blinkInterval);
var index = spirals.indexOf(life);
if (index !== -1) {
spirals.splice(index, 1);
life.destroy();
}
}, 1000);
}, 2000);
}
// Update spirals, poops, lives and enemies
for (var i = spirals.length - 1; i >= 0; i--) {
if (spirals[i] instanceof Spiral || spirals[i] instanceof Life) {
if (typeof spirals[i].update === 'function') {
spirals[i].update();
}
}
if (car.intersects(spirals[i])) {
if (spirals[i] instanceof Poop) {
if (car.intersects(spirals[i])) {
spirals[i].reposition();
spirals[i].x = Math.random() * 2048;
spirals[i].y = Math.random() * 2732;
playerScore += 100; // Increase player score by 100 when poop is collected
LK.setScore(playerScore); // Update the displayed score
scoreTxt.setText(LK.getScore()); // Update the score text
} else if (enemies.some(function (enemy) {
return enemy.intersects(spirals[i]);
})) {
spirals[i].reposition();
spirals[i].x = Math.random() * 2048;
spirals[i].y = Math.random() * 2732;
playerLives -= 1; // Decrease player lives by 1 when enemy collects poop
livesTxt.setText('Lives: ' + playerLives); // Update the displayed lives
// Make the player's car blink red when it takes damage
LK.effects.flashObject(car, 0xff0000, 1000);
}
} else if (spirals[i] instanceof GoldenPoop) {
if (car.intersects(spirals[i])) {
spirals[i].destroy();
spirals.splice(i, 1);
playerScore += 1000; // Increase player score by 1000 when golden poop is collected
LK.setScore(playerScore); // Update the displayed score
scoreTxt.setText(LK.getScore()); // Update the score text
// Disable enemies for 10 seconds
enemies.forEach(function (enemy) {
enemy.speedX = 0;
enemy.speedY = 0;
});
LK.setTimeout(function () {
enemies.forEach(function (enemy) {
enemy.speedX = (Math.random() - 0.5) * 100;
enemy.speedY = (Math.random() - 0.5) * 100;
});
}, 10000);
}
} else if (spirals[i] instanceof Life) {
if (car.intersects(spirals[i])) {
spirals[i].destroy();
spirals.splice(i, 1);
playerLives += 1; // Increase player lives by 1 when life is collected
livesTxt.setText('Lives: ' + playerLives); // Update the displayed lives
}
} else {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
}
}
}
// Update enemies
for (var i = 0; i < enemies.length; i++) {
enemies[i].update();
}
// Make the player's car blink red when player lives are less than 3
if (playerLives < 3) {
LK.effects.flashObject(car, 0xff0000, 1000);
}
// End the game if the player's lives reach zero
if (playerLives <= 0) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
}
};
toilet room background. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
fly
poop. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
мультяшный парень с темными волосами бородой и светлыми прядями. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
сердце-какашка. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
золотая какашка. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.