User prompt
Mix all questions when we start
User prompt
No timeout of button when we win
User prompt
Give opinion button pay next or play again
User prompt
When one level finish then win or next level opinion.
User prompt
The life not get less . Do less when we worng answer
User prompt
Defeat system
User prompt
Drop zone were see what word we dropped
User prompt
Win system. Level get hard then the level was correct
Code edit (1 edits merged)
Please save this source code
User prompt
Hindi Word Builder
Initial prompt
A game that ask english into hindi meaning. We arrange the correct order the word. The game is hindi education base.
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); var storage = LK.import("@upit/storage.v1"); /**** * Classes ****/ var DropZone = Container.expand(function (index) { var self = Container.call(this); self.index = index; self.occupiedTile = null; self.background = self.attachAsset('dropZone', { anchorX: 0.5, anchorY: 0.5 }); self.isEmpty = function () { return self.occupiedTile === null; }; self.placeTile = function (tile) { if (self.occupiedTile) { self.occupiedTile.isPlaced = false; } self.occupiedTile = tile; tile.isPlaced = true; tile.x = self.x; tile.y = self.y; }; self.removeTile = function () { if (self.occupiedTile) { self.occupiedTile.isPlaced = false; self.occupiedTile = null; } }; return self; }); var LetterTile = Container.expand(function (letter, isCorrect) { var self = Container.call(this); self.letter = letter; self.isCorrect = isCorrect || false; self.isPlaced = false; self.originalX = 0; self.originalY = 0; self.isDragging = false; self.background = self.attachAsset('letterTile', { anchorX: 0.5, anchorY: 0.5 }); self.letterText = new Text2(letter, { size: 60, fill: 0x000000 }); self.letterText.anchor.set(0.5, 0.5); self.addChild(self.letterText); self.setCorrect = function () { self.removeChild(self.background); self.background = self.attachAsset('correctTile', { anchorX: 0.5, anchorY: 0.5 }); self.addChildAt(self.background, 0); self.isCorrect = true; }; self.setWrong = function () { self.removeChild(self.background); self.background = self.attachAsset('wrongTile', { anchorX: 0.5, anchorY: 0.5 }); self.addChildAt(self.background, 0); tween(self.background, { tint: 0xffffff }, { duration: 1000 }); }; self.resetTile = function () { self.removeChild(self.background); self.background = self.attachAsset('letterTile', { anchorX: 0.5, anchorY: 0.5 }); self.addChildAt(self.background, 0); self.isCorrect = false; self.isPlaced = false; }; self.down = function (x, y, obj) { if (!self.isCorrect) { self.isDragging = true; draggedTile = self; } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0xf5f5f5 }); /**** * Game Code ****/ var words = [{ english: "CAT", hindi: "बिल्ली", letters: ["बि", "ल्ली"] }, { english: "DOG", hindi: "कुत्ता", letters: ["कु", "त्ता"] }, { english: "BOOK", hindi: "किताब", letters: ["कि", "ता", "ब"] }, { english: "WATER", hindi: "पानी", letters: ["पा", "नी"] }, { english: "HOUSE", hindi: "घर", letters: ["घ", "र"] }, { english: "FLOWER", hindi: "फूल", letters: ["फू", "ल"] }, { english: "TREE", hindi: "पेड़", letters: ["पे", "ड़"] }, { english: "BIRD", hindi: "पक्षी", letters: ["प", "क्षी"] }, { english: "FISH", hindi: "मछली", letters: ["म", "छ", "ली"] }, { english: "STAR", hindi: "तारा", letters: ["ता", "रा"] }]; var currentWordIndex = 0; var currentWord = words[currentWordIndex]; var letterTiles = []; var dropZones = []; var draggedTile = null; var gameCompleted = false; // UI Elements var englishWordText = new Text2('', { size: 80, fill: 0x333333 }); englishWordText.anchor.set(0.5, 0.5); englishWordText.x = 1024; englishWordText.y = 300; game.addChild(englishWordText); var hindiWordText = new Text2('', { size: 60, fill: 0x666666 }); hindiWordText.anchor.set(0.5, 0.5); hindiWordText.x = 1024; hindiWordText.y = 380; game.addChild(hindiWordText); var instructionText = new Text2('Drag the Hindi letters to form the word:', { size: 40, fill: 0x888888 }); instructionText.anchor.set(0.5, 0.5); instructionText.x = 1024; instructionText.y = 500; game.addChild(instructionText); // Score display var scoreText = new Text2('Score: 0', { size: 50, fill: 0x333333 }); scoreText.anchor.set(0.5, 0); LK.gui.top.addChild(scoreText); function shuffleArray(array) { var shuffled = array.slice(); for (var i = shuffled.length - 1; i > 0; i--) { var j = Math.floor(Math.random() * (i + 1)); var temp = shuffled[i]; shuffled[i] = shuffled[j]; shuffled[j] = temp; } return shuffled; } function createLetterTiles() { // Clear existing tiles for (var i = 0; i < letterTiles.length; i++) { letterTiles[i].destroy(); } letterTiles = []; var shuffledLetters = shuffleArray(currentWord.letters); var startX = 1024 - (shuffledLetters.length - 1) * 140 / 2; for (var i = 0; i < shuffledLetters.length; i++) { var tile = new LetterTile(shuffledLetters[i]); tile.x = startX + i * 140; tile.y = 2000; tile.originalX = tile.x; tile.originalY = tile.y; letterTiles.push(tile); game.addChild(tile); } } function createDropZones() { // Clear existing zones for (var i = 0; i < dropZones.length; i++) { dropZones[i].destroy(); } dropZones = []; var startX = 1024 - (currentWord.letters.length - 1) * 140 / 2; for (var i = 0; i < currentWord.letters.length; i++) { var zone = new DropZone(i); zone.x = startX + i * 140; zone.y = 1200; dropZones.push(zone); game.addChild(zone); } } function checkWord() { var formedWord = ""; var allPlaced = true; for (var i = 0; i < dropZones.length; i++) { if (dropZones[i].occupiedTile) { formedWord += dropZones[i].occupiedTile.letter; } else { allPlaced = false; break; } } if (allPlaced) { if (formedWord === currentWord.hindi) { // Correct word LK.getSound('correct').play(); LK.setScore(LK.getScore() + 10); scoreText.setText('Score: ' + LK.getScore()); // Mark tiles as correct for (var i = 0; i < dropZones.length; i++) { if (dropZones[i].occupiedTile) { dropZones[i].occupiedTile.setCorrect(); } } // Show correct Hindi word hindiWordText.setText('✓ ' + currentWord.hindi); hindiWordText.tint = 0x00aa00; // Move to next word after delay LK.setTimeout(function () { nextWord(); }, 2000); } else { // Wrong word LK.getSound('wrong').play(); // Show wrong feedback for (var i = 0; i < dropZones.length; i++) { if (dropZones[i].occupiedTile) { dropZones[i].occupiedTile.setWrong(); } } // Reset after delay LK.setTimeout(function () { resetCurrentWord(); }, 1500); } } } function nextWord() { currentWordIndex++; if (currentWordIndex >= words.length) { // Game completed gameCompleted = true; LK.getSound('complete').play(); if (LK.getScore() >= 80) { LK.showYouWin(); } else { LK.showGameOver(); } return; } currentWord = words[currentWordIndex]; setupWord(); } function resetCurrentWord() { for (var i = 0; i < letterTiles.length; i++) { letterTiles[i].resetTile(); letterTiles[i].x = letterTiles[i].originalX; letterTiles[i].y = letterTiles[i].originalY; } for (var i = 0; i < dropZones.length; i++) { dropZones[i].removeTile(); } hindiWordText.setText(''); hindiWordText.tint = 0x666666; } function setupWord() { englishWordText.setText(currentWord.english); hindiWordText.setText(''); hindiWordText.tint = 0x666666; createLetterTiles(); createDropZones(); } function findNearestDropZone(x, y) { var nearest = null; var minDistance = Infinity; for (var i = 0; i < dropZones.length; i++) { var dx = x - dropZones[i].x; var dy = y - dropZones[i].y; var distance = Math.sqrt(dx * dx + dy * dy); if (distance < minDistance && distance < 100) { minDistance = distance; nearest = dropZones[i]; } } return nearest; } // Initialize first word setupWord(); // Game controls game.move = function (x, y, obj) { if (draggedTile && draggedTile.isDragging) { draggedTile.x = x; draggedTile.y = y; } }; game.up = function (x, y, obj) { if (draggedTile && draggedTile.isDragging) { draggedTile.isDragging = false; var nearestZone = findNearestDropZone(x, y); if (nearestZone) { // Remove tile from previous zone if it was placed for (var i = 0; i < dropZones.length; i++) { if (dropZones[i].occupiedTile === draggedTile) { dropZones[i].removeTile(); break; } } // Place tile in new zone nearestZone.placeTile(draggedTile); // Check if word is complete LK.setTimeout(function () { checkWord(); }, 100); } else { // Return to original position if (draggedTile.isPlaced) { // Find and remove from current zone for (var i = 0; i < dropZones.length; i++) { if (dropZones[i].occupiedTile === draggedTile) { dropZones[i].removeTile(); break; } } } tween(draggedTile, { x: draggedTile.originalX, y: draggedTile.originalY }, { duration: 300, easing: tween.easeOut }); } draggedTile = null; } }; game.update = function () { // Update score display scoreText.setText('Score: ' + LK.getScore()); };
===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,376 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+var storage = LK.import("@upit/storage.v1");
+
+/****
+* Classes
+****/
+var DropZone = Container.expand(function (index) {
+ var self = Container.call(this);
+ self.index = index;
+ self.occupiedTile = null;
+ self.background = self.attachAsset('dropZone', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.isEmpty = function () {
+ return self.occupiedTile === null;
+ };
+ self.placeTile = function (tile) {
+ if (self.occupiedTile) {
+ self.occupiedTile.isPlaced = false;
+ }
+ self.occupiedTile = tile;
+ tile.isPlaced = true;
+ tile.x = self.x;
+ tile.y = self.y;
+ };
+ self.removeTile = function () {
+ if (self.occupiedTile) {
+ self.occupiedTile.isPlaced = false;
+ self.occupiedTile = null;
+ }
+ };
+ return self;
+});
+var LetterTile = Container.expand(function (letter, isCorrect) {
+ var self = Container.call(this);
+ self.letter = letter;
+ self.isCorrect = isCorrect || false;
+ self.isPlaced = false;
+ self.originalX = 0;
+ self.originalY = 0;
+ self.isDragging = false;
+ self.background = self.attachAsset('letterTile', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.letterText = new Text2(letter, {
+ size: 60,
+ fill: 0x000000
+ });
+ self.letterText.anchor.set(0.5, 0.5);
+ self.addChild(self.letterText);
+ self.setCorrect = function () {
+ self.removeChild(self.background);
+ self.background = self.attachAsset('correctTile', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.addChildAt(self.background, 0);
+ self.isCorrect = true;
+ };
+ self.setWrong = function () {
+ self.removeChild(self.background);
+ self.background = self.attachAsset('wrongTile', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.addChildAt(self.background, 0);
+ tween(self.background, {
+ tint: 0xffffff
+ }, {
+ duration: 1000
+ });
+ };
+ self.resetTile = function () {
+ self.removeChild(self.background);
+ self.background = self.attachAsset('letterTile', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.addChildAt(self.background, 0);
+ self.isCorrect = false;
+ self.isPlaced = false;
+ };
+ self.down = function (x, y, obj) {
+ if (!self.isCorrect) {
+ self.isDragging = true;
+ draggedTile = self;
+ }
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0xf5f5f5
+});
+
+/****
+* Game Code
+****/
+var words = [{
+ english: "CAT",
+ hindi: "बिल्ली",
+ letters: ["बि", "ल्ली"]
+}, {
+ english: "DOG",
+ hindi: "कुत्ता",
+ letters: ["कु", "त्ता"]
+}, {
+ english: "BOOK",
+ hindi: "किताब",
+ letters: ["कि", "ता", "ब"]
+}, {
+ english: "WATER",
+ hindi: "पानी",
+ letters: ["पा", "नी"]
+}, {
+ english: "HOUSE",
+ hindi: "घर",
+ letters: ["घ", "र"]
+}, {
+ english: "FLOWER",
+ hindi: "फूल",
+ letters: ["फू", "ल"]
+}, {
+ english: "TREE",
+ hindi: "पेड़",
+ letters: ["पे", "ड़"]
+}, {
+ english: "BIRD",
+ hindi: "पक्षी",
+ letters: ["प", "क्षी"]
+}, {
+ english: "FISH",
+ hindi: "मछली",
+ letters: ["म", "छ", "ली"]
+}, {
+ english: "STAR",
+ hindi: "तारा",
+ letters: ["ता", "रा"]
+}];
+var currentWordIndex = 0;
+var currentWord = words[currentWordIndex];
+var letterTiles = [];
+var dropZones = [];
+var draggedTile = null;
+var gameCompleted = false;
+// UI Elements
+var englishWordText = new Text2('', {
+ size: 80,
+ fill: 0x333333
+});
+englishWordText.anchor.set(0.5, 0.5);
+englishWordText.x = 1024;
+englishWordText.y = 300;
+game.addChild(englishWordText);
+var hindiWordText = new Text2('', {
+ size: 60,
+ fill: 0x666666
+});
+hindiWordText.anchor.set(0.5, 0.5);
+hindiWordText.x = 1024;
+hindiWordText.y = 380;
+game.addChild(hindiWordText);
+var instructionText = new Text2('Drag the Hindi letters to form the word:', {
+ size: 40,
+ fill: 0x888888
+});
+instructionText.anchor.set(0.5, 0.5);
+instructionText.x = 1024;
+instructionText.y = 500;
+game.addChild(instructionText);
+// Score display
+var scoreText = new Text2('Score: 0', {
+ size: 50,
+ fill: 0x333333
+});
+scoreText.anchor.set(0.5, 0);
+LK.gui.top.addChild(scoreText);
+function shuffleArray(array) {
+ var shuffled = array.slice();
+ for (var i = shuffled.length - 1; i > 0; i--) {
+ var j = Math.floor(Math.random() * (i + 1));
+ var temp = shuffled[i];
+ shuffled[i] = shuffled[j];
+ shuffled[j] = temp;
+ }
+ return shuffled;
+}
+function createLetterTiles() {
+ // Clear existing tiles
+ for (var i = 0; i < letterTiles.length; i++) {
+ letterTiles[i].destroy();
+ }
+ letterTiles = [];
+ var shuffledLetters = shuffleArray(currentWord.letters);
+ var startX = 1024 - (shuffledLetters.length - 1) * 140 / 2;
+ for (var i = 0; i < shuffledLetters.length; i++) {
+ var tile = new LetterTile(shuffledLetters[i]);
+ tile.x = startX + i * 140;
+ tile.y = 2000;
+ tile.originalX = tile.x;
+ tile.originalY = tile.y;
+ letterTiles.push(tile);
+ game.addChild(tile);
+ }
+}
+function createDropZones() {
+ // Clear existing zones
+ for (var i = 0; i < dropZones.length; i++) {
+ dropZones[i].destroy();
+ }
+ dropZones = [];
+ var startX = 1024 - (currentWord.letters.length - 1) * 140 / 2;
+ for (var i = 0; i < currentWord.letters.length; i++) {
+ var zone = new DropZone(i);
+ zone.x = startX + i * 140;
+ zone.y = 1200;
+ dropZones.push(zone);
+ game.addChild(zone);
+ }
+}
+function checkWord() {
+ var formedWord = "";
+ var allPlaced = true;
+ for (var i = 0; i < dropZones.length; i++) {
+ if (dropZones[i].occupiedTile) {
+ formedWord += dropZones[i].occupiedTile.letter;
+ } else {
+ allPlaced = false;
+ break;
+ }
+ }
+ if (allPlaced) {
+ if (formedWord === currentWord.hindi) {
+ // Correct word
+ LK.getSound('correct').play();
+ LK.setScore(LK.getScore() + 10);
+ scoreText.setText('Score: ' + LK.getScore());
+ // Mark tiles as correct
+ for (var i = 0; i < dropZones.length; i++) {
+ if (dropZones[i].occupiedTile) {
+ dropZones[i].occupiedTile.setCorrect();
+ }
+ }
+ // Show correct Hindi word
+ hindiWordText.setText('✓ ' + currentWord.hindi);
+ hindiWordText.tint = 0x00aa00;
+ // Move to next word after delay
+ LK.setTimeout(function () {
+ nextWord();
+ }, 2000);
+ } else {
+ // Wrong word
+ LK.getSound('wrong').play();
+ // Show wrong feedback
+ for (var i = 0; i < dropZones.length; i++) {
+ if (dropZones[i].occupiedTile) {
+ dropZones[i].occupiedTile.setWrong();
+ }
+ }
+ // Reset after delay
+ LK.setTimeout(function () {
+ resetCurrentWord();
+ }, 1500);
+ }
+ }
+}
+function nextWord() {
+ currentWordIndex++;
+ if (currentWordIndex >= words.length) {
+ // Game completed
+ gameCompleted = true;
+ LK.getSound('complete').play();
+ if (LK.getScore() >= 80) {
+ LK.showYouWin();
+ } else {
+ LK.showGameOver();
+ }
+ return;
+ }
+ currentWord = words[currentWordIndex];
+ setupWord();
+}
+function resetCurrentWord() {
+ for (var i = 0; i < letterTiles.length; i++) {
+ letterTiles[i].resetTile();
+ letterTiles[i].x = letterTiles[i].originalX;
+ letterTiles[i].y = letterTiles[i].originalY;
+ }
+ for (var i = 0; i < dropZones.length; i++) {
+ dropZones[i].removeTile();
+ }
+ hindiWordText.setText('');
+ hindiWordText.tint = 0x666666;
+}
+function setupWord() {
+ englishWordText.setText(currentWord.english);
+ hindiWordText.setText('');
+ hindiWordText.tint = 0x666666;
+ createLetterTiles();
+ createDropZones();
+}
+function findNearestDropZone(x, y) {
+ var nearest = null;
+ var minDistance = Infinity;
+ for (var i = 0; i < dropZones.length; i++) {
+ var dx = x - dropZones[i].x;
+ var dy = y - dropZones[i].y;
+ var distance = Math.sqrt(dx * dx + dy * dy);
+ if (distance < minDistance && distance < 100) {
+ minDistance = distance;
+ nearest = dropZones[i];
+ }
+ }
+ return nearest;
+}
+// Initialize first word
+setupWord();
+// Game controls
+game.move = function (x, y, obj) {
+ if (draggedTile && draggedTile.isDragging) {
+ draggedTile.x = x;
+ draggedTile.y = y;
+ }
+};
+game.up = function (x, y, obj) {
+ if (draggedTile && draggedTile.isDragging) {
+ draggedTile.isDragging = false;
+ var nearestZone = findNearestDropZone(x, y);
+ if (nearestZone) {
+ // Remove tile from previous zone if it was placed
+ for (var i = 0; i < dropZones.length; i++) {
+ if (dropZones[i].occupiedTile === draggedTile) {
+ dropZones[i].removeTile();
+ break;
+ }
+ }
+ // Place tile in new zone
+ nearestZone.placeTile(draggedTile);
+ // Check if word is complete
+ LK.setTimeout(function () {
+ checkWord();
+ }, 100);
+ } else {
+ // Return to original position
+ if (draggedTile.isPlaced) {
+ // Find and remove from current zone
+ for (var i = 0; i < dropZones.length; i++) {
+ if (dropZones[i].occupiedTile === draggedTile) {
+ dropZones[i].removeTile();
+ break;
+ }
+ }
+ }
+ tween(draggedTile, {
+ x: draggedTile.originalX,
+ y: draggedTile.originalY
+ }, {
+ duration: 300,
+ easing: tween.easeOut
+ });
+ }
+ draggedTile = null;
+ }
+};
+game.update = function () {
+ // Update score display
+ scoreText.setText('Score: ' + LK.getScore());
+};
\ No newline at end of file