User prompt
Добавь фон в центр карты
User prompt
Добавь фон в игру
User prompt
Создай фон
User prompt
Просто создай объект фон
User prompt
Добавь фон
User prompt
Сделай стул фоном
User prompt
После исчезновение комбо очки удваюваються
User prompt
Добавь комбо
User prompt
Сделай так чтоб объект ломался от прикосновение лезвия а не пальца
User prompt
Migrate to the latest version of LK
User prompt
Если резать два объекта то они не делятся на два
User prompt
Сделай так чтобы Объекты storm1 и storm3 нельзя резать
User prompt
Линие могут быть вертикальные и диагональные
User prompt
Линии должны быть одной толщины но разной длины толщина =150
User prompt
Пювсе объекты должны взлетать из низа и падать по диагонали
User prompt
Сделай так чтоб при деление половинки не чего не про исходит
User prompt
Объект можно разделить на две части один раз
User prompt
Одна часть это storm1 а вторая storm2
User prompt
Объекты при разрезании делаться на две части
User prompt
Сделай так чтоб линии пропадали быстрей
User prompt
Объекта могут падать везде
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'clear')' in or related to this line: 'line.graphics.clear();' Line Number: 96
User prompt
Линии со временем пропадают
User prompt
Please fix the bug: 'Uncaught TypeError: Graphics is not a constructor' in or related to this line: 'self.graphics = new Graphics();' Line Number: 28
User prompt
Игрок может рисовать на экране
/****
* Classes
****/
// FlyingObject class
var FlyingObject = Container.expand(function () {
var self = Container.call(this);
this.hasBeenSliced = false; // Track if the object has been sliced
var objectGraphics = self.attachAsset('flyingObject', {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 5;
self._move_migrated = function () {
self.y += self.speed;
// Remove object if it moves off screen
if (self.y > 2732) {
self.destroy();
}
};
});
// Line class
var Line = Container.expand(function () {
var self = Container.call(this);
self.drawLine = function (start, end) {
var lineLength = Math.sqrt(Math.pow(end.x - start.x, 2) + Math.pow(end.y - start.y, 2));
var angle = Math.atan2(end.y - start.y, end.x - start.x);
var lineGraphics = self.attachAsset('line', {
anchorX: 0.5,
anchorY: 0.5,
x: start.x,
y: start.y,
width: lineLength,
height: 150,
// Fixed thickness
rotation: angle,
// Rotate line to match start and end points
color: 0xFF0000
});
self.addChild(lineGraphics);
// Set a timer to remove the line after 0.5 second
LK.setTimeout(function () {
self.removeChild(lineGraphics);
}, 500);
};
});
// SlicedObject class
var SlicedObject = Container.expand(function () {
var self = Container.call(this);
var objectGraphics;
if (Math.random() < 0.5) {
objectGraphics = self.attachAsset('Storma1', {
anchorX: 0.5,
anchorY: 0.5
});
} else {
objectGraphics = self.attachAsset('Storma2', {
anchorX: 0.5,
anchorY: 0.5
});
}
self.speed = 5;
self.direction = Math.random() < 0.5 ? -1 : 1; // Random direction
self._move_migrated = function () {
self.y += self.speed;
self.x += self.speed * self.direction;
// Remove object if it moves off screen
if (self.y > 2732 || self.x < 0 || self.x > 2048) {
self.destroy();
}
};
});
/****
* Initialize Game
****/
// Assets will be automatically created based on usage in the code.
var game = new LK.Game({
backgroundColor: 0x000000
// Init game with black background
// This property does not need to be set as the engine automatically centers and scales the background image to fit the screen.
});
/****
* Game Code
****/
var comboCounter = 0;
var comboTxt = new Text2(comboCounter.toString(), {
size: 100,
fill: "#ff0000"
});
LK.gui.topRight.addChild(comboTxt);
var flyingObjects = [];
var score = 0;
var scoreTxt = new Text2(score.toString(), {
size: 150,
fill: "#ffffff"
});
LK.gui.top.addChild(scoreTxt);
// Function to spawn flying objects
function spawnFlyingObject() {
var flyingObject = new FlyingObject();
flyingObject.x = Math.random() * 2048; // Spawn at a random x position
flyingObject.y = 2732; // Spawn at the bottom
flyingObject.speed = 5; // Set a consistent speed for simplicity
flyingObject._move_migrated = function () {
// Override the move function for diagonal movement
this.y -= this.speed; // Move up
this.x += this.speed * (Math.random() < 0.5 ? -1 : 1); // Move left or right randomly
// Remove object if it moves off screen
if (this.y < 0 || this.x < 0 || this.x > 2048) {
this.destroy();
if (comboCounter > 0) {
score *= 2; // Double the score when combo ends
scoreTxt.setText(score.toString()); // Update score display
comboCounter = 0; // Reset combo counter on miss
comboTxt.setText("Combo: " + comboCounter.toString()); // Update combo display
}
}
};
flyingObjects.push(flyingObject);
game.addChild(flyingObject);
}
var line = new Line();
game.addChild(line);
var startPos = null;
// Handle drawing action
game.on('down', function (x, y, obj) {
startPos = game.toLocal(obj.global);
});
game.on('move', function (x, y, obj) {
if (startPos) {
var endPos = game.toLocal(obj.global);
line.drawLine(startPos, endPos);
flyingObjects.forEach(function (object, index) {
if (line.intersects(object) && !object.hasBeenSliced && object.assetId !== 'Storma1' && object.assetId !== 'Storma2') {
object.hasBeenSliced = true; // Mark the object as sliced
object.destroy(); // Destroy the object
flyingObjects.splice(index, 1); // Remove from array
score++; // Increase score
scoreTxt.setText(score.toString()); // Update score display
comboCounter++; // Increment combo counter
comboTxt.setText("Combo: " + comboCounter.toString()); // Update combo display
}
});
}
});
game.on('up', function (x, y, obj) {
startPos = null;
if (line.graphics) {
line.graphics.clear();
}
});
// Game tick function
LK.on('tick', function () {
// Move flying objects
flyingObjects.forEach(function (object) {
object._move_migrated();
});
// Spawn a new flying object every 60 frames (about 1 second)
if (LK.ticks % 60 === 0) {
spawnFlyingObject();
}
});
// Initialize the game with a flying object
spawnFlyingObject(); ===================================================================
--- original.js
+++ change.js
@@ -74,11 +74,11 @@
* Initialize Game
****/
// Assets will be automatically created based on usage in the code.
var game = new LK.Game({
- backgroundColor: 0x000000,
+ backgroundColor: 0x000000
// Init game with black background
- backgroundImage: 'background'
+ // This property does not need to be set as the engine automatically centers and scales the background image to fit the screen.
});
/****
* Game Code