User prompt
add a white outline to the character
Code edit (4 edits merged)
Please save this source code
User prompt
decerase the incoming animation to 1.5 seconds
User prompt
fix the blinking problem
User prompt
make the incoming asset blink once every 200 milsieconds, befire it disappears in its 2 secodns lifespan
User prompt
fix it
Code edit (1 edits merged)
Please save this source code
User prompt
change the incoming y height fro ma formula to a straight number relative to the top side of the screen
Code edit (1 edits merged)
Please save this source code
User prompt
while the incoming sign needs to have a dynamic x position, it's y position should always be the same. please move it hogher closer to the top of the screen
User prompt
add these fixes
User prompt
the x coordinate of the incoming asset needs to match the same x coordinate of the blocker. when a blocker is generated, show the incoming blocker on the same x position of the blocker
User prompt
the x position of the incoming asset needs to match the same x position of the incoming blocker it is generated from
User prompt
create the incoming asset I requested and show it on screen when a blocker is generated
User prompt
I dont see the incoming asset when a blocker is being generated. whenever a blocker is generated, show the incoming asset on screen for 2 seconds
User prompt
after eating a fish, decrease the player speed by 0.1
User prompt
now add a padding to both the upper and lower sides of the screens, of 200 pxels, where neither enemies nor fish can be generated, so they appear more inward the playing area and not overlap with the top and bottom sides of the screen
User prompt
now allow both fish and enemies to be generated at the bottom parts of the screen as well, so they get generated across the entire screen length
User prompt
remove the limitation where the player cant click in the bottom part of the screen, so the whole screen can be used
User prompt
remove the news coming soon text
User prompt
remove the tv
User prompt
remove the bottom cover
User prompt
fix it
User prompt
fix it
User prompt
the coins should appear similar to the blocker, once every amount of obtained score, but this number instead of 5 is 3, so when the score is 3,6,9,12 etc, generate these coins
/****
* Classes
****/
var BackgroundContainer = Container.expand(function () {
var self = Container.call(this);
return Container.call(this);
});
var Blocker = Container.expand(function () {
var self = Container.call(this);
var blockerGraphics = self.attachAsset('blocker', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 2;
self.spawnOffset = 0;
self.move = function () {
self.speed *= 1.01; // Increase speed by 1% each frame
self.y += self.speed;
};
});
// Coin class
var Coin = Container.expand(function () {
var self = Container.call(this);
var coinGraphics = self.attachAsset('coin', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 2;
self.move = function () {
self.y += self.speed;
};
});
// Enemy fish class
var EnemyFish = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemyFish', {
anchorX: 0.5,
anchorY: 0.5,
flipX: self.direction > 0 ? 0 : 1
});
self.speed = 3;
self.direction = Math.random() > 0.5 ? 1 : -1;
self.spawnOffset = self.direction > 0 ? -100 : 100;
self.move = function () {
self.speed *= 1.005; // Increase speed by 0.5% each frame
self.x += self.speed * self.direction;
};
});
// Food fish class
var FoodFish = Container.expand(function () {
var self = Container.call(this);
var foodGraphics = self.attachAsset('foodFish', {
anchorX: 0.5,
anchorY: 0.5,
flipX: self.direction > 0 ? 0 : 1
});
self.speed = 2;
self.direction = Math.random() > 0.5 ? 1 : -1;
self.move = function () {
self.x += self.speed * self.direction;
};
});
var ForegroundContainer = Container.expand(function () {
var self = Container.call(this);
var newsText = new Text2('News coming soon!', {
size: 100,
fill: '#000000'
});
newsText.anchor.set(0.5, 0);
newsText.x = 1300;
newsText.y = 2400;
self.addChild(newsText);
return self;
});
var MidgroundContainer = Container.expand(function () {
var self = Container.call(this);
return Container.call(this);
});
// Player fish class
var PlayerFish = Container.expand(function () {
var self = Container.call(this);
var playerGraphics = self.attachAsset('playerFish', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 5;
self.destination = null;
self.readyForNewCommand = true; // Player is initially ready for a new command
self.move = function () {
if (self.destination) {
var direction = {
x: self.destination.x - self.x,
y: self.destination.y - self.y
};
var magnitude = Math.sqrt(direction.x * direction.x + direction.y * direction.y);
if (magnitude < self.speed) {
self.x = self.destination.x;
self.y = self.destination.y;
self.destination = null; // Reached destination
self.speed = 0; // Stop the player fish
} else {
direction.x /= magnitude;
direction.y /= magnitude;
self.x += direction.x * self.speed;
self.y += direction.y * self.speed;
self.speed *= 0.98; // Decelerate
}
// Allow new commands when the player fish comes to a full stop
if (self.speed < 0.1) {
self.readyForNewCommand = true;
}
}
// Flip the fish asset based on the direction it's moving
if (self.destination) {
playerGraphics.flipX = self.x < self.destination.x ? 0 : 1;
} else {
playerGraphics.flipX = playerGraphics.flipX;
}
};
self.grow = function () {
self.scaleX *= 1.01;
self.scaleY *= 1.01;
playerGraphics.width *= 1.01;
playerGraphics.height *= 1.01;
};
});
// SpecialCoin class
var SpecialCoin = Container.expand(function () {
var self = Container.call(this);
var coinGraphics = self.attachAsset('coin', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 2;
self.move = function () {
self.y += self.speed;
};
});
// TV class
var TV = Container.expand(function () {
var self = Container.call(this);
var tvGraphics = self.attachAsset('tv', {
anchorX: 0.5,
anchorY: 0.5
});
});
/****
* Initialize Game
****/
var game = new LK.Game();
/****
* Game Code
****/
var backgroundContainer = game.addChild(new BackgroundContainer());
var midgroundContainer = game.addChild(new MidgroundContainer());
var foregroundContainer = game.addChild(new ForegroundContainer());
var background = backgroundContainer.addChild(LK.getAsset('background', {
anchorX: 0,
anchorY: 0,
x: 0,
y: 0,
width: 2048,
height: 2732
}));
// Initialize player, enemies, and food arrays
// Define assets for the player fish, enemy fish, and food fish
// Initialize score text
var scoreTxt = new Text2('0', {
size: 150,
fill: '#ffffff',
stroke: '#000000',
strokeThickness: 5
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Touch down event to set player's destination
game.on('down', function (obj) {
var touchPosition = obj.event.getLocalPosition(game);
if (touchPosition.y < game.height - 500 && player.readyForNewCommand) {
player.destination = {
x: touchPosition.x,
y: touchPosition.y
};
player.speed = 40; // Reset speed
player.readyForNewCommand = false; // Player is not ready for a new command until it reaches its destination
}
});
var player;
var enemies = [];
var food = [];
var blockers = [];
var tv;
var blockersSpawned = false;
// Create the player fish
player = midgroundContainer.addChild(new PlayerFish());
player.x = game.width / 2;
player.y = game.height / 2;
tv = foregroundContainer.addChild(new TV());
tv.x = game.width / 2 - 680;
tv.y = game.height / 2 + 1000;
var bottomCover = midgroundContainer.addChild(LK.getAsset('bottomCover', {
anchorX: 0,
anchorY: 0,
x: 0,
y: game.height - 500
}));
// Game tick event
LK.on('tick', function () {
// Move enemies and check for off-screen
for (var i = enemies.length - 1; i >= 0; i--) {
enemies[i].move();
if (enemies[i].x < -enemies[i].width) {
enemies[i].destroy();
enemies.splice(i, 1);
}
}
// Move food and check for off-screen
for (var j = food.length - 1; j >= 0; j--) {
food[j].move();
if (food[j].x < -food[j].width) {
food[j].destroy();
food.splice(j, 1);
}
}
// Check for player collision with enemies
for (var k = 0; k < enemies.length; k++) {
if (player.intersects(enemies[k])) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
return;
}
}
for (var n = 0; n < blockers.length; n++) {
if (player.intersects(blockers[n])) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
return;
}
}
// Check for player collision with food and grow if the food is smaller
for (var l = 0; l < food.length; l++) {
if (player.intersects(food[l]) && player.width > food[l].width) {
player.grow();
food[l].destroy();
food.splice(l, 1);
// Increase score
LK.setScore(LK.getScore() + 1);
scoreTxt.setText(LK.getScore());
// Spawn a new enemy for each score increment
var newEnemy = new EnemyFish();
newEnemy.x = (newEnemy.direction > 0 ? 0 : game.width) + newEnemy.spawnOffset;
newEnemy.y = Math.random() * (game.height - 500);
enemies.push(newEnemy);
midgroundContainer.addChild(newEnemy);
}
}
for (var m = blockers.length - 1; m >= 0; m--) {
blockers[m].move();
if (blockers[m].y > game.height) {
blockers[m].destroy();
blockers.splice(m, 1);
}
}
// Move player
player.move();
// Spawn enemies and food
if (LK.getScore() % 5 !== 0) {
blockersSpawned = false;
}
if (LK.ticks % 60 === 0) {
var newFood = new FoodFish();
newFood.x = newFood.direction > 0 ? 0 : game.width;
newFood.y = Math.random() * (game.height - 500);
food.push(newFood);
midgroundContainer.addChild(newFood);
}
if (LK.getScore() % 5 === 0 && LK.getScore() > 0 && !blockersSpawned) {
blockersSpawned = true;
var newBlocker = new Blocker();
// Ensure the blocker is generated inside the screen area without intersecting the screen sides
var safeZone = newBlocker.width / 2 + 300; // Half width of the blocker plus minimum gap
var randomX = Math.random() * (game.width - 2 * safeZone) + safeZone; // Calculate random X within safe zone
newBlocker.x = randomX;
newBlocker.y = -newBlocker.height;
blockers.push(newBlocker);
midgroundContainer.addChild(newBlocker);
}
});
Design a minimalistic, pixelated background for a cyberpunk AI city, focusing on a futuristic yet understated aesthetic to ensure it doesn't overshadow game elements.. pixelated. 8 bit.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
cute red enemy flying drone. angry eyes. pixelated. 8 bit.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Design a pixel art scene for a game item: a TV broadcasting a news alert about an imminent AI uprising. Include flashing warning signs and depict the newscaster in a state of high alert to convey urgency and tension, ensuring all elements are styled to fit within a pixelated game environment.. pixelated. 8 bit.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
notepad word document file icon. pixelated. 8 bit.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
yellow warning sign. flat pixelated. 8 bit.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
red flame. flat pixelated. 8 bit.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
blue text saying "+1". pixelated. 8 bit.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
red danger warning sign. pixelated. 8 bit.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.