/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var AnswerButton = Container.expand(function () { var self = Container.call(this); var background = self.attachAsset('answerButton', { anchorX: 0.5, anchorY: 0.5 }); var answerText = new Text2('0', { size: 80, fill: 0xFFFFFF }); answerText.anchor.set(0.5, 0.5); self.addChild(answerText); self.value = 0; self.isCorrect = false; self.background = background; self.answerText = answerText; self.setValue = function (value, correct) { self.value = value; self.isCorrect = correct; self.answerText.setText(value.toString()); }; self.setCorrectStyle = function () { self.removeChild(self.background); self.background = self.attachAsset('answerButtonCorrect', { anchorX: 0.5, anchorY: 0.5 }); self.addChildAt(self.background, 0); }; self.setWrongStyle = function () { self.removeChild(self.background); self.background = self.attachAsset('answerButtonWrong', { anchorX: 0.5, anchorY: 0.5 }); self.addChildAt(self.background, 0); }; self.resetStyle = function () { self.removeChild(self.background); self.background = self.attachAsset('answerButton', { anchorX: 0.5, anchorY: 0.5 }); self.addChildAt(self.background, 0); }; self.down = function (x, y, obj) { if (self.isCorrect) { self.setCorrectStyle(); LK.getSound('correct').play(); LK.setScore(LK.getScore() + 10 * streakMultiplier); currentStreak++; updateStreakMultiplier(); correctAnswers++; generateNewProblem(); } else { self.setWrongStyle(); LK.getSound('wrong').play(); wrongAnswers++; currentStreak = 0; updateStreakMultiplier(); if (wrongAnswers >= maxWrongAnswers) { LK.showGameOver(); } else { LK.setTimeout(function () { generateNewProblem(); }, 1000); } } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x4a90e2 }); /**** * Game Code ****/ var currentNum1 = 0; var currentNum2 = 0; var correctAnswer = 0; var answerButtons = []; var currentStreak = 0; var streakMultiplier = 1; var wrongAnswers = 0; var correctAnswers = 0; var maxWrongAnswers = 3; var difficultyLevel = 1; // Create background var background = game.attachAsset('background', { x: 0, y: 0 }); // Create problem display area var problemArea = game.attachAsset('problemArea', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 400 }); // Create problem text var problemText = new Text2('5 + 3 = ?', { size: 120, fill: 0x333333 }); problemText.anchor.set(0.5, 0.5); problemArea.addChild(problemText); // Create answer buttons for (var i = 0; i < 4; i++) { var button = new AnswerButton(); button.x = 300 + i % 2 * 450 + i % 2 * 150; button.y = 800 + Math.floor(i / 2) * 200; answerButtons.push(button); game.addChild(button); } // Create score display var scoreText = new Text2('Score: 0', { size: 60, fill: 0xFFFFFF }); scoreText.anchor.set(0, 0); scoreText.x = 150; scoreText.y = 150; LK.gui.topLeft.addChild(scoreText); // Create streak display var streakText = new Text2('Streak: 0x', { size: 50, fill: 0xFFFFFF }); streakText.anchor.set(1, 0); streakText.x = -50; streakText.y = 150; LK.gui.topRight.addChild(streakText); // Create wrong answers display var wrongText = new Text2('Wrong: 0/3', { size: 40, fill: 0xFFFFFF }); wrongText.anchor.set(0.5, 0); wrongText.x = 0; wrongText.y = 220; LK.gui.top.addChild(wrongText); function generateNumbers() { if (difficultyLevel === 1) { // Single digit numbers currentNum1 = Math.floor(Math.random() * 9) + 1; currentNum2 = Math.floor(Math.random() * 9) + 1; } else if (difficultyLevel === 2) { // Double digit numbers currentNum1 = Math.floor(Math.random() * 90) + 10; currentNum2 = Math.floor(Math.random() * 90) + 10; } else { // Triple digit numbers currentNum1 = Math.floor(Math.random() * 900) + 100; currentNum2 = Math.floor(Math.random() * 900) + 100; } correctAnswer = currentNum1 + currentNum2; } function generateWrongAnswers() { var wrongAnswers = []; var attempts = 0; while (wrongAnswers.length < 3 && attempts < 50) { var wrongAnswer; var variation = Math.floor(Math.random() * 20) + 1; if (Math.random() < 0.5) { wrongAnswer = correctAnswer + variation; } else { wrongAnswer = correctAnswer - variation; } if (wrongAnswer !== correctAnswer && wrongAnswer > 0 && wrongAnswers.indexOf(wrongAnswer) === -1) { wrongAnswers.push(wrongAnswer); } attempts++; } return wrongAnswers; } function generateNewProblem() { // Update difficulty based on correct answers if (correctAnswers >= 10 && difficultyLevel < 2) { difficultyLevel = 2; } else if (correctAnswers >= 25 && difficultyLevel < 3) { difficultyLevel = 3; } generateNumbers(); problemText.setText(currentNum1 + ' + ' + currentNum2 + ' = ?'); var wrongAnswersList = generateWrongAnswers(); var allAnswers = [correctAnswer].concat(wrongAnswersList); // Shuffle answers for (var i = allAnswers.length - 1; i > 0; i--) { var j = Math.floor(Math.random() * (i + 1)); var temp = allAnswers[i]; allAnswers[i] = allAnswers[j]; allAnswers[j] = temp; } // Set button values for (var i = 0; i < 4; i++) { answerButtons[i].setValue(allAnswers[i], allAnswers[i] === correctAnswer); answerButtons[i].resetStyle(); } updateDisplay(); } function updateStreakMultiplier() { if (currentStreak >= 10) { streakMultiplier = 3; } else if (currentStreak >= 5) { streakMultiplier = 2; } else { streakMultiplier = 1; } } function updateDisplay() { scoreText.setText('Score: ' + LK.getScore()); streakText.setText('Streak: ' + currentStreak + 'x' + streakMultiplier); wrongText.setText('Wrong: ' + wrongAnswers + '/' + maxWrongAnswers); } // Initialize first problem generateNewProblem(); game.update = function () { // Game logic is handled by button events };
===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,232 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+var AnswerButton = Container.expand(function () {
+ var self = Container.call(this);
+ var background = self.attachAsset('answerButton', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ var answerText = new Text2('0', {
+ size: 80,
+ fill: 0xFFFFFF
+ });
+ answerText.anchor.set(0.5, 0.5);
+ self.addChild(answerText);
+ self.value = 0;
+ self.isCorrect = false;
+ self.background = background;
+ self.answerText = answerText;
+ self.setValue = function (value, correct) {
+ self.value = value;
+ self.isCorrect = correct;
+ self.answerText.setText(value.toString());
+ };
+ self.setCorrectStyle = function () {
+ self.removeChild(self.background);
+ self.background = self.attachAsset('answerButtonCorrect', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.addChildAt(self.background, 0);
+ };
+ self.setWrongStyle = function () {
+ self.removeChild(self.background);
+ self.background = self.attachAsset('answerButtonWrong', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.addChildAt(self.background, 0);
+ };
+ self.resetStyle = function () {
+ self.removeChild(self.background);
+ self.background = self.attachAsset('answerButton', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.addChildAt(self.background, 0);
+ };
+ self.down = function (x, y, obj) {
+ if (self.isCorrect) {
+ self.setCorrectStyle();
+ LK.getSound('correct').play();
+ LK.setScore(LK.getScore() + 10 * streakMultiplier);
+ currentStreak++;
+ updateStreakMultiplier();
+ correctAnswers++;
+ generateNewProblem();
+ } else {
+ self.setWrongStyle();
+ LK.getSound('wrong').play();
+ wrongAnswers++;
+ currentStreak = 0;
+ updateStreakMultiplier();
+ if (wrongAnswers >= maxWrongAnswers) {
+ LK.showGameOver();
+ } else {
+ LK.setTimeout(function () {
+ generateNewProblem();
+ }, 1000);
+ }
+ }
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x4a90e2
+});
+
+/****
+* Game Code
+****/
+var currentNum1 = 0;
+var currentNum2 = 0;
+var correctAnswer = 0;
+var answerButtons = [];
+var currentStreak = 0;
+var streakMultiplier = 1;
+var wrongAnswers = 0;
+var correctAnswers = 0;
+var maxWrongAnswers = 3;
+var difficultyLevel = 1;
+// Create background
+var background = game.attachAsset('background', {
+ x: 0,
+ y: 0
+});
+// Create problem display area
+var problemArea = game.attachAsset('problemArea', {
+ anchorX: 0.5,
+ anchorY: 0.5,
+ x: 1024,
+ y: 400
+});
+// Create problem text
+var problemText = new Text2('5 + 3 = ?', {
+ size: 120,
+ fill: 0x333333
+});
+problemText.anchor.set(0.5, 0.5);
+problemArea.addChild(problemText);
+// Create answer buttons
+for (var i = 0; i < 4; i++) {
+ var button = new AnswerButton();
+ button.x = 300 + i % 2 * 450 + i % 2 * 150;
+ button.y = 800 + Math.floor(i / 2) * 200;
+ answerButtons.push(button);
+ game.addChild(button);
+}
+// Create score display
+var scoreText = new Text2('Score: 0', {
+ size: 60,
+ fill: 0xFFFFFF
+});
+scoreText.anchor.set(0, 0);
+scoreText.x = 150;
+scoreText.y = 150;
+LK.gui.topLeft.addChild(scoreText);
+// Create streak display
+var streakText = new Text2('Streak: 0x', {
+ size: 50,
+ fill: 0xFFFFFF
+});
+streakText.anchor.set(1, 0);
+streakText.x = -50;
+streakText.y = 150;
+LK.gui.topRight.addChild(streakText);
+// Create wrong answers display
+var wrongText = new Text2('Wrong: 0/3', {
+ size: 40,
+ fill: 0xFFFFFF
+});
+wrongText.anchor.set(0.5, 0);
+wrongText.x = 0;
+wrongText.y = 220;
+LK.gui.top.addChild(wrongText);
+function generateNumbers() {
+ if (difficultyLevel === 1) {
+ // Single digit numbers
+ currentNum1 = Math.floor(Math.random() * 9) + 1;
+ currentNum2 = Math.floor(Math.random() * 9) + 1;
+ } else if (difficultyLevel === 2) {
+ // Double digit numbers
+ currentNum1 = Math.floor(Math.random() * 90) + 10;
+ currentNum2 = Math.floor(Math.random() * 90) + 10;
+ } else {
+ // Triple digit numbers
+ currentNum1 = Math.floor(Math.random() * 900) + 100;
+ currentNum2 = Math.floor(Math.random() * 900) + 100;
+ }
+ correctAnswer = currentNum1 + currentNum2;
+}
+function generateWrongAnswers() {
+ var wrongAnswers = [];
+ var attempts = 0;
+ while (wrongAnswers.length < 3 && attempts < 50) {
+ var wrongAnswer;
+ var variation = Math.floor(Math.random() * 20) + 1;
+ if (Math.random() < 0.5) {
+ wrongAnswer = correctAnswer + variation;
+ } else {
+ wrongAnswer = correctAnswer - variation;
+ }
+ if (wrongAnswer !== correctAnswer && wrongAnswer > 0 && wrongAnswers.indexOf(wrongAnswer) === -1) {
+ wrongAnswers.push(wrongAnswer);
+ }
+ attempts++;
+ }
+ return wrongAnswers;
+}
+function generateNewProblem() {
+ // Update difficulty based on correct answers
+ if (correctAnswers >= 10 && difficultyLevel < 2) {
+ difficultyLevel = 2;
+ } else if (correctAnswers >= 25 && difficultyLevel < 3) {
+ difficultyLevel = 3;
+ }
+ generateNumbers();
+ problemText.setText(currentNum1 + ' + ' + currentNum2 + ' = ?');
+ var wrongAnswersList = generateWrongAnswers();
+ var allAnswers = [correctAnswer].concat(wrongAnswersList);
+ // Shuffle answers
+ for (var i = allAnswers.length - 1; i > 0; i--) {
+ var j = Math.floor(Math.random() * (i + 1));
+ var temp = allAnswers[i];
+ allAnswers[i] = allAnswers[j];
+ allAnswers[j] = temp;
+ }
+ // Set button values
+ for (var i = 0; i < 4; i++) {
+ answerButtons[i].setValue(allAnswers[i], allAnswers[i] === correctAnswer);
+ answerButtons[i].resetStyle();
+ }
+ updateDisplay();
+}
+function updateStreakMultiplier() {
+ if (currentStreak >= 10) {
+ streakMultiplier = 3;
+ } else if (currentStreak >= 5) {
+ streakMultiplier = 2;
+ } else {
+ streakMultiplier = 1;
+ }
+}
+function updateDisplay() {
+ scoreText.setText('Score: ' + LK.getScore());
+ streakText.setText('Streak: ' + currentStreak + 'x' + streakMultiplier);
+ wrongText.setText('Wrong: ' + wrongAnswers + '/' + maxWrongAnswers);
+}
+// Initialize first problem
+generateNewProblem();
+game.update = function () {
+ // Game logic is handled by button events
+};
\ No newline at end of file