User prompt
Put a Logo on the Kemal Dev text
User prompt
Change your font style to 3D style
User prompt
put a song in the background
User prompt
average the score text and move it down a little
User prompt
take down the score text
User prompt
let the game be in english
User prompt
Move the switch button from English language support and Turkish language support to the top
User prompt
Switching between English and Turkish language support
User prompt
Add Turkish language support to the game
User prompt
Enlarge small text in menu
User prompt
Please fix the bug: 'Timeout.tick error: instructText is not defined' in or related to this line: 'tween(instructText, {' Line Number: 603 ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Enlarge small text in menu
User prompt
Texts in the menu should move slowly left and right ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
BEAUTIFYING GRAPHICS
User prompt
WRITE KEMALDEV IN BIG BEFORE THE MENU
User prompt
Don't show the game behind the menu
User prompt
clear difficulty selection
User prompt
move the difficulty selection buttons down to the bottom ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Set the difficulty to low
User prompt
Please fix the bug: 'Uncaught TypeError: Cannot read properties of undefined (reading 'toGlobal')' in or related to this line: 'var localPos = self.toLocal(obj.parent.toGlobal(obj.position));' Line Number: 318
User prompt
Make the background in the menu black
User prompt
have difficulty selection in menu Easy Medium IMPOSSIBLE ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
put start menu ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
Set a 0.5 second cooldown for rng casting
User prompt
Set a 1 second cooldown for rng casting
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var NumberDisplay = Container.expand(function () { var self = Container.call(this); var bg = self.attachAsset('numberDisplay', { anchorX: 0.5, anchorY: 0.5 }); var numberText = new Text2('?', { size: 80, fill: 0xFFFFFF }); numberText.anchor.set(0.5, 0.5); self.addChild(numberText); self.currentNumber = 0; self.generateNumber = function () { self.currentNumber = Math.floor(Math.random() * 100) + 1; numberText.setText(self.currentNumber.toString()); // Enhanced pulse with rainbow color cycling tween(self, { scaleX: 1.4, scaleY: 1.4, rotation: 0.2 }, { duration: 150, easing: tween.easeOut }); tween(self, { scaleX: 1.0, scaleY: 1.0, rotation: 0 }, { duration: 400, easing: tween.bounceOut }); // Multi-color flash sequence tween(bg, { tint: 0xfd79a8 }, { duration: 80, easing: tween.easeOut, onFinish: function onFinish() { tween(bg, { tint: 0x74b9ff }, { duration: 80, easing: tween.easeOut, onFinish: function onFinish() { tween(bg, { tint: 0x6c5ce7 }, { duration: 150, easing: tween.easeIn }); } }); } }); // Text glow effect tween(numberText, { tint: 0xfdcb6e }, { duration: 100, easing: tween.easeOut }); tween(numberText, { tint: 0xffffff }, { duration: 200, easing: tween.easeIn }); }; return self; }); var Particle = Container.expand(function () { var self = Container.call(this); var particle = self.attachAsset('numberDisplay', { anchorX: 0.5, anchorY: 0.5 }); self.vx = 0; self.vy = 0; self.life = 1.0; self.decay = 0.02; self.init = function (color, size) { particle.tint = color; self.scaleX = size; self.scaleY = size; self.alpha = 0.9; // Enhanced random velocity with more dynamic movement self.vx = (Math.random() - 0.5) * 15; self.vy = (Math.random() - 0.5) * 15 - 8; // Add rotation for more dynamic particles self.rotation = Math.random() * Math.PI * 2; self.rotationSpeed = (Math.random() - 0.5) * 0.3; }; self.update = function () { self.x += self.vx; self.y += self.vy; self.vy += 0.3; // gravity self.vx *= 0.99; // air resistance self.life -= self.decay; self.alpha = self.life * 0.8; self.scaleX *= 0.97; self.scaleY *= 0.97; // Add rotation animation self.rotation += self.rotationSpeed; // Color shifting effect as particle fades var lifeFactor = self.life; if (lifeFactor > 0.5) { particle.tint = particle.tint; // Keep original color } else { // Fade to warm colors var fadeAmount = (0.5 - lifeFactor) * 2; particle.tint = 0xfdcb6e * fadeAmount + particle.tint * (1 - fadeAmount); } if (self.life <= 0) { self.destroy(); } }; return self; }); var ParticleSystem = Container.expand(function () { var self = Container.call(this); var particles = []; self.burst = function (x, y, color, count) { for (var i = 0; i < count; i++) { var particle = new Particle(); particle.x = x; particle.y = y; particle.init(color, Math.random() * 0.3 + 0.2); particles.push(particle); self.addChild(particle); } }; self.update = function () { for (var i = particles.length - 1; i >= 0; i--) { if (particles[i].life <= 0) { particles.splice(i, 1); } } }; return self; }); var StartMenu = Container.expand(function () { var self = Container.call(this); // Background overlay with gradient effect var bg = self.attachAsset('tapArea', { anchorX: 0.5, anchorY: 0.5, alpha: 0.95 }); bg.tint = 0x2d3436; // Add title background for better contrast var titleBg = self.attachAsset('titleBg', { anchorX: 0.5, anchorY: 0.5, alpha: 0.8 }); titleBg.y = -300; titleBg.tint = 0x636e72; self.addChild(titleBg); // Title with enhanced styling var titleText = new Text2('LUCKY NUMBERS\nRUSH', { size: 85, fill: 0xfdcb6e }); titleText.anchor.set(0.5, 0.5); titleText.x = 0; titleText.y = -300; self.addChild(titleText); // Add subtitle glow effect var titleGlow = new Text2('LUCKY NUMBERS\nRUSH', { size: 87, fill: 0xffffff }); titleGlow.anchor.set(0.5, 0.5); titleGlow.x = 0; titleGlow.y = -300; titleGlow.alpha = 0.3; self.addChild(titleGlow); self.addChild(titleText); // Ensure title is on top // Instructions var instructText = new Text2('Match target patterns\nEarn points and streaks\nBeat the clock!\n\nTAP ANYWHERE TO START', { size: 50, fill: 0xCCCCCC }); instructText.anchor.set(0.5, 0.5); instructText.y = 100; self.addChild(instructText); // Entrance animations self.show = function () { self.alpha = 0; self.scaleX = 0.8; self.scaleY = 0.8; tween(self, { alpha: 1, scaleX: 1, scaleY: 1 }, { duration: 800, easing: tween.bounceOut }); // Pulse title var _pulseTitleAnim = function pulseTitleAnim() { tween(titleText, { scaleX: 1.1, scaleY: 1.1 }, { duration: 1000, easing: tween.easeInOut, onFinish: function onFinish() { tween(titleText, { scaleX: 1, scaleY: 1 }, { duration: 1000, easing: tween.easeInOut, onFinish: _pulseTitleAnim }); } }); }; LK.setTimeout(_pulseTitleAnim, 500); // Slow left-right movement for title text var _titleMoveAnim = function titleMoveAnim() { tween(titleText, { x: 30 }, { duration: 3000, easing: tween.easeInOut, onFinish: function onFinish() { tween(titleText, { x: -30 }, { duration: 3000, easing: tween.easeInOut, onFinish: function onFinish() { tween(titleText, { x: 0 }, { duration: 3000, easing: tween.easeInOut, onFinish: _titleMoveAnim }); } }); } }); }; LK.setTimeout(_titleMoveAnim, 1000); // Slow left-right movement for title glow (synchronized) var _titleGlowMoveAnim = function titleGlowMoveAnim() { tween(titleGlow, { x: 30 }, { duration: 3000, easing: tween.easeInOut, onFinish: function onFinish() { tween(titleGlow, { x: -30 }, { duration: 3000, easing: tween.easeInOut, onFinish: function onFinish() { tween(titleGlow, { x: 0 }, { duration: 3000, easing: tween.easeInOut, onFinish: _titleGlowMoveAnim }); } }); } }); }; LK.setTimeout(_titleGlowMoveAnim, 1000); }; self.hide = function (callback) { tween(self, { alpha: 0, scaleX: 0.8, scaleY: 0.8 }, { duration: 500, easing: tween.easeIn, onFinish: function onFinish() { self.destroy(); if (callback) callback(); } }); }; // Touch handling - tap anywhere to start game self.down = function (x, y, obj) { self.hide(function () { startGame(1); }); }; return self; }); var StreakDisplay = Container.expand(function () { var self = Container.call(this); var bg = self.attachAsset('streakBg', { anchorX: 0.5, anchorY: 0.5 }); var streakText = new Text2('Streak: 0', { size: 30, fill: 0x000000 }); streakText.anchor.set(0.5, 0.5); self.addChild(streakText); self.currentStreak = 0; self.updateStreak = function (streak) { self.currentStreak = streak; streakText.setText('Streak: ' + streak); if (streak > 0) { // Flash animation for streak tween(bg, { tint: 0xffffff }, { duration: 200 }); tween(bg, { tint: 0xffd700 }, { duration: 200 }); } }; return self; }); var TargetPattern = Container.expand(function () { var self = Container.call(this); var bg = self.attachAsset('targetPattern', { anchorX: 0.5, anchorY: 0.5 }); var patternText = new Text2('Target: 50-60', { size: 40, fill: 0xFFFFFF }); patternText.anchor.set(0.5, 0.5); self.addChild(patternText); self.targetMin = 50; self.targetMax = 60; self.points = 10; self.generatePattern = function (difficulty) { // Slide out animation tween(self, { scaleX: 0.8, scaleY: 0.8, alpha: 0.5 }, { duration: 150, easing: tween.easeIn, onFinish: function onFinish() { var patternType = Math.floor(Math.random() * 3); if (patternType === 0) { // Range pattern var center = Math.floor(Math.random() * 80) + 10; var range = Math.max(5, 20 - difficulty * 2); self.targetMin = center - Math.floor(range / 2); self.targetMax = center + Math.floor(range / 2); patternText.setText('Target: ' + self.targetMin + '-' + self.targetMax); self.points = 10 + difficulty * 2; } else if (patternType === 1) { // Even/Odd pattern var isEven = Math.random() < 0.5; self.targetMin = isEven ? 2 : 1; self.targetMax = isEven ? 100 : 99; patternText.setText(isEven ? 'Target: EVEN' : 'Target: ODD'); self.points = 5 + difficulty; } else { // Divisible pattern var divisor = [3, 5, 7, 11][Math.floor(Math.random() * 4)]; self.targetMin = divisor; self.targetMax = divisor; patternText.setText('Target: ÷' + divisor); self.points = 15 + difficulty * 3; } // Slide in animation tween(self, { scaleX: 1.0, scaleY: 1.0, alpha: 1.0 }, { duration: 300, easing: tween.bounceOut }); } }); }; self.checkMatch = function (number) { if (self.targetMin === self.targetMax) { // Divisible pattern return number % self.targetMin === 0; } else if (self.targetMin === 1 || self.targetMin === 2) { // Even/Odd pattern return number % 2 === 0 && self.targetMin === 2 || number % 2 === 1 && self.targetMin === 1; } else { // Range pattern return number >= self.targetMin && number <= self.targetMax; } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x2d3436 }); /**** * Game Code ****/ // Game state variables var gameTime = 60000; // 60 seconds var timeRemaining = gameTime; var difficulty = 1; var selectedGameDifficulty = 1; var currentStreak = 0; var multiplier = 1; var gameActive = false; // Start with menu var shakeIntensity = 0; var shakeDecay = 0.9; var lastRngTime = 0; var rngCooldown = 500; // 0.5 second cooldown in milliseconds var gameState = 'menu'; // 'menu' or 'playing' // Particle system var particleSystem = game.addChild(new ParticleSystem()); // KEMALDEV title display var kemaldevTitle = new Text2('KEMALDEV', { size: 120, fill: 0xFFD700 }); kemaldevTitle.anchor.set(0.5, 0.5); kemaldevTitle.x = 1024; kemaldevTitle.y = 1366; kemaldevTitle.alpha = 0; game.addChild(kemaldevTitle); // Show KEMALDEV title first tween(kemaldevTitle, { alpha: 1, scaleX: 1.2, scaleY: 1.2 }, { duration: 1000, easing: tween.bounceOut, onFinish: function onFinish() { // Hold for 2 seconds then fade out and show menu LK.setTimeout(function () { tween(kemaldevTitle, { alpha: 0, scaleX: 0.8, scaleY: 0.8 }, { duration: 500, easing: tween.easeIn, onFinish: function onFinish() { kemaldevTitle.destroy(); // Now show the start menu var startMenu = game.addChild(new StartMenu()); startMenu.x = 1024; startMenu.y = 1366; startMenu.show(); } }); }, 2000); } }); // Start game function function startGame(difficultyLevel) { gameState = 'playing'; gameActive = true; selectedGameDifficulty = difficultyLevel; difficulty = difficultyLevel; // Adjust game parameters based on difficulty if (difficultyLevel === 1) { // Easy: More time, slower progression gameTime = 90000; // 90 seconds rngCooldown = 300; // Faster RNG } else if (difficultyLevel === 2) { // Medium: Normal settings gameTime = 60000; // 60 seconds rngCooldown = 500; // Normal RNG } else { // Impossible: Less time, faster progression, longer cooldown gameTime = 45000; // 45 seconds rngCooldown = 800; // Slower RNG } timeRemaining = gameTime; // Start timers startGameTimers(); // Show game elements with animations // Fade in tap area tween(tapArea, { alpha: 0.1 }, { duration: 1000, easing: tween.easeIn }); // Animate number display entrance LK.setTimeout(function () { tween(numberDisplay, { alpha: 1, scaleX: 1, scaleY: 1 }, { duration: 800, easing: tween.bounceOut }); }, 600); // Animate target pattern entrance LK.setTimeout(function () { tween(targetPattern, { alpha: 1, y: 400 }, { duration: 600, easing: tween.easeOut }); }, 800); // Animate streak display entrance LK.setTimeout(function () { tween(streakDisplay, { alpha: 1, y: 1200 }, { duration: 500, easing: tween.easeOut }); }, 1000); // Initialize first pattern after animations LK.setTimeout(function () { targetPattern.generatePattern(difficulty); }, 1200); // Show and animate instructions LK.setTimeout(function () { tween(instructionText, { alpha: 1, y: 580 }, { duration: 800, easing: tween.bounceOut }); // Floating animation var _floatInstructions = function floatInstructions() { tween(instructionText, { y: 620 }, { duration: 2000, easing: tween.easeInOut, onFinish: function onFinish() { tween(instructionText, { y: 580 }, { duration: 2000, easing: tween.easeInOut, onFinish: _floatInstructions }); } }); }; _floatInstructions(); // Fade out instructions after 3 seconds LK.setTimeout(function () { tween(instructionText, { alpha: 0, y: 550 }, { duration: 1000, easing: tween.easeIn }); }, 3000); }, 200); // Slow left-right movement for instruction text var _instructMoveAnim = function instructMoveAnim() { tween(instructText, { x: 40 }, { duration: 4000, easing: tween.easeInOut, onFinish: function onFinish() { tween(instructText, { x: -40 }, { duration: 4000, easing: tween.easeInOut, onFinish: function onFinish() { tween(instructText, { x: 0 }, { duration: 4000, easing: tween.easeInOut, onFinish: _instructMoveAnim }); } }); } }); }; LK.setTimeout(_instructMoveAnim, 1500); // Show UI elements with animations LK.setTimeout(function () { tween(scoreTxt, { alpha: 1 }, { duration: 500, easing: tween.easeOut }); }, 300); LK.setTimeout(function () { tween(timeTxt, { alpha: 1, scaleX: 1, scaleY: 1 }, { duration: 500, easing: tween.bounceOut }); }, 200); LK.setTimeout(function () { tween(difficultyTxt, { alpha: 1, x: 20 }, { duration: 700, easing: tween.easeOut }); }, 400); // Show multiplier display LK.setTimeout(function () { tween(multiplierTxt, { alpha: 1, y: 0 }, { duration: 500, easing: tween.bounceOut }); }, 1200); } function startGameTimers() { // Game timer gameTimer = LK.setInterval(function () { if (!gameActive) return; timeRemaining -= 100; var seconds = Math.ceil(timeRemaining / 1000); timeTxt.setText(seconds.toString()); // Dynamic background color based on time remaining if (timeRemaining < 10000) { // Gradually shift to dramatic purple-red as time runs out var urgency = 1 - timeRemaining / 10000; var red = Math.floor(45 + urgency * 80); var green = Math.floor(35 * (1 - urgency)); var blue = Math.floor(54 + urgency * 40); game.setBackgroundColor(red << 16 | green << 8 | blue); } else if (currentStreak > 5) { // Beautiful teal-gold background for high streaks game.setBackgroundColor(0x00b894); } else { // Enhanced default background with warmer tones game.setBackgroundColor(0x2d3436); } if (timeRemaining <= 0) { gameActive = false; LK.clearInterval(gameTimer); LK.clearInterval(difficultyTimer); if (LK.getScore() >= 500) { LK.showYouWin(); } else { LK.showGameOver(); } } }, 100); // Difficulty progression difficultyTimer = LK.setInterval(function () { if (!gameActive) return; var baseDifficulty = selectedGameDifficulty; var timeFactor = Math.floor((gameTime - timeRemaining) / 10000); difficulty = Math.min(10, baseDifficulty + timeFactor); difficultyTxt.setText('Level ' + difficulty); // Generate new pattern every 5 seconds if ((gameTime - timeRemaining) % 5000 < 100) { targetPattern.generatePattern(difficulty); } }, 100); } // UI Elements (initially hidden) var scoreTxt = new Text2('0', { size: 65, fill: 0xfdcb6e }); scoreTxt.anchor.set(0.5, 0); scoreTxt.alpha = 0; scoreTxt.y = -50; LK.gui.top.addChild(scoreTxt); var timeTxt = new Text2('60', { size: 52, fill: 0xfd79a8 }); timeTxt.anchor.set(1, 0); timeTxt.x = -20; timeTxt.y = 20; timeTxt.alpha = 0; timeTxt.scaleX = 0; timeTxt.scaleY = 0; LK.gui.topRight.addChild(timeTxt); var difficultyTxt = new Text2('Level 1', { size: 42, fill: 0x74b9ff }); difficultyTxt.anchor.set(0, 0); difficultyTxt.x = -100; difficultyTxt.y = 120; difficultyTxt.alpha = 0; LK.gui.topLeft.addChild(difficultyTxt); // Game objects - initially hidden var tapArea = game.attachAsset('tapArea', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 1366, alpha: 0 }); var numberDisplay = game.addChild(new NumberDisplay()); numberDisplay.x = 1024; numberDisplay.y = 800; numberDisplay.alpha = 0; numberDisplay.scaleX = 0.3; numberDisplay.scaleY = 0.3; var targetPattern = game.addChild(new TargetPattern()); targetPattern.x = 1024; targetPattern.y = 300; targetPattern.alpha = 0; var streakDisplay = game.addChild(new StreakDisplay()); streakDisplay.x = 1024; streakDisplay.y = 1300; streakDisplay.alpha = 0; // Instructions var instructionText = new Text2('TAP TO GENERATE NUMBERS!', { size: 52, fill: 0xa29bfe }); instructionText.anchor.set(0.5, 0.5); instructionText.x = 1024; instructionText.y = 600; instructionText.alpha = 0; game.addChild(instructionText); // Timer variables var gameTimer; var difficultyTimer; // Touch handling game.down = function (x, y, obj) { if (!gameActive || gameState !== 'playing') return; // Check cooldown var currentTime = Date.now(); if (currentTime - lastRngTime < rngCooldown) { return; // Still in cooldown, ignore tap } lastRngTime = currentTime; numberDisplay.generateNumber(); LK.getSound('numberGenerate').play(); // Check for match if (targetPattern.checkMatch(numberDisplay.currentNumber)) { // Match found! currentStreak++; multiplier = Math.min(5, 1 + Math.floor(currentStreak / 3)); var points = targetPattern.points * multiplier; LK.setScore(LK.getScore() + points); scoreTxt.setText(LK.getScore().toString()); // Screen shake for big matches if (multiplier > 2) { shakeIntensity = Math.min(15, multiplier * 3); } // Particle burst for matches var particleColor = multiplier > 3 ? 0xFFD700 : 0x00FF00; var particleCount = Math.min(20, 5 + multiplier * 2); particleSystem.burst(numberDisplay.x, numberDisplay.y, particleColor, particleCount); // Enhanced score animation tween(scoreTxt, { scaleX: 1.3 + multiplier * 0.1, scaleY: 1.3 + multiplier * 0.1 }, { duration: 100, easing: tween.easeOut, onFinish: function onFinish() { tween(scoreTxt, { scaleX: 1, scaleY: 1 }, { duration: 300, easing: tween.bounceOut }); } }); // Enhanced number display celebration tween(numberDisplay, { rotation: Math.PI * 2 }, { duration: 600, easing: tween.easeOut }); streakDisplay.updateStreak(currentStreak); // Visual feedback LK.effects.flashObject(targetPattern, 0x00ff00, 500); if (currentStreak > 1) { LK.getSound('streak').play(); // Extra particles for streak particleSystem.burst(streakDisplay.x, streakDisplay.y, 0xFFD700, 8); } else { LK.getSound('match').play(); } // Generate new pattern targetPattern.generatePattern(difficulty); } else { // No match, reset streak if (currentStreak > 0) { currentStreak = 0; multiplier = 1; streakDisplay.updateStreak(currentStreak); // Flash red for missed match LK.effects.flashObject(numberDisplay, 0xff0000, 300); // Red particles for miss particleSystem.burst(numberDisplay.x, numberDisplay.y, 0xFF0000, 5); } } }; // Multiplier display var multiplierTxt = new Text2('x1', { size: 45, fill: 0xfd79a8 }); multiplierTxt.anchor.set(0.5, 1); multiplierTxt.alpha = 0; multiplierTxt.y = 50; LK.gui.bottom.addChild(multiplierTxt); game.update = function () { if (!gameActive) return; // Screen shake effect if (shakeIntensity > 0) { game.x = (Math.random() - 0.5) * shakeIntensity; game.y = (Math.random() - 0.5) * shakeIntensity; shakeIntensity *= shakeDecay; if (shakeIntensity < 0.5) { shakeIntensity = 0; game.x = 0; game.y = 0; } } // Update multiplier display multiplierTxt.setText('x' + multiplier); // Enhanced pulse multiplier when active if (multiplier > 1) { var pulse = Math.sin(LK.ticks * 0.15) * 0.15 + 1; multiplierTxt.scaleX = pulse; multiplierTxt.scaleY = pulse; // Color shift for high multipliers if (multiplier > 3) { var colorShift = Math.sin(LK.ticks * 0.1) * 0.5 + 0.5; multiplierTxt.tint = 0xFFFFFF * colorShift + 0xFF0000 * (1 - colorShift); } } else { multiplierTxt.scaleX = 1; multiplierTxt.scaleY = 1; multiplierTxt.tint = 0xFFD700; } // Enhanced time warning effect if (timeRemaining < 10000) { var flash = Math.sin(LK.ticks * 0.3) * 0.3 + 0.7; timeTxt.alpha = flash; // Pulse timer when very low if (timeRemaining < 5000) { var urgentPulse = Math.sin(LK.ticks * 0.2) * 0.2 + 1; timeTxt.scaleX = urgentPulse; timeTxt.scaleY = urgentPulse; } } // Subtle floating animation for number display numberDisplay.y = 800 + Math.sin(LK.ticks * 0.05) * 10; // Enhanced rainbow effect for high scores if (LK.getScore() > 200) { var rainbow = Math.sin(LK.ticks * 0.08) * 0.5 + 0.5; var rainbow2 = Math.sin(LK.ticks * 0.12 + 2) * 0.5 + 0.5; var r = Math.floor(253 * rainbow + 116 * (1 - rainbow)); var g = Math.floor(203 * rainbow2 + 185 * (1 - rainbow2)); var b = Math.floor(110 + rainbow * 145); scoreTxt.tint = r << 16 | g << 8 | b; } };
===================================================================
--- original.js
+++ change.js
@@ -187,9 +187,9 @@
self.addChild(titleGlow);
self.addChild(titleText); // Ensure title is on top
// Instructions
var instructText = new Text2('Match target patterns\nEarn points and streaks\nBeat the clock!\n\nTAP ANYWHERE TO START', {
- size: 30,
+ size: 50,
fill: 0xCCCCCC
});
instructText.anchor.set(0.5, 0.5);
instructText.y = 100;