User prompt
Please fix the bug: 's.apply(...).then is not a function' in or related to this line: 'timerTxt.setText(String(timer.toFixed(2))); // update the timer text to include hundredths of a second' Line Number: 226
User prompt
Please fix the bug: 's.apply(...).then is not a function' in or related to this line: 'timerTxt.setText("" + timer.toFixed(2)); // update the timer text to include hundredths of a second' Line Number: 226
User prompt
fix error Compilation error[L226]: s.apply(...).then is not a function
User prompt
Please fix the bug: 's.apply(...).then is not a function' in or related to this line: 'timerTxt.setText(String(timer.toFixed(2))); // update the timer text to include hundredths of a second' Line Number: 225
User prompt
Please fix the bug: 's.apply(...).then is not a function' in or related to this line: 'timerTxt.setText("" + timer.toFixed(2)); // update the timer text to include hundredths of a second' Line Number: 224
User prompt
Please fix the bug: 's.apply(...).then is not a function' in or related to this line: 'timerTxt.setText(String(timer.toFixed(2))); // update the timer text to include hundredths of a second' Line Number: 224
User prompt
Please fix the bug: 's.apply(...).then is not a function' in or related to this line: 'timerTxt.setText("" + timer.toFixed(2)); // update the timer text to include hundredths of a second' Line Number: 224
User prompt
Please fix the bug: 's.apply(...).then is not a function' in or related to this line: 'gameOverTriggered = true;' Line Number: 182
User prompt
Please fix the bug: 's.apply(...).then is not a function' in or related to this line: 'timerTxt.setText(String(timer.toFixed(2))); // update the timer text to include hundredths of a second' Line Number: 224
User prompt
Please fix the bug: 's.apply(...).then is not a function' in or related to this line: 'timerTxt.setText(timer.toFixed(2)); // update the timer text to include hundredths of a second' Line Number: 224
User prompt
Please fix the bug: 's.apply(...).then is not a function' in or related to this line: 'LK.showGameOver();' Line Number: 177
Remix started
Copy Save The Square
/****
* Classes
****/
// Obstacle class
var Obstacle = Container.expand(function () {
var self = Container.call(this);
var obstacleGraphics = self.attachAsset('obstacle', {
anchorX: 0.5,
anchorY: 0.5
});
// Set speed to 20 in a random direction within 360 degrees
var angle = Math.random() * Math.PI * 2; // Random angle in radians
self.speedX = Math.cos(angle) * (Math.random() * (35 - 30) + 30);
self.speedY = Math.sin(angle) * (Math.random() * (35 - 30) + 30);
self._move_migrated = function () {
self.x += self.speedX;
self.y += self.speedY;
// Bounce off walls
if (self.x < 145 || self.x > 1903) {
self.speedX *= -1;
}
if (self.y < 145 || self.y > 2587) {
self.speedY *= -1;
}
};
});
// Obstacle2 class
var Obstacle2 = Container.expand(function () {
var self = Container.call(this);
var obstacleGraphics = self.attachAsset('obstacle2', {
anchorX: 0.5,
anchorY: 0.5
});
// Set speed to 20 in a random direction within 360 degrees
var angle = Math.random() * Math.PI * 2; // Random angle in radians
self.speedX = Math.cos(angle) * (Math.random() * (30 - 25) + 25);
self.speedY = Math.sin(angle) * (Math.random() * (30 - 25) + 25);
self._move_migrated = function () {
self.x += self.speedX;
self.y += self.speedY;
// Bounce off walls
if (self.x < 145 || self.x > 1903) {
self.speedX *= -1;
}
if (self.y < 145 || self.y > 2587) {
self.speedY *= -1;
}
};
});
// Obstacle3 class
var Obstacle3 = Container.expand(function () {
var self = Container.call(this);
var obstacleGraphics = self.attachAsset('obstacle3', {
anchorX: 0.5,
anchorY: 0.5
});
// Set speed to 20 in a random direction within 360 degrees
var angle = Math.random() * Math.PI * 2; // Random angle in radians
self.speedX = Math.cos(angle) * (Math.random() * (32 - 28) + 28);
self.speedY = Math.sin(angle) * (Math.random() * (32 - 28) + 28);
self._move_migrated = function () {
self.x += self.speedX;
self.y += self.speedY;
// Bounce off walls
if (self.x < 145 || self.x > 1903) {
self.speedX *= -1;
}
if (self.y < 145 || self.y > 2587) {
self.speedY *= -1;
}
};
});
// Obstacle4 class
var Obstacle4 = Container.expand(function () {
var self = Container.call(this);
var obstacleGraphics = self.attachAsset('obstacle4', {
anchorX: 0.5,
anchorY: 0.5
});
// Set speed to 20 in a random direction within 360 degrees
var angle = Math.random() * Math.PI * 2; // Random angle in radians
self.speedX = Math.cos(angle) * (Math.random() * (40 - 35) + 35);
self.speedY = Math.sin(angle) * (Math.random() * (40 - 35) + 35);
self._move_migrated = function () {
self.x += self.speedX;
self.y += self.speedY;
// Bounce off walls
if (self.x < 145 || self.x > 1903) {
self.speedX *= -1;
}
if (self.y < 145 || self.y > 2587) {
self.speedY *= -1;
}
};
});
// Assets will be automatically created based on usage in the code.
// Player class
var Player = Container.expand(function () {
var self = Container.call(this);
var playerGraphics = self.attachAsset('player', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 70;
self._move_migrated = function (direction) {
if (direction === 'left' && self.x > 145) {
self.x -= self.speed;
} else if (direction === 'right' && self.x < 1903) {
self.x += self.speed;
}
};
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0xFFFFFF // Init game with white background
});
/****
* Game Code
****/
var obstacle3 = game.addChild(new Obstacle3());
obstacle3.x = obstacle3.width / 2 + 150; // Position at the left edge of the screen
obstacle3.y = 2732 - obstacle3.height / 2 - 150; // Position at the bottom edge of the screen;
var obstacle4 = game.addChild(new Obstacle4());
obstacle4.x = 2048 - obstacle4.width / 2 - 150; // Position at the right edge of the screen
obstacle4.y = 2732 - obstacle4.height / 2 - 150; // Position at the bottom edge of the screen;
LK.on('tick', function () {
// Calculate the distance between the player and the target position
var dx = targetPosition.x - player.x;
var dy = targetPosition.y - player.y;
var distance = Math.sqrt(dx * dx + dy * dy);
// If the player is not already at the target position and the screen is being pressed
if (isScreenPressed && distance > player.speed) {
// Calculate the direction vector
var directionX = dx / distance;
var directionY = dy / distance;
// Move the player towards the target position
player.x += directionX * player.speed;
player.y += directionY * player.speed;
}
// Check if the new position is within the screen boundaries
if (player.x < 145) {
player.x = 145;
} else if (player.x > 1903) {
player.x = 1903;
}
if (player.y < 145) {
player.y = 145;
} else if (player.y > 2587) {
player.y = 2587;
}
// Move the obstacles
obstacle._move_migrated();
obstacle2._move_migrated();
obstacle3._move_migrated();
obstacle4._move_migrated();
// Track if game over has already been triggered
if (typeof gameOverTriggered === "undefined") {
gameOverTriggered = false;
}
// Check if player intersects with any obstacle based on the filled image
if (!gameOverTriggered && (player.intersects(obstacle) || player.intersects(obstacle2) || player.intersects(obstacle3) || player.intersects(obstacle4))) {
// Flash screen red for 1 second (1000ms) to show we are dead.
LK.effects.flashScreen(0xff0000, 1000);
// Save the player's score in decimal format
LK.setScore(parseFloat(timer.toFixed(10)));
// Show game over. The game will be automatically paused while game over is showing.
LK.showGameOver();
gameOverTriggered = true;
}
});
var player = game.addChild(new Player());
player.x = 2048 / 2; // Center horizontally
player.y = 2732 / 2; // Center vertically
var targetPosition = {
x: player.x,
y: player.y
}; // Store the target position for the player
var isScreenPressed = false; // Flag to track if the screen is being pressed
LK.on('down', function (x, y, obj) {
isScreenPressed = true; // Set the flag to true when the screen is pressed
});
LK.on('move', function (x, y, obj) {
if (isScreenPressed) {
if (obj) {
targetPosition = game.toLocal(obj.global); // Set the target position to the cursor position if the screen is being pressed
}
}
});
LK.on('up', function (x, y, obj) {
isScreenPressed = false; // Set the flag to false when the screen is released
targetPosition = {
x: player.x,
y: player.y
}; // Set the target position to the player's current position
});
// Add a timer in the top left corner
var timerTxt = new Text2('0', {
size: 70,
fill: 0x000000
});
timerTxt.x = -170;
LK.gui.topRight.addChild(timerTxt);
var timer = 0;
var frameCount = 0;
LK.on('tick', function () {
frameCount++;
if (frameCount > 1) {
timer += 1 / 60; // increment timer by the time for one frame
}
if (timerTxt && typeof timerTxt.setText === "function") {
// Ensure timerTxt.setText is always called with a string and not causing promise-related errors
timerTxt.setText("" + timer.toFixed(2)); // update the timer text to include hundredths of a second
}
});
var obstacle = game.addChild(new Obstacle());
obstacle.x = 2048 - obstacle.width / 2 - 150; // Position at the right edge of the screen, 200 pixels away from the edge
obstacle.y = obstacle.height / 2 + 150; // Position at the top edge of the screen, 200 pixels away from the edge;
var obstacle2 = game.addChild(new Obstacle2());
obstacle2.x = obstacle2.width / 2 + 150; // Position at the left edge of the screen
obstacle2.y = obstacle2.height / 2 + 150; // Position at the top edge of the screen ===================================================================
--- original.js
+++ change.js
@@ -212,9 +212,9 @@
timer += 1 / 60; // increment timer by the time for one frame
}
if (timerTxt && typeof timerTxt.setText === "function") {
// Ensure timerTxt.setText is always called with a string and not causing promise-related errors
- timerTxt.setText(String(timer.toFixed(2))); // update the timer text to include hundredths of a second
+ timerTxt.setText("" + timer.toFixed(2)); // update the timer text to include hundredths of a second
}
});
var obstacle = game.addChild(new Obstacle());
obstacle.x = 2048 - obstacle.width / 2 - 150; // Position at the right edge of the screen, 200 pixels away from the edge
azerbaijan ball. In-Game asset. 2d. High contrast. No shadows
turkish flag ball head. In-Game asset. 2d. High contrast. No shadows
armenian flag ball head. In-Game asset. 2d. High contrast. No shadows
france flag ball head. In-Game asset. 2d. High contrast. No shadows
america flag ball head. In-Game asset. 2d. High contrast. No shadows