User prompt
Set All TintType to 3
User prompt
Fix it.
User prompt
When Player clicks on SquareWhite, set its TintType to 3
User prompt
For SquareWhite: If TintType is 1, set tint to 12893E If TintType is 11, set tint to 11B34C If TintType is 2, set tint to B40421 If TintType is 22, set tint to E00025 If TintType is 3, set tint to E07400 If TintType is 33, set tint to F58E20 If TintType is 4, set tint to 174F3C If TintType is 44, set tint to 33705C
User prompt
if TintType is 0, set SquareWhite tint to edf8ff
User prompt
Create a new variable for SquareWhite called TintType. set it to 0 by default
User prompt
If player clicks on square white, set its tint to fbdb00
User prompt
Create a new class and treat all SquareWhite as individual objects
User prompt
If player clicks on SquareWhite, set its tint to ffbd00
User prompt
if ItemFull is being dragged, set the tint of the SquareWhite Under it to FFFFFF
User prompt
Dont allow itemFullDrag to be dragged higher than the grid of SquareWhite
User prompt
Simplify all math for ScoreBack
Code edit (1 edits merged)
Please save this source code
User prompt
Simpify all math for PauseBack
User prompt
game.up = function(){ itemDragFull = null; // When mouse is unpressed, stop dragging. };
User prompt
add this function to ItemFull: game.move = function (x, y) { if (itemDragFull != null) { // If an object was clicked to be dragged itemDragFull.x = x; //update its x and y properties when mouse moves itemDragFull.y = y; } };
User prompt
then add a function like this inside the class of the ItemFull: self.down = function(){ itemFullDrag = self; }
User prompt
then add a function like this inside the class of the ItemFull: self.down = function(){ itemDragFull = self; }
User prompt
make a variable in the global scope like this: var itemFullDrag = null;
User prompt
Please fix the bug: 'ItemFull is not a constructor' in or related to this line: 'var itemFullCenter = new ItemFull();' Line Number: 329
User prompt
make a variable in the global scope like this: var ItemFull = null;
User prompt
Simplify scale, x and y math too
User prompt
Simplify all math operations, they are too bloated right now
User prompt
Combine NewItem and their ItemPlace into a new item called ItemFull
User prompt
move 2nd pause back 5 pixels lower
/**** * Classes ****/ var ItemFull = Container.expand(function () { var self = Container.call(this); // Create and attach ItemPlace asset var itemPlace = self.attachAsset('ItemPlace', { anchorX: 0.5, anchorY: 1, x: 0, y: 0, width: 282, height: 282, alpha: 1, tint: 0xb40421 }); // Create and attach NewItem text var newItem = new Text2('3', { size: 170, fill: 0xFFFFFF, font: "Arial Black" }); newItem.Type = function () { var rand = Math.random(); if (rand < 0.34) { return 1; } if (rand < 0.68) { return 2; } if (rand < 0.84) { return 3; } return 4; }(); newItem.anchor.set(0.5, 1); newItem.x = itemPlace.x; newItem.y = itemPlace.y - itemPlace.height / 2 + 86; self.addChild(newItem); // Set tint and text based on type if (newItem.Type === 1) { itemPlace.tint = 0x12893E; newItem.setText(Math.floor(Math.random() * 5 + 3).toString()); } else if (newItem.Type === 2) { itemPlace.tint = 0xb40421; newItem.setText(Math.floor(Math.random() * 8 + 1).toString()); } else if (newItem.Type === 3) { itemPlace.tint = 0xe07400; newItem.setText('2'); } else if (newItem.Type === 4) { itemPlace.tint = 0x174F3C; newItem.setText(Math.floor(Math.random() * 4 + 3).toString()); } }); var WhiteRectangle = Container.expand(function () { var self = Container.call(this); var rectangleAsset = self.attachAsset('WhiteRectangle', { anchorX: 0.5, anchorY: 0.5 }); rectangleAsset.scale.set(0.25, 0.7); // Increase the height by 100% // Add a variable to store the target scale for each rectangle self.targetScale = Math.random() * 1.5; // Add an update function to stretch the rectangle self.update = function () { // Continuously stretch the rectangle towards the target scale rectangleAsset.scale.x += (self.targetScale - rectangleAsset.scale.x) * 0.02; // When the target scale is reached, pick a new target if (Math.abs(rectangleAsset.scale.x - self.targetScale) < 0.005) { self.targetScale = Math.random() * 1.5; } }; }); /**** * Initialize Game ****/ // Create an array to hold the random numbers //<Assets used in the game will automatically appear here> var game = new LK.Game({ backgroundColor: 0x000000 //Init game with black background }); /**** * Game Code ****/ var ItemFull = null; var randomNumberTexts = []; for (var i = 0; i < 50; i++) { // Create a new Text2 object to display the random number var randomNumberText = new Text2(Math.floor(Math.random() * 10).toString(), { size: 40, fill: 0x4A73B5, font: "Courier New" }); randomNumberText.anchor.set(0.5, 0.5); randomNumberText.x = 2048 / 50 * i; randomNumberText.y = 2732 / 2 + 930; game.addChild(randomNumberText); randomNumberTexts.push(randomNumberText); } // Add an update function to the game to move the numbers to the left game.update = function () { for (var i = 0; i < randomNumberTexts.length; i++) { randomNumberTexts[i].x -= 5; if (randomNumberTexts[i].x < 0) { randomNumberTexts[i].x = 2048; } } }; // Create another instance of PauseBack and place it right under the original var pauseBack2 = LK.getAsset('PauseBack', { anchorX: 0.0, anchorY: 0.0, x: 15, y: 20 + 150 * 1.5 + 10 - 200 - 40 + 5, // Move it right under the original and 10 pixels lower, then 200 pixels higher, and 40 pixels higher scaleX: 1.5 * 1.03 * 1.02, // Increase size by 5% scaleY: 1.5 * 1.03 * 1.02, // Increase size by 5% alpha: 0.55, tint: 0x000000 }); game.addChild(pauseBack2); // Create PauseBack object and place it in the top-left corner var pauseBack = LK.getAsset('PauseBack', { anchorX: 0.0, anchorY: 0.0, x: 20, y: 20, scaleX: 1.5, scaleY: 1.5, alpha: 1 }); game.addChild(pauseBack); // Add Concrete as a background to all other items var concreteBackground = LK.getAsset('Concrete', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2732 / 2, width: 2048, height: 2732, alpha: 1, tint: 0x98bee3 }); game.addChildAt(concreteBackground, 0); // Add ScoreBack behind the score and make it around 1/3 screen long // Add score on top of the screen var scoreTxt = new Text2('0', { size: 135, fill: 0xFFFFFF, font: "Helvetica" }); var scoreBack = LK.getAsset('ScoreBack', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 20 + 75 - 35 + 20 + 40, width: 2048 / 3 * 0.85 * 0.85 * 1.2 * 1.3 * 1.1, height: 150 * 1.3 * 1.3 * 1.4 * 1.2 * 0.85 * 1.2 * 1.3 * 1.3 * 1.1 * 1.2, alpha: 1 }); game.addChild(scoreBack); // Add an update function to the game to move the numbers to the left game.update = function () { for (var i = 0; i < randomNumberTexts.length; i++) { randomNumberTexts[i].x -= 5; if (randomNumberTexts[i].x < 0) { randomNumberTexts[i].x = 2048; } } }; // Add PainterBackground at the bottom of the screen, above ConcreteBackground var painterBackground = LK.getAsset('PainterBackground', { anchorX: 0.5, anchorY: 1, x: 2048 / 2, y: 2732 - 15 + 15 + 400 - 100 + 50, width: 2048 * 0.9 * 0.95, height: 800 * 1.3 * 1.5, alpha: 1 }); game.addChild(painterBackground); // Generate String Of Numbers var randomNumberTexts = []; for (var i = 0; i < 50; i++) { // Create a new Text2 object to display the random number var randomNumberText = new Text2(Math.floor(Math.random() * 10).toString(), { size: 40, fill: 0x4A73B5, font: "Courier New" }); randomNumberText.anchor.set(0.5, 0.5); randomNumberText.x = 2048 / 50 * i; randomNumberText.y = 2732 / 2 + 930; game.addChild(randomNumberText); randomNumberTexts.push(randomNumberText); } // Add brown board to the game var brownBoardWidth = 400; // Define the width of the BrownBoard asset var brownBoardHeight = 400; // Define the height of the BrownBoard asset var brownBoard = LK.getAsset('BrownBoard', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2732 / 2 - 30, scaleX: 2048 / brownBoardWidth, scaleY: (6 / 1.5 * 1.1 * 1.1 * 0.95 * brownBoardHeight + 30) / brownBoardHeight, alpha: 1 }); // Add main background to the game var background = LK.getAsset('Background', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2 + 20, y: 2732 / 2, width: 2068 * 1.05, height: 2000, alpha: 1 }); game.addChild(brownBoard); game.addChild(background); // Add gridBack behind the grid, but above Background var gridBack = LK.getAsset('GridBack', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2 - 5, y: 2732 / 2 - 20, width: 1400 * 1.2 + 5, height: 1400 * 1.1 * 1.1 - 10, alpha: 1 }); game.addChild(gridBack); // Initialize a 7x7 grid of SquareWhite in the middle of the screen var grid = []; var gridSize = 6; var squareSize = 225.28 * 1.08 * 1.08 * 1.05; // Increase the size of the grid by an additional 5% var startX = (2048 - gridSize * squareSize) / 2 + 110 + 20; var startY = (2732 - gridSize * squareSize) / 2 + 90 + 20 + 5; for (var i = 0; i < gridSize; i++) { for (var j = 0; j < gridSize; j++) { var square = LK.getAsset('SquareWhite', { anchorX: 0.5, anchorY: 0.5, x: startX + i * squareSize, y: startY + j * squareSize, scaleX: 2.112 * 1.08 * 1.05 * 1.08 * 1.05, // Increase the size by an additional 5% scaleY: 2.112 * 1.08 * 1.05 * 1.08 * 1.05, // Increase the size by an additional 5% alpha: 1, tint: 0xedf8ff }); square.Filled = 0; // Removed the ability to click on SquareWhite to remove it game.addChild(square); grid.push(square); } } // Create 6 WhiteCircle instances and stack them on top of each other in the middle of the screen for (var i = 0; i < 6; i++) { var whiteCircle = LK.getAsset('WhiteCircle', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2 - 910, y: 2732 / 2 + i * 300 - 730 - 20 - 5, width: 31.5, height: 31.5, tint: 0x34dbeb }); game.addChild(whiteCircle); // Add a randomiser to change the brightness of each WhiteCircle every 1-5 seconds (function (whiteCircle) { var _changeBrightness = function changeBrightness() { var randomTime = Math.random() * 5000 + 3000; // Random time between 3-8 seconds whiteCircle.alpha = 0.2; // Change brightness to 20% LK.setTimeout(function () { whiteCircle.alpha = 1; // Revert brightness back LK.setTimeout(_changeBrightness, randomTime); // Schedule next brightness change }, randomTime); }; _changeBrightness(); // Start changing brightness })(whiteCircle); } // Add score on top of the screen var scoreTxt = new Text2('0', { size: 160, fill: 0x67BAEB, font: "Courier New" }); // Set score to 0 LK.setScore(0); scoreTxt.setText(LK.getScore()); scoreTxt.anchor.set(0.5, 0); scoreTxt.y += 9; LK.gui.top.addChild(scoreTxt); // Add LevelCounter text 200 pixels under Score var levelCounterTxt = new Text2('Goal: 100', { size: 65, fill: 0xb6bcd6, font: "Courier New" }); levelCounterTxt.anchor.set(0.5, 0); levelCounterTxt.y = scoreTxt.y + 170; LK.gui.top.addChild(levelCounterTxt); for (var i = 0; i < 6; i++) { var rectangle = game.addChild(new WhiteRectangle()); rectangle.x = 2048 - rectangle.width / 2 + 20 - 15; // Move to the right side of the screen and 20 pixels more to the right, then move 15 pixels to the left rectangle.y = i * (rectangle.height + 10) + 945; // Move 945 pixels lower } // Add ItemFull instances var itemFullCenter = new ItemFull(); itemFullCenter.x = 2048 / 2; itemFullCenter.y = painterBackground.y - painterBackground.height / 2 + 360; game.addChild(itemFullCenter); var itemFullLeft = new ItemFull(); itemFullLeft.x = 2048 / 2 - 415; itemFullLeft.y = painterBackground.y - painterBackground.height / 2 + 360; game.addChild(itemFullLeft); var itemFullRight = new ItemFull(); itemFullRight.x = 2048 / 2 + 415; itemFullRight.y = painterBackground.y - painterBackground.height / 2 + 360; game.addChild(itemFullRight); ;
===================================================================
--- original.js
+++ change.js
@@ -83,8 +83,9 @@
/****
* Game Code
****/
+var ItemFull = null;
var randomNumberTexts = [];
for (var i = 0; i < 50; i++) {
// Create a new Text2 object to display the random number
var randomNumberText = new Text2(Math.floor(Math.random() * 10).toString(), {
@@ -110,12 +111,15 @@
// Create another instance of PauseBack and place it right under the original
var pauseBack2 = LK.getAsset('PauseBack', {
anchorX: 0.0,
anchorY: 0.0,
- x: 20,
- y: 195,
- scaleX: 1.6,
- scaleY: 1.6,
+ x: 15,
+ y: 20 + 150 * 1.5 + 10 - 200 - 40 + 5,
+ // Move it right under the original and 10 pixels lower, then 200 pixels higher, and 40 pixels higher
+ scaleX: 1.5 * 1.03 * 1.02,
+ // Increase size by 5%
+ scaleY: 1.5 * 1.03 * 1.02,
+ // Increase size by 5%
alpha: 0.55,
tint: 0x000000
});
game.addChild(pauseBack2);
@@ -151,12 +155,12 @@
});
var scoreBack = LK.getAsset('ScoreBack', {
anchorX: 0.5,
anchorY: 0.5,
- x: 1024,
- y: 120,
- width: 1020,
- height: 560,
+ x: 2048 / 2,
+ y: 20 + 75 - 35 + 20 + 40,
+ width: 2048 / 3 * 0.85 * 0.85 * 1.2 * 1.3 * 1.1,
+ height: 150 * 1.3 * 1.3 * 1.4 * 1.2 * 0.85 * 1.2 * 1.3 * 1.3 * 1.1 * 1.2,
alpha: 1
});
game.addChild(scoreBack);
// Add an update function to the game to move the numbers to the left
@@ -171,12 +175,12 @@
// Add PainterBackground at the bottom of the screen, above ConcreteBackground
var painterBackground = LK.getAsset('PainterBackground', {
anchorX: 0.5,
anchorY: 1,
- x: 1024,
- y: 3082,
- width: 1750,
- height: 1560,
+ x: 2048 / 2,
+ y: 2732 - 15 + 15 + 400 - 100 + 50,
+ width: 2048 * 0.9 * 0.95,
+ height: 800 * 1.3 * 1.5,
alpha: 1
});
game.addChild(painterBackground);
// Generate String Of Numbers
@@ -199,12 +203,12 @@
var brownBoardHeight = 400; // Define the height of the BrownBoard asset
var brownBoard = LK.getAsset('BrownBoard', {
anchorX: 0.5,
anchorY: 0.5,
- x: 1024,
- y: 1336,
- scaleX: 5.12,
- scaleY: 1.1,
+ x: 2048 / 2,
+ y: 2732 / 2 - 30,
+ scaleX: 2048 / brownBoardWidth,
+ scaleY: (6 / 1.5 * 1.1 * 1.1 * 0.95 * brownBoardHeight + 30) / brownBoardHeight,
alpha: 1
});
// Add main background to the game
var background = LK.getAsset('Background', {
@@ -221,12 +225,12 @@
// Add gridBack behind the grid, but above Background
var gridBack = LK.getAsset('GridBack', {
anchorX: 0.5,
anchorY: 0.5,
- x: 1020,
- y: 1345,
- width: 1685,
- height: 1695,
+ x: 2048 / 2 - 5,
+ y: 2732 / 2 - 20,
+ width: 1400 * 1.2 + 5,
+ height: 1400 * 1.1 * 1.1 - 10,
alpha: 1
});
game.addChild(gridBack);
// Initialize a 7x7 grid of SquareWhite in the middle of the screen
square with Neon dark blue borders, simple, futuristic, 2d. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Sci-fi Vault dark Concrete wall texture 2d. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Scifi Square with thin, rounded corners. Dark grey. 2d. Single Game Texture. Little blue outline
Smooth white circle, 2d, simple. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Rounded white square. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.