User prompt
Create a game named "Aloo Khaoge?" where potato is the main character of the game and the background of game has a gaussian blured picture of any youtube comment section and from all sides comments like "Subscribe or you will fail in exam" , "Thank you so much for so many likes" , "Mom I am famous" , "Thank you for 100 subscribers" are attacking the potato and the potato has to defend himself by using a gun which will kill these comments and with each kill the player will get 10 points.Game will only end when the any of the comment will touch the potato āŖš” Consider importing and using the following plugins: @upit/tween.v1
Code edit (1 edits merged)
Please save this source code
User prompt
Aloo Khaoge?
Initial prompt
Create a game named "Aloo Khaoge?" where potato is the main character of the game and the background of game has a gaussian blured picture of any youtube comment section and from all sides comments like "Subscribe or you will fail in exam" , "Thank you so much for so many likes" , "Mom I am famous" , "Thank you for 100 subscribers" are attacking the potato and the potato has to defend himself by using a gun which will kill these comments and with each kill the player will get 10 points.Game will only end when the any of the comment will touch the potato
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Bullet = Container.expand(function () {
var self = Container.call(this);
var bulletGraphics = self.attachAsset('bullet', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 15;
self.targetX = 0;
self.targetY = 0;
self.directionX = 0;
self.directionY = 0;
self.update = function () {
self.x += self.directionX * self.speed;
self.y += self.directionY * self.speed;
};
return self;
});
var Comment = Container.expand(function () {
var self = Container.call(this);
var commentBox = self.attachAsset('comment', {
anchorX: 0.5,
anchorY: 0.5
});
var commentTexts = ["Subscribe or you will fail in exam", "Thank you for 100 subscribers", "Mom I am famous", "First!", "Like if you agree", "Who's watching in 2024?", "Am I the only one who...", "This comment will get 1000 likes", "Edit: Thanks for the likes!", "Nobody: Literally nobody:", "Can we get 50 likes?", "Your content is trash"];
var commentText = new Text2(commentTexts[Math.floor(Math.random() * commentTexts.length)], {
size: 24,
fill: 0x000000
});
commentText.anchor.set(0.5, 0.5);
self.addChild(commentText);
self.speed = 2 + Math.random() * 3;
self.targetX = 0;
self.targetY = 0;
self.directionX = 0;
self.directionY = 0;
self.update = function () {
self.x += self.directionX * self.speed;
self.y += self.directionY * self.speed;
};
return self;
});
var Potato = Container.expand(function () {
var self = Container.call(this);
var potatoGraphics = self.attachAsset('potato', {
anchorX: 0.5,
anchorY: 0.5
});
// Add simple eyes
var leftEye = LK.getAsset('bullet', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 0.3,
scaleY: 0.3
});
leftEye.tint = 0x000000;
leftEye.x = -20;
leftEye.y = -10;
self.addChild(leftEye);
var rightEye = LK.getAsset('bullet', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 0.3,
scaleY: 0.3
});
rightEye.tint = 0x000000;
rightEye.x = 20;
rightEye.y = -10;
self.addChild(rightEye);
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x2a2a2a
});
/****
* Game Code
****/
// Create blurred background scaled to fill screen
var background = game.addChild(LK.getAsset('background', {
anchorX: 0,
anchorY: 0,
scaleX: 17,
scaleY: 34,
alpha: 0.2
}));
// Add blur effect using tween
tween(background, {
alpha: 0.15
}, {
duration: 100
});
// Create potato player
var potato = game.addChild(new Potato());
potato.x = 1024;
potato.y = 1800;
// Game arrays
var bullets = [];
var comments = [];
// Game variables
var commentSpawnTimer = 0;
var commentSpawnRate = 60; // Frames between spawns (faster initial spawn)
var gameSpeed = 1;
// UI
var scoreTxt = new Text2('Score: 0', {
size: 80,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Shooting variables
var isShooting = false;
var shootCooldown = 0;
// Track last intersection states
var lastCommentIntersections = [];
function spawnComment() {
var comment = new Comment();
var side = Math.floor(Math.random() * 4); // 0=top, 1=right, 2=bottom, 3=left
switch (side) {
case 0:
// top
comment.x = Math.random() * 2048;
comment.y = -50;
break;
case 1:
// right
comment.x = 2098;
comment.y = Math.random() * 2732;
break;
case 2:
// bottom
comment.x = Math.random() * 2048;
comment.y = 2782;
break;
case 3:
// left
comment.x = -50;
comment.y = Math.random() * 2732;
break;
}
// Calculate direction toward potato
var dx = potato.x - comment.x;
var dy = potato.y - comment.y;
var distance = Math.sqrt(dx * dx + dy * dy);
comment.directionX = dx / distance;
comment.directionY = dy / distance;
// Add entrance animation
comment.alpha = 0;
comment.scaleX = 0.1;
comment.scaleY = 0.1;
tween(comment, {
alpha: 1,
scaleX: 1,
scaleY: 1
}, {
duration: 300,
easing: tween.bounceOut
});
comments.push(comment);
game.addChild(comment);
}
function shootBullet(targetX, targetY) {
if (shootCooldown > 0) return;
var bullet = new Bullet();
bullet.x = potato.x;
bullet.y = potato.y;
// Calculate direction
var dx = targetX - bullet.x;
var dy = targetY - bullet.y;
var distance = Math.sqrt(dx * dx + dy * dy);
bullet.directionX = dx / distance;
bullet.directionY = dy / distance;
bullets.push(bullet);
game.addChild(bullet);
LK.getSound('shoot').play();
shootCooldown = 10;
}
// Game controls
var dragTarget = null;
game.down = function (x, y, obj) {
dragTarget = potato;
shootBullet(x, y);
};
game.move = function (x, y, obj) {
if (dragTarget) {
dragTarget.x = Math.max(60, Math.min(1988, x));
dragTarget.y = Math.max(60, Math.min(2672, y));
}
};
game.up = function (x, y, obj) {
dragTarget = null;
};
game.update = function () {
// Update shoot cooldown
if (shootCooldown > 0) {
shootCooldown--;
}
// Spawn comments
commentSpawnTimer++;
if (commentSpawnTimer >= commentSpawnRate) {
spawnComment();
commentSpawnTimer = 0;
// Gradually increase difficulty
if (commentSpawnRate > 30) {
commentSpawnRate -= 0.5;
}
}
// Update bullets
for (var i = bullets.length - 1; i >= 0; i--) {
var bullet = bullets[i];
// Check if bullet is off screen
if (bullet.x < -50 || bullet.x > 2098 || bullet.y < -50 || bullet.y > 2782) {
bullet.destroy();
bullets.splice(i, 1);
continue;
}
// Check bullet-comment collisions
var bulletHit = false;
for (var j = comments.length - 1; j >= 0; j--) {
var comment = comments[j];
if (bullet.intersects(comment)) {
// Hit!
LK.getSound('hit').play();
LK.setScore(LK.getScore() + 10);
scoreTxt.setText('Score: ' + LK.getScore());
// Flash effect and scale animation
tween(comment, {
alpha: 0,
scaleX: 2,
scaleY: 2
}, {
duration: 200,
easing: tween.easeOut,
onFinish: function onFinish() {
comment.destroy();
}
});
// Remove bullet immediately
bullet.destroy();
bullets.splice(i, 1);
// Remove comment from array (will be destroyed by tween)
comments.splice(j, 1);
bulletHit = true;
break;
}
}
if (bulletHit) continue;
}
// Update comments and check potato collisions
for (var k = comments.length - 1; k >= 0; k--) {
var comment = comments[k];
// Initialize last intersection state if needed
if (lastCommentIntersections[k] === undefined) {
lastCommentIntersections[k] = false;
}
// Check potato collision
var currentIntersecting = comment.intersects(potato);
if (!lastCommentIntersections[k] && currentIntersecting) {
// Game over!
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
return;
}
lastCommentIntersections[k] = currentIntersecting;
// Remove comments that are too far off screen
if (comment.x < -200 || comment.x > 2248 || comment.y < -200 || comment.y > 2932) {
comment.destroy();
comments.splice(k, 1);
lastCommentIntersections.splice(k, 1);
}
}
// Update score display
scoreTxt.setText('Score: ' + LK.getScore());
}; ===================================================================
--- original.js
+++ change.js
@@ -86,14 +86,22 @@
/****
* Game Code
****/
-// Create blurred background
+// Create blurred background scaled to fill screen
var background = game.addChild(LK.getAsset('background', {
anchorX: 0,
anchorY: 0,
- alpha: 0.3
+ scaleX: 17,
+ scaleY: 34,
+ alpha: 0.2
}));
+// Add blur effect using tween
+tween(background, {
+ alpha: 0.15
+}, {
+ duration: 100
+});
// Create potato player
var potato = game.addChild(new Potato());
potato.x = 1024;
potato.y = 1800;
@@ -101,9 +109,9 @@
var bullets = [];
var comments = [];
// Game variables
var commentSpawnTimer = 0;
-var commentSpawnRate = 90; // Frames between spawns
+var commentSpawnRate = 60; // Frames between spawns (faster initial spawn)
var gameSpeed = 1;
// UI
var scoreTxt = new Text2('Score: 0', {
size: 80,
@@ -146,8 +154,20 @@
var dy = potato.y - comment.y;
var distance = Math.sqrt(dx * dx + dy * dy);
comment.directionX = dx / distance;
comment.directionY = dy / distance;
+ // Add entrance animation
+ comment.alpha = 0;
+ comment.scaleX = 0.1;
+ comment.scaleY = 0.1;
+ tween(comment, {
+ alpha: 1,
+ scaleX: 1,
+ scaleY: 1
+ }, {
+ duration: 300,
+ easing: tween.bounceOut
+ });
comments.push(comment);
game.addChild(comment);
}
function shootBullet(targetX, targetY) {
@@ -213,18 +233,24 @@
// Hit!
LK.getSound('hit').play();
LK.setScore(LK.getScore() + 10);
scoreTxt.setText('Score: ' + LK.getScore());
- // Flash effect
+ // Flash effect and scale animation
tween(comment, {
- alpha: 0
+ alpha: 0,
+ scaleX: 2,
+ scaleY: 2
}, {
- duration: 200
+ duration: 200,
+ easing: tween.easeOut,
+ onFinish: function onFinish() {
+ comment.destroy();
+ }
});
- // Remove both bullet and comment
+ // Remove bullet immediately
bullet.destroy();
bullets.splice(i, 1);
- comment.destroy();
+ // Remove comment from array (will be destroyed by tween)
comments.splice(j, 1);
bulletHit = true;
break;
}