/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var SoundCharacter = Container.expand(function (characterType) { var self = Container.call(this); self.characterType = characterType || 1; self.points = self.characterType === 'special' ? 50 : self.characterType * 5; self.lifetime = 0; self.maxLifetime = self.characterType === 'special' ? 5000 : 8000; self.isClicked = false; var assetId = self.characterType === 'special' ? 'specialCharacter' : 'character' + self.characterType; var characterGraphics = self.attachAsset(assetId, { anchorX: 0.5, anchorY: 0.5 }); self.spawn = function () { var margin = 100; self.x = margin + Math.random() * (2048 - margin * 2); self.y = margin + Math.random() * (2732 - margin * 2); self.alpha = 0; tween(self, { alpha: 1, scaleX: 1.2, scaleY: 1.2 }, { duration: 300, easing: tween.easeOut, onFinish: function onFinish() { tween(self, { scaleX: 1, scaleY: 1 }, { duration: 200 }); } }); }; self.playSound = function () { var soundId = self.characterType === 'special' ? 'Specialsound' : 'Characters1to5sound'; LK.getSound(soundId).play(); }; self.update = function () { self.lifetime += 16; if (self.lifetime >= self.maxLifetime && !self.isClicked) { self.fadeOut(); } }; self.fadeOut = function () { if (self.isClicked) return; tween(self, { alpha: 0, scaleX: 0.5, scaleY: 0.5 }, { duration: 300, onFinish: function onFinish() { self.removeFromGame(); } }); }; self.removeFromGame = function () { for (var i = characters.length - 1; i >= 0; i--) { if (characters[i] === self) { characters.splice(i, 1); break; } } self.destroy(); }; self.down = function (x, y, obj) { if (self.isClicked) return; self.isClicked = true; self.playSound(); LK.setScore(LK.getScore() + self.points); scoreTxt.setText(LK.getScore()); LK.effects.flashObject(self, 0xffffff, 200); tween(self, { scaleX: 1.5, scaleY: 1.5 }, { duration: 150, easing: tween.easeOut, onFinish: function onFinish() { tween(self, { alpha: 0, scaleX: 0.3, scaleY: 0.3 }, { duration: 200, onFinish: function onFinish() { self.removeFromGame(); } }); } }); }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x2c3e50 }); /**** * Game Code ****/ var characters = []; var spawnTimer = 0; var spawnInterval = 2000; var minSpawnInterval = 800; var speedIncreaseRate = 0.98; var lastSpeedIncrease = 0; var scoreTxt = new Text2('0', { size: 80, fill: 0xFFFFFF }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); function spawnCharacter() { var characterType; var random = Math.random(); if (random < 0.05) { characterType = 'special'; } else if (random < 0.25) { characterType = 5; } else if (random < 0.45) { characterType = 4; } else if (random < 0.65) { characterType = 3; } else if (random < 0.85) { characterType = 2; } else { characterType = 1; } var character = new SoundCharacter(characterType); characters.push(character); game.addChild(character); character.spawn(); } function updateDifficulty() { var currentTime = LK.ticks * 16; if (currentTime - lastSpeedIncrease > 10000) { spawnInterval = Math.max(minSpawnInterval, spawnInterval * speedIncreaseRate); lastSpeedIncrease = currentTime; } } game.update = function () { spawnTimer += 16; if (spawnTimer >= spawnInterval) { spawnCharacter(); spawnTimer = 0; } updateDifficulty(); for (var i = characters.length - 1; i >= 0; i--) { var character = characters[i]; if (character && character.update) { character.update(); } } }; spawnCharacter();
===================================================================
--- original.js
+++ change.js
@@ -40,9 +40,9 @@
}
});
};
self.playSound = function () {
- var soundId = self.characterType === 'special' ? 'specialSound' : 'sound' + self.characterType;
+ var soundId = self.characterType === 'special' ? 'Specialsound' : 'Characters1to5sound';
LK.getSound(soundId).play();
};
self.update = function () {
self.lifetime += 16;