Code edit (1 edits merged)
Please save this source code
Code edit (14 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Script error.' in or related to this line: 'chunks[globalIndex].play();' Line Number: 52
User prompt
move chunks creation in a separate function then call it after 3s
Code edit (2 edits merged)
Please save this source code
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'play')' in or related to this line: 'chunks[globalIndex].play();' Line Number: 51
Code edit (1 edits merged)
Please save this source code
User prompt
choice1 is 118464ms long; create a global array 'chunks' that inits 119 sounds (`LK.init.sound`)
/**** * Classes ****/ //<Assets used in the game will automatically appear here> //<Write imports for supported plugins here> // Define a class for the PianoTile var PianoTile = Container.expand(function () { var self = Container.call(this); // Create and attach a black rectangle as the tile var tileGraphics = self.attachAsset('tile', { anchorX: 0.5, anchorY: 0.5 }); // Set the speed of the tile self.speed = globalSpeed; self.isTapped = false; // Update function to move the tile downwards self.update = function () { self.y += self.speed; // Check if tile is off-screen if (self.y > 2732) { // End game if a tile is missed if (self.isTapped) { if (self.y > 2732 + self.height) { self.destroy(); } return; } LK.showGameOver(); return; } }; // Handle tap events self.down = function (x, y, obj) { // Increase score and destroy the tile LK.setScore(LK.getScore() + 1); self.isTapped = true; self.alpha = 0.1; if (playTimeout) { LK.clearTimeout(playTimeout); } chunks[globalIndex].play(); globalIndex++; /* // Play choice1 sound at game launch choice1.play(); playTimeout = LK.setTimeout(function () { choice1.stop(); }, 1000); */ }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x4169e1 //Init game with black background }); /**** * Game Code ****/ var chunks = []; var chunkLength = 118464 / 119; for (var i = 0; i < 119; i++) { var start = i * chunkLength / 118464; var end = (i + 1) * chunkLength / 118464; var soundChunk = LK.getSound('choice1', { start: start, end: end }); chunks.push(soundChunk); } // Initialize global speed variable var globalSpeed = 15; var globalTickRate = 900 / globalSpeed; var globalIndex = 0; // Initialize global variable for choice1 var choice1 = LK.getSound('choice1'); var playTimeout; // Initialize score display var scoreTxt = new Text2('0', { size: 150, fill: 0xFFFFFF }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Create column assets to separate lanes var column1 = LK.getAsset('column', { anchorX: 0.5, anchorY: 0.5, x: 1024 - 400 - 3, y: 2732 / 2 }); game.addChild(column1); var column2 = LK.getAsset('column', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 2732 / 2 }); game.addChild(column2); var column3 = LK.getAsset('column', { anchorX: 0.5, anchorY: 0.5, x: 1024 + 400 + 3, y: 2732 / 2 }); game.addChild(column3); // Array to keep track of active tiles var tiles = []; // Function to create a new tile var lastLane = 0; function createTile() { var newTile = new PianoTile(); // Randomly position the tile in one of the two lanes newTile.x = lastLane = lastLane == 1024 - 200 - 3 ? 1024 + 200 + 3 : 1024 - 200 - 3; newTile.y = -500; // Start above the screen tiles.push(newTile); game.addChild(newTile); } // Game update function game.update = function () { // Update score display scoreTxt.setText(LK.getScore()); // speed 10 => every 90 ticks // speed 15 => every 60 ticks if (LK.ticks % globalTickRate == 0) { createTile(); } };
===================================================================
--- original.js
+++ change.js
@@ -65,9 +65,9 @@
var chunkLength = 118464 / 119;
for (var i = 0; i < 119; i++) {
var start = i * chunkLength / 118464;
var end = (i + 1) * chunkLength / 118464;
- var soundChunk = LK.getSound('music1', {
+ var soundChunk = LK.getSound('choice1', {
start: start,
end: end
});
chunks.push(soundChunk);