/**** * Classes ****/ var Bell = Container.expand(function (score) { var self = Container.call(this); self.score = score; var bellBackground = self.attachAsset('bellBackground', { anchorX: 0.5, anchorY: 0.5 }); self.addChild(bellBackground); var bellGraphics = self.attachAsset('bell', { anchorX: 0.5, anchorY: 0.5 }); bellGraphics.blendMode = 1; self.addChild(bellGraphics); self._move_migrated = function () { self.y += self.parent.parent.bellSpeed; }; }); var ParallaxLayer = Container.expand(function (speed) { var self = Container.call(this); self.actualY = 0; self.speed = typeof speed !== 'undefined' ? speed : 1; self.setParallaxY = function (y) { self.actualY = y * self.speed; self.y = self.actualY; }; }); var Particle = Container.expand(function (x, y, index) { var self = Container.call(this, x, y); self.index = index; var particleGraphics = self.attachAsset('particle', { anchorX: 0.5, anchorY: 0.5 }); self.x = x; self.y = y; var angle = index % 20 * (Math.PI * 2 / 20); self.fixedSpeed = 30; self.angle = angle; self._move_migrated = function () { self.fixedSpeed *= 0.95; self.x += Math.cos(self.angle) * self.fixedSpeed; self.y += Math.sin(self.angle) * self.fixedSpeed; self.cachedAlpha = (self.cachedAlpha || 3) - 0.04; self.alpha = Math.max(0, self.cachedAlpha); if (self.cachedAlpha <= 0) { self.destroy(); } }; }); var Player = Container.expand(function () { var self = Container.call(this); self.targetX = self.x; var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); self.hasJumped = false; self.jump = function () { if (!self.hasJumped) { self.speedy = -30; self.hasJumped = true; LK.getSound('swoosh').play(); } }; self.fall = function () {}; self._update_migrated = function () { var distance = Math.abs(self.x - self.targetX); var speed = Math.max(1, distance / 25); if (self.x < self.targetX) { self.x += Math.min(speed, self.targetX - self.x); playerGraphics.scale.x = -1; } else if (self.x > self.targetX) { self.x -= Math.min(speed, self.x - self.targetX); playerGraphics.scale.x = 1; } self.y += self.speedy; self.speedy += 0.28; }; }); var ScoreText = Container.expand(function (score, x, y) { var self = Container.call(this); self.x = x; self.y = y; var scoreText = new Text2(score.toString(), { size: 120, fill: '#ffffff', weight: 400, stroke: '#000000', strokeThickness: 10 }); scoreText.anchor.set(.5, .5); scoreText.scale.set(0, 0); self.addChild(scoreText); var scaleIncrease = 0.05; LK.on('tick', function () { if (scoreText.scale.x < 1) { scoreText.scale.x += scaleIncrease; scoreText.scale.y += scaleIncrease; } }); self._move_migrated = function () { self.alpha -= 0.02; if (self.alpha <= 0) { self.destroy(); } }; }); var Snowflake = Container.expand(function () { var self = Container.call(this); var flakeGraphics = self.attachAsset('snowflake', { anchorX: 0.5, anchorY: 0.5 }); self.speedy = Math.random() * 2 + 1; self.speedx = Math.random() * 1 - 0.5; self.rotationSpeed = Math.random() * 0.05 - 0.025; self._move_migrated = function () { self.y += self.speedy; self.scale.set(self.speedy / 3, self.speedy / 3); self.x += self.speedx; self.rotation += self.rotationSpeed; if (self.y > 2732 - self.parent.actualY) { self.y = -50 - self.parent.actualY; } if (self.x > 2048) { self.x = -50; } else if (self.x < -50) { self.x = 2048; } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 }); /**** * Game Code ****/ game.bellSpeed = 5; game.bellSpeedIncreaseFactor = 0.001; game.totalTicks = 0; game.layers = []; var background = game.attachAsset('backgroundGraphics', { anchorX: 0.5, anchorY: 0.5 }); background.x = 2048 / 2; background.y = 2732 / 2; background.alpha = 0.5; game.addChildAt(background, 0); var mountains = game.addChild(new ParallaxLayer(.3 / 4 / 4 / 4)); var mountainGraphics = mountains.attachAsset('mountainGraphics', { anchorX: 0.5, anchorY: 1 }); mountainGraphics.x = 2048 / 2; mountainGraphics.y = 2732; mountains.addChild(mountainGraphics); game.layers.push(mountains); var valley = game.addChild(new ParallaxLayer(.3 / 4 / 4)); var valleyGraphics = valley.attachAsset('valleyGraphics', { anchorX: 0.5, anchorY: 1 }); valleyGraphics.x = 2048 / 2; valleyGraphics.y = 2732; valley.addChild(valleyGraphics); game.layers.push(valley); var forest = new ParallaxLayer(.3 / 2); var forestGraphics = forest.attachAsset('forestGraphics', { anchorX: 0.5, anchorY: 1 }); forestGraphics.x = 2048 / 2; forestGraphics.y = 2732 - 150 + 50; forest.addChild(forestGraphics); game.layers.push(forest); var foreground = new ParallaxLayer(); game.layers.push(foreground); game.particles = []; for (var i = 0; i < 100; i++) { var snowflake = new Snowflake(); snowflake.x = Math.random() * 2048; snowflake.y = Math.random() * 2732; forest.addChild(snowflake); game.particles.push(snowflake); } var groundLayer = new ParallaxLayer(.3); var groundGraphics = groundLayer.attachAsset('groundGraphics', { anchorX: 0.5, anchorY: 1 }); groundGraphics.x = 2048 / 2; groundGraphics.y = 2732 + 195; groundLayer.addChild(groundGraphics); game.layers.push(groundLayer); game.addChild(forest); game.addChild(foreground); game.addChild(groundLayer); var player = foreground.addChild(new Player()); player.x = 2048 / 2; player.targetX = player.x; player.y = 2732 - player.height - 80; game.score = 0; scoreTxt = new Text2(LK.getScore().toString(), { size: 150, fill: "#ffffff", weight: 800, dropShadow: true, dropShadowColor: '#000000', dropShadowAngle: Math.PI / 6, dropShadowDistance: 6 }); scoreTxt.anchor.set(.5, 0); LK.gui.top.addChild(scoreTxt); var bells = []; game.addBell = function () { var lastBellY = bells.length > 0 ? bells[bells.length - 1].y : 2732; var nextScore = bells.length > 0 ? bells[bells.length - 1].score + 1 : 1; var bell = foreground.addChild(new Bell(nextScore)); bell.x = Math.random() * (2048 - bell.width); bell.y = lastBellY - (Math.random() * (2732 / 4 - 2732 / 6) + 2732 / 6); bells.push(bell); }; for (var i = 0; i < 8; i++) { game.addBell(); } var player; var scoreTxt; var isGameOver = false; LK.on('tick', function () { player._update_migrated(); var targetParallaxValue = 1366 - player.y + 500; var currentParallaxValue = foreground.actualY; var parallaxDifference = targetParallaxValue - currentParallaxValue; var parallaxSpeed = Math.max(1, Math.abs(parallaxDifference) / 10); background.alpha = Math.min(1, (-2790 - player.y) / 500000 + 0.5); if (currentParallaxValue < targetParallaxValue) { game.layers.forEach(function (layer) { layer.setParallaxY(currentParallaxValue + Math.min(parallaxSpeed, targetParallaxValue - currentParallaxValue)); }); } for (var i = 0; i < bells.length; i++) { bells[i]._move_migrated(); if (player.intersects(bells[i])) { player.speedy = -15; player.hasJumped = true; var newScore = LK.getScore() + bells[i].score; LK.setScore(newScore); scoreTxt.setText(newScore.toString()); game.bellSpeed += game.bellSpeedIncreaseFactor; for (var p = 0; p < 20; p++) { var layerDeltaY = forest.actualY - foreground.actualY; var particle = new Particle(bells[i].x, bells[i].y - layerDeltaY, p); game.particles.push(particle); forest.addChild(particle); var scoreText = new ScoreText(bells[i].score, bells[i].x, bells[i].y - layerDeltaY); game.particles.push(scoreText); forest.addChild(scoreText); } // Play a bell chime sound LK.getSound('bellChime').play(); bells[i].destroy(); bells.splice(i, 1); game.addBell(); } else if (bells[i].y + foreground.actualY > 2832) { bells[i].destroy(); bells.splice(i, 1); game.addBell(); } } if (player.y + foreground.y > 2732) { isGameOver = true; } game.particles.forEach(function (particle) { particle._move_migrated(); if (particle.alpha <= 0) { var index = game.particles.indexOf(particle); if (index > -1) { game.particles.splice(index, 1); } } }); game.totalTicks++; game.bellSpeed += game.bellSpeedIncreaseFactor; if (isGameOver) { LK.effects.flashScreen(0xffffff, 1000); LK.showGameOver(); } }); game.on('down', function (x, y, obj) { var event = obj; var pos = game.toLocal(event.global); player.targetX = pos.x; player.jump(); }); game.on('move', function (x, y, obj) { var event = obj; var pos = game.toLocal(event.global); player.targetX = pos.x; });
===================================================================
--- original.js
+++ change.js
@@ -62,8 +62,9 @@
self.jump = function () {
if (!self.hasJumped) {
self.speedy = -30;
self.hasJumped = true;
+ LK.getSound('swoosh').play();
}
};
self.fall = function () {};
self._update_migrated = function () {
@@ -234,9 +235,8 @@
}
var player;
var scoreTxt;
var isGameOver = false;
-var bellChimeNumber = 0;
LK.on('tick', function () {
player._update_migrated();
var targetParallaxValue = 1366 - player.y + 500;
var currentParallaxValue = foreground.actualY;
@@ -265,12 +265,10 @@
var scoreText = new ScoreText(bells[i].score, bells[i].x, bells[i].y - layerDeltaY);
game.particles.push(scoreText);
forest.addChild(scoreText);
}
- // Play a random bell chime sound
- var mus = [1, 3, 5, 4, 2, 1, 3, 2, 4, 5, 3, 1, 4, 5, 2, 3, 1, 4, 2, 5, 3, 1, 4, 2, 3, 5, 1, 2, 4, 3, 5, 1, 2, 3, 4, 5, 1, 3, 4, 2, 5, 1, 4, 3, 2, 5, 1, 3, 2, 4, 1, 5, 3, 2, 4, 1, 5, 3, 2, 4, 1, 5, 2, 3, 4, 1, 5, 3, 2, 4, 1, 5];
- //LK.getSound('bellChime' + mus[bellChimeNumber % mus.length]).play();
- bellChimeNumber++;
+ // Play a bell chime sound
+ LK.getSound('bellChime').play();
bells[i].destroy();
bells.splice(i, 1);
game.addBell();
} else if (bells[i].y + foreground.actualY > 2832) {
@@ -302,14 +300,8 @@
var event = obj;
var pos = game.toLocal(event.global);
player.targetX = pos.x;
player.jump();
- var mus = [1, 3, 4, 5];
- var mo = 0;
- LK.setInterval(function () {
- LK.getSound('bellChime' + mus[mo % mus.length]).play();
- mo++;
- }, 500);
});
game.on('move', function (x, y, obj) {
var event = obj;
var pos = game.toLocal(event.global);
Tree line of snowy pine trees. Cartoon. Black background. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Mountain valley with snowy trees. Scenic view. Nighttime. Cartoon. Black background. New moon Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Background mountains, nighttime, snow topped Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
2d platform snowy ground. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Cute cartoon rabbit, jumping upwards facing camera. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Starry night sky, northern lights, looking up. Cartoon style. Above clouds Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Single White Christmas bell. White decorations. Cartoon. Outline Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
White Simple Cartoon snowflake Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.