User prompt
make a rampage mode happen every 4 seconds, making the food shoot very fast and spikes come out of the wall, make it last 3 seconds
User prompt
make the rampage event happen every 4 seconds
User prompt
make the rampage mode have a chance of happening every 4 seconds
User prompt
make a rampage that can happen, making the food shoot many more projectiles and spikes come out of the wall, and make it last for 5 seconds
User prompt
can you add something random but funny? i want a suprise
User prompt
make it so the snake follows the cursor
User prompt
fix bugs
User prompt
make the projectiles disappear after 3.5 seconds
User prompt
Fix Bug: 'ReferenceError: food is not defined' in this line: 'food.shoot(snake[0].x, snake[0].y);' Line Number: 208
User prompt
Fix Bug: 'ReferenceError: food is not defined' in this line: 'for (var i = 0; i < food.projectiles.length; i++) {' Line Number: 215
User prompt
Fix Bug: 'ReferenceError: food is not defined' in this line: 'food.moveProjectiles();' Line Number: 211
User prompt
make it 2 apples instead of one
User prompt
Fix Bug: 'TypeError: food.moveProjectiles is not a function' in this line: 'food.moveProjectiles();' Line Number: 236
User prompt
Fix Bug: 'TypeError: food.moveProjectiles is not a function' in this line: 'food.moveProjectiles();' Line Number: 227
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'if (food && !food.isDestroyed && food.projectiles.length > 0) {' Line Number: 234
User prompt
Fix Bug: 'TypeError: food.shoot is not a function' in this line: 'food.shoot(snake[0].x, snake[0].y);' Line Number: 231
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'for (var i = 0; i < food.projectiles.length; i++) {' Line Number: 235
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'for (var i = 0; i < food.projectiles.length; i++) {' Line Number: 234
User prompt
Fix Bug: 'TypeError: Cannot read properties of undefined (reading 'length')' in this line: 'for (var i = 0; i < food.projectiles.length; i++) {' Line Number: 234
User prompt
make it so there is a 5% chance to spawn a deceptivefood instead of the regular food
User prompt
fix bug
User prompt
Fix Bug: 'TypeError: food.moveProjectiles is not a function' in this line: 'food.moveProjectiles();' Line Number: 227
User prompt
Fix Bug: 'TypeError: food.moveProjectiles is not a function' in this line: 'food.moveProjectiles();' Line Number: 227
User prompt
make it so there is a chance to spawn another apple that just disappears right before colliding with it
User prompt
make the cursor a magnet for the snake
/**** * Classes ****/ var DeceptiveFood = Container.expand(function () { var self = Container.call(this); var foodGraphic = self.createAsset('deceptiveFood', 'Deceptive Food', 0.5, 0.5); self.place = function (x, y) { self.x = x; self.y = y; }; self.disappearBeforeCollision = function (snakeHead) { if (Math.abs(snakeHead.x - self.x) < 64 && Math.abs(snakeHead.y - self.y) < 64) { self.destroy(); } }; }); var HomingProjectile = Container.expand(function (target) { var self = Container.call(this); var projectileGraphic = self.createAsset('projectile', 'Homing Projectile', 0.5, 0.5); projectileGraphic.scale.set(0.5); self.speed = 5; self.target = target; self.move = function () { var directionX = self.target.x - self.x; var directionY = self.target.y - self.y; var magnitude = Math.sqrt(directionX * directionX + directionY * directionY); var homingFactor = 0.5; self.x += directionX / magnitude * self.speed * homingFactor; self.y += directionY / magnitude * self.speed * homingFactor; }; }); var SnakeSegment = Container.expand(function () { var self = Container.call(this); var segmentGraphic = self.createAsset('snakeSegment', 'Snake Segment', 0.5, 0.5); self.move = function (x, y) { self.x = x; self.y = y; }; }); var Food = Container.expand(function () { var self = Container.call(this); var foodGraphic = self.createAsset('food', 'Food', 0.5, 0.5); self.projectiles = []; self.shoot = function (targetX, targetY) { var projectile = new HomingProjectile(snake[0]); projectile.x = self.x; projectile.y = self.y; self.projectiles.push(projectile); game.addChild(projectile); LK.setTimeout(function () { projectile.destroy(); var index = self.projectiles.indexOf(projectile); if (index > -1) { self.projectiles.splice(index, 1); } }, 2500); }; self.place = function (x, y) { self.x = x; self.y = y; }; self.moveProjectiles = function () { for (var i = self.projectiles.length - 1; i >= 0; i--) { self.projectiles[i].move(); if (self.projectiles[i].x < 0 || self.projectiles[i].x > 2048 || self.projectiles[i].y < 0 || self.projectiles[i].y > 2732) { self.projectiles[i].destroy(); self.projectiles.splice(i, 1); } } }; }); var Projectile = Container.expand(function () { var self = Container.call(this); var projectileGraphic = self.createAsset('projectile', 'Lethal Projectile', 0.5, 0.5); projectileGraphic.scale.set(0.5); self.speed = 4; self.direction = { x: 0, y: 1 }; self.move = function () { self.x += self.direction.x * self.speed; self.y += self.direction.y * self.speed; }; self.setDirection = function (x, y) { self.direction.x = x; self.direction.y = y; }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x1F7A1F //Change background color to green for pool table }); /**** * Game Code ****/ var snake = []; var food; var direction = { x: 0, y: 0 }; var nextDirection = { x: 0, y: 0 }; var gridSize = 64; var score = 0; var scoreTxt; var isGameOver = false; function initGame() { // Initialize the snake in the center of the screen var initialX = 2048 / 2; var initialY = 2732 / 2; var snakeHead = new SnakeSegment(); snakeHead.move(initialX, initialY); snake.push(snakeHead); game.addChild(snakeHead); // Initialize the food at a random position placeFood(); // Initialize score display scoreTxt = new Text2(score.toString(), { size: 150, fill: "#ffffff" }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Set initial direction direction = { x: gridSize, y: 0 }; } function placeFood() { var foodX = Math.floor(Math.random() * ((2048 - gridSize * 2) / gridSize)) * gridSize + gridSize * 1.5; var foodY = Math.floor(Math.random() * ((2732 - gridSize * 2) / gridSize)) * gridSize + gridSize * 1.5; if (!food || Math.random() < 0.1) { // 10% chance to create deceptive food if (food) { food.destroy(); } // Destroy the old food food = Math.random() < 0.5 ? new Food() : new DeceptiveFood(); // 50% chance for each food type game.addChild(food); } food.place(foodX, foodY); } function updateScore() { score += 1; scoreTxt.setText(score.toString()); } function gameOver() { isGameOver = true; LK.effects.flashScreen(0xff0000, 1000); LK.showGameOver(); } function handleInput(obj) { var touchPos = obj.event.getLocalPosition(game); var head = snake[0]; var deltaX = touchPos.x - head.x; var deltaY = touchPos.y - head.y; var magnitude = Math.sqrt(deltaX * deltaX + deltaY * deltaY); nextDirection = { x: Math.round(deltaX / magnitude) * gridSize, y: Math.round(deltaY / magnitude) * gridSize }; } game.on('down', handleInput); LK.on('tick', function () { if (isGameOver) { return; } // Update direction direction = nextDirection; // Move snake var newX = snake[0].x + direction.x; var newY = snake[0].y + direction.y; // Check for collisions with walls if (newX < 0 || newX > 2048 || newY < 0 || newY > 2732) { gameOver(); return; } // Check for collisions with self for (var i = 1; i < snake.length; i++) { if (snake[i].x === newX && snake[i].y === newY) { gameOver(); return; } } // Check for deceptive food disappearance if (food instanceof DeceptiveFood) { food.disappearBeforeCollision(snake[0]); } // Move projectiles if food is of type Food if (food instanceof Food) { food.moveProjectiles(); } // Check for food collision if (food && !food.isDestroyed && snake[0].intersects(food)) { var tail = snake[snake.length - 1]; var newSegment1 = new SnakeSegment(); var newSegment2 = new SnakeSegment(); var newSegmentX1 = tail.x - direction.x; var newSegmentY1 = tail.y - direction.y; var newSegmentX2 = newSegmentX1 - direction.x; var newSegmentY2 = newSegmentY1 - direction.y; newSegment1.move(newSegmentX1, newSegmentY1); newSegment2.move(newSegmentX2, newSegmentY2); snake.push(newSegment1); snake.push(newSegment2); game.addChild(newSegment1); game.addChild(newSegment2); updateScore(); placeFood(); } // Move snake segments for (var i = snake.length - 1; i > 0; i--) { snake[i].move(snake[i - 1].x, snake[i - 1].y); } // Move head last if (LK.ticks % (60 / snake.length) === 0) { snake[0].move(newX, newY); } // Food shoots projectiles randomly if (Math.random() < 0.005) { // 0.5% chance each tick food.shoot(snake[0].x, snake[0].y); } // Check for collisions with projectiles for (var i = 0; i < food.projectiles.length; i++) { if (snake[0].intersects(food.projectiles[i])) { gameOver(); return; } } }); // Start the game initGame();
===================================================================
--- original.js
+++ change.js
@@ -163,10 +163,10 @@
var deltaX = touchPos.x - head.x;
var deltaY = touchPos.y - head.y;
var magnitude = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
nextDirection = {
- x: deltaX / magnitude * gridSize,
- y: deltaY / magnitude * gridSize
+ x: Math.round(deltaX / magnitude) * gridSize,
+ y: Math.round(deltaY / magnitude) * gridSize
};
}
game.on('down', handleInput);
LK.on('tick', function () {
@@ -175,10 +175,10 @@
}
// Update direction
direction = nextDirection;
// Move snake
- var newX = snake[0].x + direction.x * 0.2;
- var newY = snake[0].y + direction.y * 0.2;
+ var newX = snake[0].x + direction.x;
+ var newY = snake[0].y + direction.y;
// Check for collisions with walls
if (newX < 0 || newX > 2048 || newY < 0 || newY > 2732) {
gameOver();
return;
@@ -220,9 +220,11 @@
for (var i = snake.length - 1; i > 0; i--) {
snake[i].move(snake[i - 1].x, snake[i - 1].y);
}
// Move head last
- snake[0].move(newX, newY);
+ if (LK.ticks % (60 / snake.length) === 0) {
+ snake[0].move(newX, newY);
+ }
// Food shoots projectiles randomly
if (Math.random() < 0.005) {
// 0.5% chance each tick
food.shoot(snake[0].x, snake[0].y);
a wooden brown chair. In-Game asset. Blank background. High contrast.
a blue apple with a gun. In-Game asset. Blank background. High contrast.
the 8 balls from pool. In-Game asset. Blank background. High contrast.
a table with a gun. In-Game asset. Blank background. High contrast.
a roundsaw. In-Game asset. Blank background. High contrast.