User prompt
Una bananannon si può perchè è dentro l'oggetto rosso
User prompt
Una è ancora dentro il mobile e fai in modo che quando manca una banana sola diventa velocissimo ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Alcune banane non si possono prendere perché sono dentro gli oggetti
User prompt
Prima di game over devi fare un jumpscare quindi la scimmia che prende e ti mangia, con il suono, aggiungi altre 4 banane e metti solo 1 vita e quando ti insegue dice "saccy wussy" ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Non devi poter trapassato gli oggetti e aggiungi delle mani viola che ogni tanto spuntano e se tocchi ti fa un jumpscare e rendi più veloce la scimmia ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Rendi la scimmia viola, più veloce aggiungi jumpscare e metti mappa di un parco giochi e 4 banane dietro oggetti ↪💡 Consider importing and using the following plugins: @upit/tween.v1
Code edit (1 edits merged)
Please save this source code
User prompt
Monkey's Banana Hunt Horror
Initial prompt
Crea un gioco horror in cui devi scappare da questa scimmia e trovare 8 banane per vincere e avere la scritte "you decente sussy wuccy"
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Banana = Container.expand(function () {
var self = Container.call(this);
var bananaGraphics = self.attachAsset('banana', {
anchorX: 0.5,
anchorY: 0.5
});
self.collected = false;
return self;
});
var Monkey = Container.expand(function () {
var self = Container.call(this);
var monkeyGraphics = self.attachAsset('monkey', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 2;
self.targetX = 0;
self.targetY = 0;
self.update = function () {
// Move towards target position
var dx = self.targetX - self.x;
var dy = self.targetY - self.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance > 1) {
self.x += dx / distance * self.speed;
self.y += dy / distance * self.speed;
}
};
return self;
});
var Player = Container.expand(function () {
var self = Container.call(this);
var playerGraphics = self.attachAsset('player', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 4;
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x1a1a2e
});
/****
* Game Code
****/
// Game variables
var player;
var monkey;
var bananas = [];
var bananasCollected = 0;
var dragNode = null;
var gameStartTime;
var monkeySpeedIncrease = 0.01;
// UI elements
var scoreText = new Text2('Bananas: 0/8', {
size: 80,
fill: 0xFFFF00
});
scoreText.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreText);
// Initialize player
player = game.addChild(new Player());
player.x = 1024;
player.y = 1366;
// Initialize monkey
monkey = game.addChild(new Monkey());
monkey.x = 200;
monkey.y = 200;
monkey.targetX = player.x;
monkey.targetY = player.y;
// Create bananas at random positions
function createBananas() {
for (var i = 0; i < 8; i++) {
var banana = new Banana();
banana.x = Math.random() * (2048 - 100) + 50;
banana.y = Math.random() * (2732 - 100) + 50;
// Make sure bananas don't spawn too close to player or monkey
var distToPlayer = Math.sqrt(Math.pow(banana.x - player.x, 2) + Math.pow(banana.y - player.y, 2));
var distToMonkey = Math.sqrt(Math.pow(banana.x - monkey.x, 2) + Math.pow(banana.y - monkey.y, 2));
if (distToPlayer < 150 || distToMonkey < 150) {
i--; // Try again
continue;
}
bananas.push(banana);
game.addChild(banana);
}
}
createBananas();
gameStartTime = Date.now();
// Touch controls
function handleMove(x, y, obj) {
if (dragNode) {
// Keep player within bounds
dragNode.x = Math.max(30, Math.min(2018, x));
dragNode.y = Math.max(30, Math.min(2702, y));
}
}
game.move = handleMove;
game.down = function (x, y, obj) {
dragNode = player;
handleMove(x, y, obj);
};
game.up = function (x, y, obj) {
dragNode = null;
};
// Game update loop
game.update = function () {
// Update monkey target to player position
monkey.targetX = player.x;
monkey.targetY = player.y;
// Increase monkey speed over time
var timeElapsed = (Date.now() - gameStartTime) / 1000;
monkey.speed = 2 + timeElapsed * monkeySpeedIncrease;
// Check collision with monkey
if (player.intersects(monkey)) {
LK.effects.flashScreen(0xff0000, 1000);
LK.getSound('gameOver').play();
LK.showGameOver();
return;
}
// Check banana collection
for (var i = bananas.length - 1; i >= 0; i--) {
var banana = bananas[i];
if (!banana.collected && player.intersects(banana)) {
banana.collected = true;
bananasCollected++;
// Visual feedback
tween(banana, {
alpha: 0,
scaleX: 1.5,
scaleY: 1.5
}, {
duration: 300,
easing: tween.easeOut,
onFinish: function onFinish() {
banana.destroy();
}
});
bananas.splice(i, 1);
LK.getSound('collect').play();
// Update score display
scoreText.setText('Bananas: ' + bananasCollected + '/8');
// Check win condition
if (bananasCollected >= 8) {
// Show victory message
var victoryText = new Text2('you decente sussy wuccy', {
size: 120,
fill: 0x00FF00
});
victoryText.anchor.set(0.5, 0.5);
victoryText.x = 1024;
victoryText.y = 1366;
game.addChild(victoryText);
// Flash screen green and show win
LK.effects.flashScreen(0x00ff00, 1500);
LK.setTimeout(function () {
LK.showYouWin();
}, 1500);
return;
}
}
}
}; ===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,176 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+var Banana = Container.expand(function () {
+ var self = Container.call(this);
+ var bananaGraphics = self.attachAsset('banana', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.collected = false;
+ return self;
+});
+var Monkey = Container.expand(function () {
+ var self = Container.call(this);
+ var monkeyGraphics = self.attachAsset('monkey', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 2;
+ self.targetX = 0;
+ self.targetY = 0;
+ self.update = function () {
+ // Move towards target position
+ var dx = self.targetX - self.x;
+ var dy = self.targetY - self.y;
+ var distance = Math.sqrt(dx * dx + dy * dy);
+ if (distance > 1) {
+ self.x += dx / distance * self.speed;
+ self.y += dy / distance * self.speed;
+ }
+ };
+ return self;
+});
+var Player = Container.expand(function () {
+ var self = Container.call(this);
+ var playerGraphics = self.attachAsset('player', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 4;
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x1a1a2e
+});
+
+/****
+* Game Code
+****/
+// Game variables
+var player;
+var monkey;
+var bananas = [];
+var bananasCollected = 0;
+var dragNode = null;
+var gameStartTime;
+var monkeySpeedIncrease = 0.01;
+// UI elements
+var scoreText = new Text2('Bananas: 0/8', {
+ size: 80,
+ fill: 0xFFFF00
+});
+scoreText.anchor.set(0.5, 0);
+LK.gui.top.addChild(scoreText);
+// Initialize player
+player = game.addChild(new Player());
+player.x = 1024;
+player.y = 1366;
+// Initialize monkey
+monkey = game.addChild(new Monkey());
+monkey.x = 200;
+monkey.y = 200;
+monkey.targetX = player.x;
+monkey.targetY = player.y;
+// Create bananas at random positions
+function createBananas() {
+ for (var i = 0; i < 8; i++) {
+ var banana = new Banana();
+ banana.x = Math.random() * (2048 - 100) + 50;
+ banana.y = Math.random() * (2732 - 100) + 50;
+ // Make sure bananas don't spawn too close to player or monkey
+ var distToPlayer = Math.sqrt(Math.pow(banana.x - player.x, 2) + Math.pow(banana.y - player.y, 2));
+ var distToMonkey = Math.sqrt(Math.pow(banana.x - monkey.x, 2) + Math.pow(banana.y - monkey.y, 2));
+ if (distToPlayer < 150 || distToMonkey < 150) {
+ i--; // Try again
+ continue;
+ }
+ bananas.push(banana);
+ game.addChild(banana);
+ }
+}
+createBananas();
+gameStartTime = Date.now();
+// Touch controls
+function handleMove(x, y, obj) {
+ if (dragNode) {
+ // Keep player within bounds
+ dragNode.x = Math.max(30, Math.min(2018, x));
+ dragNode.y = Math.max(30, Math.min(2702, y));
+ }
+}
+game.move = handleMove;
+game.down = function (x, y, obj) {
+ dragNode = player;
+ handleMove(x, y, obj);
+};
+game.up = function (x, y, obj) {
+ dragNode = null;
+};
+// Game update loop
+game.update = function () {
+ // Update monkey target to player position
+ monkey.targetX = player.x;
+ monkey.targetY = player.y;
+ // Increase monkey speed over time
+ var timeElapsed = (Date.now() - gameStartTime) / 1000;
+ monkey.speed = 2 + timeElapsed * monkeySpeedIncrease;
+ // Check collision with monkey
+ if (player.intersects(monkey)) {
+ LK.effects.flashScreen(0xff0000, 1000);
+ LK.getSound('gameOver').play();
+ LK.showGameOver();
+ return;
+ }
+ // Check banana collection
+ for (var i = bananas.length - 1; i >= 0; i--) {
+ var banana = bananas[i];
+ if (!banana.collected && player.intersects(banana)) {
+ banana.collected = true;
+ bananasCollected++;
+ // Visual feedback
+ tween(banana, {
+ alpha: 0,
+ scaleX: 1.5,
+ scaleY: 1.5
+ }, {
+ duration: 300,
+ easing: tween.easeOut,
+ onFinish: function onFinish() {
+ banana.destroy();
+ }
+ });
+ bananas.splice(i, 1);
+ LK.getSound('collect').play();
+ // Update score display
+ scoreText.setText('Bananas: ' + bananasCollected + '/8');
+ // Check win condition
+ if (bananasCollected >= 8) {
+ // Show victory message
+ var victoryText = new Text2('you decente sussy wuccy', {
+ size: 120,
+ fill: 0x00FF00
+ });
+ victoryText.anchor.set(0.5, 0.5);
+ victoryText.x = 1024;
+ victoryText.y = 1366;
+ game.addChild(victoryText);
+ // Flash screen green and show win
+ LK.effects.flashScreen(0x00ff00, 1500);
+ LK.setTimeout(function () {
+ LK.showYouWin();
+ }, 1500);
+ return;
+ }
+ }
+ }
+};
\ No newline at end of file