User prompt
move the whole player 100 pixels to the left
Code edit (10 edits merged)
Please save this source code
User prompt
move the player 100 pixels higher
Code edit (1 edits merged)
Please save this source code
User prompt
move the score lower
User prompt
make the default game's background white
Code edit (1 edits merged)
Please save this source code
User prompt
add the background to the background container and anchor it to the bottom side of the screen
User prompt
do NOT stretch the background asset, maintain it's original size
User prompt
Add the Background asset in the background container and anchor it to the bottom edge of the screen. leave the asset at it's original size
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'height')' in or related to this line: 'var background = backgroundContainer.attachAsset('background', {' Line Number: 196
User prompt
Do not set `scaleX` and `scaleY` properties for the background asset. This will ensure the asset maintains its original size. Set the `x` and `y` coordinates to position the background correctly without stretching it. You can use the asset's `width` and `height` properties to help position it accurately.
User prompt
1. **Ensure No Scaling**: Do not set `scaleX` and `scaleY` properties for the background asset. This will ensure the asset maintains its original size. 2. **Positioning**: Set the `x` and `y` coordinates to position the background correctly without stretching it. You can use the asset's `width` and `height` properties to help position it accurately. 3. **Anchor Points**: You can still use anchor points to position the asset, but make sure they are set appropriately to avoid unintended scaling effects.
User prompt
Add the Background asset in the background container and anchor it to the bottom edge of the screen. leave the asset at it's original size
User prompt
Add the Backgroundasset in the background container and anchor it to the bottom edge of the screen. leave the asset at it's original size
User prompt
dont stretch the background, leave it at it's original asset size
User prompt
dont stretch the background, leave it at it's original asset size
User prompt
dont stretch the background, leave it at it's original asset size
User prompt
dont stretch the background image, leave it at it's original size, but anchor it to the bottom of the screen
User prompt
create a new asset named background and place it in the background container. this is the game's background and needs to stretch across the entire screen
Code edit (2 edits merged)
Please save this source code
User prompt
move the Tube lower
User prompt
add the Tube in the center of the screen inside the midground container
Code edit (11 edits merged)
Please save this source code
User prompt
add acceleration to all 3 food items
/****
* Classes
****/
// Create BackgroundContainer class
var BackgroundContainer = Container.expand(function () {
var self = Container.call(this);
return self;
});
// Create DigestionSystem class
var DigestionSystem = Container.expand(function () {
var self = Container.call(this);
self.units = [];
self.maxUnits = 10;
self.unitWidth = 100;
self.unitHeight = 100;
self.unitSpacing = 100;
self.unitFullAlpha = 1;
self.unitEmptyAlpha = 0.5;
// Initialize with 10 empty units
for (var i = 0; i < self.maxUnits; i++) {
var unit = self.attachAsset('Unit', {
anchorX: 0.5,
anchorY: 0.5,
x: i * (self.unitWidth + self.unitSpacing),
alpha: self.unitEmptyAlpha
});
self.units.push(unit);
}
return self;
});
// Create Food class
var Food = Container.expand(function () {
var self = Container.call(this);
// Attach Food asset to the food
self.foodAsset = self.attachAsset('Food', {
anchorX: 0.5,
anchorY: 0.5
});
// Set food speed
self.speed = -10;
// This is automatically called every game tick, if the food is attached!
self.update = function () {
self.speed += 0.5; // acceleration
self.x += self.speed;
};
return self;
});
// Create Food_2 class
var Food_2 = Container.expand(function () {
var self = Container.call(this);
// Attach Food_2 asset to the food
self.foodAsset = self.attachAsset('Food_2', {
anchorX: 0.5,
anchorY: 0.5
});
// Set food speed
self.speed = -10;
// This is automatically called every game tick, if the food is attached!
self.update = function () {
self.speed += 0.5; // acceleration
self.x += self.speed;
};
return self;
});
// Create Food_3 class
var Food_3 = Container.expand(function () {
var self = Container.call(this);
// Attach Food_3 asset to the food
self.foodAsset = self.attachAsset('Food_3', {
anchorX: 0.5,
anchorY: 0.5
});
// Set food speed
self.speed = -10;
// This is automatically called every game tick, if the food is attached!
self.update = function () {
self.speed += 0.5; // acceleration
self.x += self.speed;
};
return self;
});
// Create ForegroundContainer class
var ForegroundContainer = Container.expand(function () {
var self = Container.call(this);
return self;
});
// Create MidgroundContainer class
var MidgroundContainer = Container.expand(function () {
var self = Container.call(this);
return self;
});
// Create Player class
var Player = Container.expand(function () {
var self = Container.call(this);
// Attach Player_Up asset to the player
self.playerUp = self.attachAsset('Player_Up', {
anchorX: 0.5,
anchorY: 1.0,
scaleX: 1.5,
scaleY: 1.5
});
// Attach Player_Down asset to the player
self.playerDown = self.attachAsset('Player_Down', {
anchorX: 0.5,
anchorY: 1.0,
x: -120,
scaleX: 1.5,
scaleY: 1.5
});
// Initially, Player_Down is not visible
self.playerDown.visible = false;
// Method to switch between Player_Up and Player_Down
self.switchFrame = function () {
self.playerUp.visible = !self.playerUp.visible;
self.playerDown.visible = !self.playerDown.visible;
if (self.playerDown.visible) {
LK.getSound('Pooping').play();
} else {
LK.getSound('Pooping').stop();
}
};
// Method to check if the player collides with a food object
self.checkCollision = function (food) {
// Only player_up can collect food
if (self.playerUp.visible) {
var playerBounds = self.playerUp.getBounds();
if (food) {
var foodBounds = food.getBounds();
var foodCenter = {
x: foodBounds.x + foodBounds.width / 2,
y: foodBounds.y + foodBounds.height / 2
};
}
var playerCenter = {
x: playerBounds.x + playerBounds.width / 2,
y: playerBounds.y + playerBounds.height / 2
};
// Check if the center of the food is within the bounds of the player
if (foodCenter && playerBounds.contains(foodCenter.x, foodCenter.y)) {
// Do not add a unit to the Digestion System here
return true;
}
if (food) {
var foodBounds = food.getBounds();
var foodCenter = {
x: foodBounds.x + foodBounds.width / 2,
y: foodBounds.y + foodBounds.height / 2
};
if (playerBounds.contains(foodCenter.x, foodCenter.y)) {
return true;
}
if (food && food.foodAsset) {
var foodAssetBounds = food.foodAsset.getBounds();
var foodAssetCenter = {
x: foodAssetBounds.x + foodAssetBounds.width / 2,
y: foodAssetBounds.y + foodAssetBounds.height / 2
};
if (playerBounds.contains(foodAssetCenter.x, foodAssetCenter.y)) {
return true;
}
}
}
return false;
}
return false;
};
return self;
});
/****
* Initialize Game
****/
//<Assets used in the game will automatically appear here>
var game = new LK.Game({
backgroundColor: 0x87CEEB // Init game with sky blue background
});
/****
* Game Code
****/
var backgroundContainer = game.addChild(new BackgroundContainer());
var midgroundContainer = game.addChild(new MidgroundContainer());
var foregroundContainer = game.addChild(new ForegroundContainer());
// Add the Digestion System to the game
var digestionSystem = game.addChild(new DigestionSystem());
digestionSystem.x = 2048 / 2 - 400 - digestionSystem.unitWidth * digestionSystem.maxUnits / 2;
digestionSystem.y = 1700;
var score;
var scoreTxt = new Text2('0', {
size: 150,
fill: "#ffffff",
stroke: "#000000",
strokeThickness: 15
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
scoreTxt.y += 100;
// Add the Player in the center of the screen
var player = midgroundContainer.addChild(new Player());
player.x = 2048 / 2 - 500;
player.y = 2732 + 30;
// Switch the player's frame on tap
game.down = function (x, y, obj) {
player.switchFrame();
};
// Spawn food from the right edge of the screen at y position of 500
game.update = function () {
if (LK.ticks == 0) {
score = 0;
scoreTxt.setText(score);
// Reset the Digestion System
digestionSystem.units.forEach(function (unit) {
unit.alpha = digestionSystem.unitEmptyAlpha;
});
}
if (LK.ticks % 60 == 0) {
// every second
var foodBucket = [];
for (var i = 0; i < 100; i++) {
foodBucket.push(new Food());
}
for (var i = 0; i < 50; i++) {
foodBucket.push(new Food_2());
}
for (var i = 0; i < 20; i++) {
foodBucket.push(new Food_3());
}
var newFood = foodBucket[Math.floor(Math.random() * foodBucket.length)];
newFood.x = 2048; // right edge of the screen
newFood.y = 1900;
foregroundContainer.addChild(newFood);
}
// Check for collision between the player and the food
// Remove a unit from the Digestion System when the player is in the Down state
if (!player.playerUp.visible) {
if (LK.ticks % 30 == 0) {
var fullUnits = digestionSystem.units.filter(function (unit) {
return unit.alpha === digestionSystem.unitFullAlpha;
});
if (fullUnits.length > 0) {
fullUnits[fullUnits.length - 1].alpha = digestionSystem.unitEmptyAlpha;
} else {
LK.getSound('Pooping').stop();
}
}
} else {
LK.getSound('Pooping').stop();
}
for (var i = foregroundContainer.children.length - 1; i >= 0; i--) {
var food = foregroundContainer.children[i];
if (player.checkCollision(food) || player.checkCollision(food.foodAsset)) {
// Increment the score
if (food instanceof Food_2) {
score += 2;
// Add two units to the Digestion System
for (var i = 0; i < 2; i++) {
var fullUnits = digestionSystem.units.filter(function (unit) {
return unit.alpha === digestionSystem.unitFullAlpha;
});
if (fullUnits.length < digestionSystem.maxUnits) {
digestionSystem.units[fullUnits.length].alpha = digestionSystem.unitFullAlpha;
} else {
LK.showGameOver();
return;
}
}
} else if (food instanceof Food_3) {
score += 3;
// Add three units to the Digestion System
for (var i = 0; i < 3; i++) {
var fullUnits = digestionSystem.units.filter(function (unit) {
return unit.alpha === digestionSystem.unitFullAlpha;
});
if (fullUnits.length < digestionSystem.maxUnits) {
digestionSystem.units[fullUnits.length].alpha = digestionSystem.unitFullAlpha;
} else {
LK.showGameOver();
return;
}
}
} else {
score++;
// Add a unit to the Digestion System
var fullUnits = digestionSystem.units.filter(function (unit) {
return unit.alpha === digestionSystem.unitFullAlpha;
});
if (fullUnits.length < digestionSystem.maxUnits) {
digestionSystem.units[fullUnits.length].alpha = digestionSystem.unitFullAlpha;
} else {
LK.showGameOver();
return;
}
}
scoreTxt.setText(score);
// Play the Eat sound
LK.getSound('Eat').play();
// Remove the food from the game
food.destroy();
}
}
};
hamburger. pixelated. 8-bit. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
poop UI element . pixelated. 8 bit.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
text saying "Constipated" against a poop banner. pixelated. 8-bit. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
text saying "Youβre on a roll!" against a toilet paper banner. pixelated. 8-bit. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
text saying "Holy Crap!" against a divine angelic poop banner. pixelated. 8-bit. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
pixelated text saying "Shit Yeah!" as a shitty newspaper headline. pixelated. 8-bit. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
macdonalds fries but with the M letter rotated so it looks like a 3. pixelated. 8 bit. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
large KFC bucket with the digit 5 on it. pixelated. 8 bit. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
8-bit pixelated image of a video game character sitting with hands on a large belly, wearing a white shirt and brown pants. The setting is a simple bathroom, with the character as the main focus. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.