User prompt
make it so that golden sausages are worth 25 points before multiplier
User prompt
make it so that carps give 5 points (before multiplier) instead of one when killed
User prompt
make it so that when a sausage hits the bottom of the screen, 1 point is deduced from the score
User prompt
make it so that when you hit an ice cube, the sausage speed multiplier is reduced by 25%
Remix started
Copy Sausage Hunter 0.6
/**** * Classes ****/ 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_migrated = function () { self.y += self.speed; }; }); 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_migrated = 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); }); 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 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_migrated = function () { self.y += self.speed * sausageSpeedMultiplier; }; }); 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 () {}; }); var IceCube = Container.expand(function () { var self = Container.call(this); var iceCubeGraphics = self.attachAsset('iceCube', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 2; self._move_migrated = 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_migrated = function () { self.y += self.speed * sausageSpeedMultiplier; }; }); 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 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_migrated = function () { self.y += self.speed * sausageSpeedMultiplier; }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x111111 // Slightly brighter black background }); /**** * Game Code ****/ var sausageSpeedMultiplier = 1.0; var freezeMovement = false; // Initialize score function createExplosion(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: 0xFFFFFF, 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 (x, y, obj) { var touchPos = game.toLocal(obj.global); 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_migrated(); if (bullets[i].y < 0) { bullets[i].destroy(); bullets.splice(i, 1); } } // Move sausages and handle Onion and Carp scoring for (var j = sausages.length - 1; j >= 0; j--) { if (!freezeMovement) { sausages[j]._move_migrated(); } if (sausages[j].y > 2732) { if (sausages[j] instanceof Onion || sausages[j] instanceof Carp) { var pointsDeducted = 5 * scoreMultiplier; score -= Math.round(pointsDeducted); if (score < 0) { var endScreen = new EndScreen(); game.addChild(endScreen); LK.showGameOver(); } else { LK.setScore(score); scoreTxt.setText(score.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])) { createExplosion(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])) { createExplosion(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])) { createExplosion(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.0007; // Increment speed multiplier over time scoreMultiplier += 0.001; // Increment score multiplier over time // Spawn sausages and occasionally a golden sausage if (LK.ticks % 80 == 0) { // Reduced from 120 to 100 to increase spawn rate by 1.2 times var sausageType = Math.random() < 0.05 ? IceCube : Math.random() < 0.01 ? 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 IceCubes and stop all falling objects for 5 seconds for (var b = bullets.length - 1; b >= 0; b--) { for (var s = sausages.length - 1; s >= 0; s--) { if (bullets[b] && sausages[s] instanceof IceCube && bullets[b].intersects(sausages[s])) { createExplosion(sausages[s].x, sausages[s].y); bullets[b].destroy(); bullets.splice(b, 1); sausages[s].destroy(); sausages.splice(s, 1); // Update score by 5 for IceCube score += Math.round(5 * scoreMultiplier); scoreTxt.setText(score.toString()); // Reduce the sausageSpeedMultiplier by 25% sausageSpeedMultiplier *= 0.75; break; } } } // 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])) { createExplosion(sausages[s].x, sausages[s].y); var goldenExplosion = new Explosion(); goldenExplosion.x = sausages[s].x; goldenExplosion.y = sausages[s].y; game.addChild(goldenExplosion); 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); scoreMultiplier += 1; // Increase scoreMultiplier by 1 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. They keep track of the score in a manual way as I write it by hand. // Best scores : 60126 by Break_Me / 12867 by Break_Me / 5500 by Bidoutoumou / 3712 by Break_ME
===================================================================
--- original.js
+++ change.js
@@ -185,9 +185,9 @@
var score = 0;
var scoreMultiplier = 1.0;
var scoreTxt = new Text2(score.toString(), {
size: 150,
- fill: "#ffffff",
+ fill: 0xFFFFFF,
anchorX: 0.7,
// Center align horizontally
anchorY: 0.0 // Top align
});
@@ -317,10 +317,10 @@
sausages.splice(s, 1);
// Update score by 5 for IceCube
score += Math.round(5 * scoreMultiplier);
scoreTxt.setText(score.toString());
- // Multiply the sausageSpeedMultiplier by 0.7
- sausageSpeedMultiplier = Math.round(sausageSpeedMultiplier * 0.7);
+ // Reduce the sausageSpeedMultiplier by 25%
+ sausageSpeedMultiplier *= 0.75;
break;
}
}
}
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.