/**** * 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(); // Check if player intersects with any obstacle based on the filled image if (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(); } }); 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 game.on('down', function (x, y, obj) { isScreenPressed = true; // Set the flag to true when the screen is pressed }); game.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 } } }); game.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: "#000000" }); 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 } 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
/****
* 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();
// Check if player intersects with any obstacle based on the filled image
if (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();
}
});
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
game.on('down', function (x, y, obj) {
isScreenPressed = true; // Set the flag to true when the screen is pressed
});
game.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
}
}
});
game.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: "#000000"
});
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
}
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
квадрат со злым лицом.. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
нужно закрасить тень за квадратом
квадрат с испуганным лицом. Белый. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
квадрат со злым лицом. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.