/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var CalculatorButton = Container.expand(function () { var self = Container.call(this); self.buttonType = 'number'; self.value = ''; self.background = self.attachAsset('calculatorButton', { anchorX: 0.5, anchorY: 0.5 }); self.buttonText = new Text2('0', { size: 60, fill: 0xFFFFFF }); self.buttonText.anchor.set(0.5, 0.5); self.addChild(self.buttonText); self.setValue = function (value, type) { self.value = value; self.buttonType = type || 'number'; self.buttonText.setText(value.toString()); // Change background based on button type self.removeChild(self.background); if (type === 'operator') { self.background = self.attachAsset('operatorButton', { anchorX: 0.5, anchorY: 0.5 }); } else if (type === 'equals') { self.background = self.attachAsset('equalsButton', { anchorX: 0.5, anchorY: 0.5 }); } else if (type === 'clear') { self.background = self.attachAsset('clearButton', { anchorX: 0.5, anchorY: 0.5 }); } else { self.background = self.attachAsset('calculatorButton', { anchorX: 0.5, anchorY: 0.5 }); } self.addChildAt(self.background, 0); }; self.down = function (x, y, obj) { LK.getSound('buttonPress').play(); handleButtonPress(self.value, self.buttonType); }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0xf0f0f0 }); /**** * Game Code ****/ // Calculator state variables var displayValue = '0'; var firstOperand = null; var operator = null; var waitingForOperand = false; // Create calculator display var calculatorDisplay = game.attachAsset('display', { anchorX: 0.5, anchorY: 0.5, x: 1024, y: 300 }); // Create display text var displayText = new Text2('0', { size: 80, fill: 0x00ff00 }); displayText.anchor.set(1, 0.5); displayText.x = 850; displayText.y = 0; calculatorDisplay.addChild(displayText); // Create calculator buttons var calculatorButtons = []; var buttonLayout = [['C', '+', '', ''], ['7', '8', '9', ''], ['4', '5', '6', ''], ['1', '2', '3', ''], ['0', '', '', '=']]; for (var row = 0; row < buttonLayout.length; row++) { for (var col = 0; col < 4; col++) { var buttonValue = buttonLayout[row][col]; if (buttonValue !== '') { var button = new CalculatorButton(); var buttonType = 'number'; if (buttonValue === 'C') { buttonType = 'clear'; } else if (buttonValue === '+') { buttonType = 'operator'; } else if (buttonValue === '=') { buttonType = 'equals'; } button.setValue(buttonValue, buttonType); button.x = 300 + col * 420; button.y = 500 + row * 220; calculatorButtons.push(button); game.addChild(button); } } } function updateDisplay() { displayText.setText(displayValue); } function inputNumber(number) { if (waitingForOperand) { displayValue = number; waitingForOperand = false; } else { displayValue = displayValue === '0' ? number : displayValue + number; } updateDisplay(); } function inputOperator(nextOperator) { var inputValue = parseFloat(displayValue); if (firstOperand === null) { firstOperand = inputValue; } else if (operator) { var currentValue = firstOperand || 0; var newValue = calculate(currentValue, inputValue, operator); displayValue = newValue.toString(); firstOperand = newValue; updateDisplay(); } waitingForOperand = true; operator = nextOperator; } function calculate(firstOperand, secondOperand, operator) { if (operator === '+') { return firstOperand + secondOperand; } return secondOperand; } function performCalculation() { var inputValue = parseFloat(displayValue); if (firstOperand !== null && operator) { var newValue = calculate(firstOperand, inputValue, operator); displayValue = newValue.toString(); firstOperand = null; operator = null; waitingForOperand = true; updateDisplay(); } } function clearCalculator() { displayValue = '0'; firstOperand = null; operator = null; waitingForOperand = false; updateDisplay(); } function handleButtonPress(value, type) { if (type === 'number') { inputNumber(value); } else if (type === 'operator') { inputOperator(value); } else if (type === 'equals') { performCalculation(); } else if (type === 'clear') { clearCalculator(); } } // Initialize display updateDisplay(); game.update = function () { // Calculator logic is handled by button events };
===================================================================
--- original.js
+++ change.js
@@ -103,10 +103,10 @@
} else if (buttonValue === '=') {
buttonType = 'equals';
}
button.setValue(buttonValue, buttonType);
- button.x = 400 + col * 320;
- button.y = 500 + row * 170;
+ button.x = 300 + col * 420;
+ button.y = 500 + row * 220;
calculatorButtons.push(button);
game.addChild(button);
}
}