User prompt
make it so that when you destroy a golden sausage, the scoremultiplier gets augmented by 1
User prompt
fix the losing system so that it uses the "score" var and not the "newscore" var. Then, delete the "newscore" var.
User prompt
fix the losing system so that you lonly lose if the score is negative
User prompt
Make it so that when a carp hits the bottom, it removes 5 points, similarly to the onion.
User prompt
Make it so that shooting an onion gives 5 points
User prompt
Fix the losing code
Code edit (2 edits merged)
Please save this source code
User prompt
make it so that when an onion hits the bottom it takes 50 points away from you
User prompt
fix the onions
Code edit (5 edits merged)
Please save this source code
User prompt
fix the carp so that it gives 5 points multiplied by the score multiplier
User prompt
Change the background color to a slightly brighter black
User prompt
make the potato bullets 1,5 times faster
User prompt
fix onions so that they give 5 points
Code edit (1 edits merged)
Please save this source code
User prompt
fix normal sausages so that they only give one point
User prompt
Delete the background image as it doesn't work
Code edit (5 edits merged)
Please save this source code
User prompt
make the carp fall faster than the other objects
User prompt
Make it so that each time a sausage hits the bottom it takes 1 point away. This is not affected by the score multiplier.
User prompt
Add the possibility of losing. You lose if your score is smaller than 0. When you lose, an end screen appears. The end screen tells your final score and has a single button : "start a new game".
User prompt
Make the carp 1,5 times faster than the other falling objects
User prompt
Fix the code so that onions take away 50 points when hitting the bottom
User prompt
Add a new falling object : the carp. It is also affected by speed and score multipliers. Its base score value is 5. The carp has a 1 in 30 chance of appearing.
User prompt
Stop onions from exploding when they hit the bottom. They should just disappear if they haven't been destroyed.
/**** * Classes ****/ var OnionExplosion = Container.expand(function () { var self = Container.call(this); var explosionGraphics = self.attachAsset('onionExplosion', { anchorX: 0.5, anchorY: 0.5 }); self.scaleX = 0; self.scaleY = 0; self.animate = function () { if (self.scaleX < 1) { self.scaleX += 0.1; self.scaleY += 0.1; } else { self.destroy(); } }; }); var Explosion = Container.expand(function () { var self = Container.call(this); var explosionGraphics = self.attachAsset('explosion', { anchorX: 0.5, anchorY: 0.5 }); self.scaleX = 0; self.scaleY = 0; self.animate = function () { if (self.scaleX < 1) { self.scaleX += 0.1; self.scaleY += 0.1; } else { self.destroy(); } }; }); var Hero = Container.expand(function () { var self = Container.call(this); var heroGraphics = self.attachAsset('hero', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 70; self.doubleSpeedActive = false; self.doubleSpeedTimer = null; self.moveLeft = function () { self.x = Math.max(self.width / 2, self.x - self.speed); }; self.moveRight = function () { self.x = Math.min(2048 - self.width / 2, self.x + self.speed); }; self.shoot = function () { var bullets = []; var bullet = new Bullet(); bullet.x = self.x; bullet.y = self.y - self.height / 2; game.addChild(bullet); bullets.push(bullet); return bullets; }; self.changeAppearance = function () {}; self.activateDoubleSpeed = function () { if (!self.doubleSpeedActive) { self.doubleSpeedActive = true; self.speed *= 2; self.doubleSpeedTimer = LK.setTimeout(function () { self.speed /= 2; self.doubleSpeedActive = false; }, 30000); } else { LK.clearTimeout(self.doubleSpeedTimer); self.doubleSpeedTimer = LK.setTimeout(function () { self.speed /= 2; self.doubleSpeedActive = false; }, 30000); } }; }); var Bullet = Container.expand(function () { var self = Container.call(this); var bulletGraphics = self.attachAsset('bullet', { anchorX: 0.5, anchorY: 0.5 }); self.originalWidth = bulletGraphics.width; self.originalHeight = bulletGraphics.height; self.speed = -15; self.move = function () { self.y += self.speed; }; }); var Sausage = Container.expand(function () { var self = Container.call(this); var sausageGraphics = self.attachAsset('sausage', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 2; self.move = function () { self.y += self.speed * sausageSpeedMultiplier; }; }); var Onion = Container.expand(function () { var self = Container.call(this); var onionGraphics = self.attachAsset('onion', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 2; self.move = function () { self.y += self.speed * sausageSpeedMultiplier; }; }); var Carp = Container.expand(function () { var self = Container.call(this); var carpGraphics = self.attachAsset('carp', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 3; self.move = function () { self.y += self.speed * sausageSpeedMultiplier; }; }); var GoldenSausage = Container.expand(function () { var self = Container.call(this); var goldenSausageGraphics = self.attachAsset('goldenSausage', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 3; // 1.5 times the base speed of 2 self.move = function () { self.y += self.speed * sausageSpeedMultiplier; }; }); var EndScreen = Container.expand(function () { var self = Container.call(this); var endScreenBackground = self.attachAsset('shape', { width: 2048, height: 2732, color: 0x000000, shape: 'box' }); endScreenBackground.alpha = 0.8; var finalScoreTxt = new Text2('Final Score: ' + score.toString(), { size: 150, fill: '#ffffff', anchorX: 0.5, anchorY: 0.5 }); finalScoreTxt.x = 2048 / 2; finalScoreTxt.y = 2732 / 2 - 300; self.addChild(finalScoreTxt); var restartButton = new Text2('Start a New Game', { size: 100, fill: '#ffffff', anchorX: 0.5, anchorY: 0.5 }); restartButton.x = 2048 / 2; restartButton.y = 2732 / 2; restartButton.interactive = true; restartButton.buttonMode = true; restartButton.on('down', function () { LK.showGameOver(); }); self.addChild(restartButton); }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x111111 // Slightly brighter black background }); /**** * Game Code ****/ var sausageSpeedMultiplier = 1.0; // Initialize score function createExplosionAndSausageBits(x, y) { var explosion = new Explosion(); explosion.x = x; explosion.y = y; game.addChild(explosion); } var score = 0; var scoreMultiplier = 1.0; var scoreTxt = new Text2(score.toString(), { size: 150, fill: "#ffffff", anchorX: 0.7, // Center align horizontally anchorY: 0.0 // Top align }); LK.gui.top.addChild(scoreTxt); var hero = game.addChild(new Hero()); hero.x = 2048 / 2; hero.y = 2732 - 150; var bullets = []; var sausages = []; game.on('down', function (obj) { var touchPos = obj.event.getLocalPosition(game); if (touchPos.x < hero.x) { hero.moveLeft(); } else if (touchPos.x > hero.x) { hero.moveRight(); } bullets = bullets.concat(hero.shoot()); }); LK.on('keydown', function (obj) { var event = obj.event; switch (event.keyCode) { case 37: // Left arrow key hero.moveLeft(); break; case 39: // Right arrow key hero.moveRight(); break; } }); LK.on('tick', function () { // Move bullets for (var i = bullets.length - 1; i >= 0; i--) { bullets[i].move(); if (bullets[i].y < 0) { bullets[i].destroy(); bullets.splice(i, 1); } } // Move sausages and handle Onion scoring for (var j = sausages.length - 1; j >= 0; j--) { sausages[j].move(); if (sausages[j].y > 2732) { if (sausages[j] instanceof Onion) { var newScore = LK.getScore() + 5; LK.setScore(newScore); scoreTxt.setText(newScore.toString()); } sausages[j].destroy(); sausages.splice(j, 1); } } // Check for collisions between carps and hero for (var c = sausages.length - 1; c >= 0; c--) { if (sausages[c] && sausages[c] instanceof Carp && hero.intersects(sausages[c])) { createExplosionAndSausageBits(sausages[c].x, sausages[c].y); // Update score when carps hit the hero score += Math.round(5 * scoreMultiplier); scoreTxt.setText(score.toString()); sausages[c].destroy(); sausages.splice(c, 1); } } // Check for collisions between sausages and hero for (var s = sausages.length - 1; s >= 0; s--) { if (sausages[s] && !(sausages[s] instanceof GoldenSausage) && hero.intersects(sausages[s])) { createExplosionAndSausageBits(sausages[s].x, sausages[s].y); // Update score when sausages hit the hero score += 1; scoreTxt.setText(score.toString()); sausages[s].destroy(); sausages.splice(s, 1); } } // Check for collisions between bullets and sausages for (var b = bullets.length - 1; b >= 0; b--) { for (var s = sausages.length - 1; s >= 0; s--) { if (bullets[b] && sausages[s] && bullets[b].intersects(sausages[s])) { createExplosionAndSausageBits(sausages[s].x, sausages[s].y); bullets[b].destroy(); bullets.splice(b, 1); sausages[s].destroy(); sausages.splice(s, 1); // Update score by 10 for golden sausage score += Math.round(1 * scoreMultiplier); scoreTxt.setText(score.toString()); break; } } } // Animate explosions for (var e = game.children.length - 1; e >= 0; e--) { if (game.children[e] instanceof Explosion) { game.children[e].animate(); } } sausageSpeedMultiplier += 0.00075; // Increment speed multiplier over time scoreMultiplier += 0.0008; // Increment score multiplier over time // Spawn sausages and occasionally a golden sausage if (LK.ticks % 120 == 0) { var sausageType = Math.random() < 0.02 ? GoldenSausage : Math.random() < 0.02 ? Onion : Math.random() < 0.0333 ? Carp : Sausage; var newSausage = new sausageType(); newSausage.x = Math.random() * (2048 - newSausage.width) + newSausage.width / 2; newSausage.y = -newSausage.height / 2; sausages.push(newSausage); game.addChild(newSausage); } // Check for collisions with golden sausages for (var b = bullets.length - 1; b >= 0; b--) { for (var s = sausages.length - 1; s >= 0; s--) { if (bullets[b] && sausages[s] instanceof GoldenSausage && bullets[b].intersects(sausages[s])) { createExplosionAndSausageBits(sausages[s].x, sausages[s].y); var goldenExplosion = new Explosion(); goldenExplosion.x = sausages[s].x; goldenExplosion.y = sausages[s].y; game.addChild(goldenExplosion); hero.activateDoubleSpeed(); // Activate double speed on hero bullets[b].destroy(); bullets.splice(b, 1); sausages[s].destroy(); sausages.splice(s, 1); // Update score by 10 for golden sausage score += Math.round(10 * scoreMultiplier); scoreTxt.setText(score.toString()); // Check if score is below zero and end game if true if (score < 0) { var endScreen = new EndScreen(); game.addChild(endScreen); } break; } } } }); // These following lines are an archive. Do not delete them. It keeps track of the score in a manual way as I write it by hand. // Best scores : 5500 by Bidoutoumou / 3712 by Break_ME
===================================================================
--- original.js
+++ change.js
@@ -236,17 +236,11 @@
for (var j = sausages.length - 1; j >= 0; j--) {
sausages[j].move();
if (sausages[j].y > 2732) {
if (sausages[j] instanceof Onion) {
- var newScore = LK.getScore() - 50;
- if (newScore < 0) {
- var endScreen = new EndScreen();
- game.addChild(endScreen);
- LK.showGameOver();
- } else {
- LK.setScore(newScore);
- scoreTxt.setText(newScore.toString());
- }
+ var newScore = LK.getScore() + 5;
+ LK.setScore(newScore);
+ scoreTxt.setText(newScore.toString());
}
sausages[j].destroy();
sausages.splice(j, 1);
}
A crook sausage. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A heroic potato. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A background which represents a kitchen's ground. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A bullet shaped potato. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
An exploding sausage. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A gold sausage. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
An angry-looking onion. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
An onion exploding like a bomb. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
A carp which looks dumb. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
An ice cube. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.