User prompt
после 10 очков мишень начинает двигаться
User prompt
при 0 жизней проигрышь
User prompt
счетчик жизней под счетчиком очков
User prompt
счетчик жизней слева
User prompt
счетчик жизней слева красного цвета
User prompt
если игрок не попадает в мишень то отнимается одна жизнь
User prompt
у игрока 3 жизни, при промахе одна жизнь отнимается
User prompt
сделай так чтобы после попадания мишень двигалась в случайном направлении
User prompt
добавь картинку на фон
User prompt
сделай границу в нижней трети экрана в которой можно двигать мышь
User prompt
сделай границу в нижней трети экрана до которой можно двигать мышь
User prompt
сделай картинку которая заменяет курсор мыши
User prompt
добавь картинку руки которая держит дротик
User prompt
уменьши скорость дротика
User prompt
сделай так чтобы дротик смотрел в направлении своего движения
User prompt
сделай так чтобы дротик смотрел в направлении движения
User prompt
сделай область в которой можно двигать мышью снизу
User prompt
снизь максимальную скорость дротика
User prompt
сделай границу внизу, до которой можно двигать мышью
User prompt
сильно уменьши скорость дротика
User prompt
сделай так чтобы дротик летел в зависимости от силы движения мыши
User prompt
сделай так чтобы дротики кидались движением мыши и у них была физика
User prompt
добавь дротикам физику
User prompt
сделай так чтобы дротики кидались движением мыши
User prompt
сделай так чтобы дротики кидались горизонтально
/**** * Classes ****/ // Cursor class var Cursor = Container.expand(function () { var self = Container.call(this); var cursorGraphics = self.attachAsset('hand', { anchorX: 0.5, anchorY: 0.5 }); }); //<Assets used in the game will automatically appear here> // Dart class var Dart = Container.expand(function () { var self = Container.call(this); var dartGraphics = self.attachAsset('dart', { anchorX: 0.5, anchorY: 0.5 }); self.speedX = 0; self.speedY = 0; self.gravity = 0.5; self.update = function () { self.speedY += self.gravity; self.x += self.speedX; self.y += self.speedY; // Rotate dart in the direction of movement self.rotation = Math.atan2(self.speedY, self.speedX) + Math.PI / 2; }; }); // Target class var Target = Container.expand(function () { var self = Container.call(this); var targetGraphics = self.attachAsset('target', { anchorX: 0.5, anchorY: 0.5 }); self.speedX = 0; self.speedY = 0; self.update = function () { self.x += self.speedX; self.y += self.speedY; // Keep the target within the screen bounds if (self.x < 0) { self.x = 0; } if (self.x > 2048) { self.x = 2048; } if (self.y < 0) { self.y = 0; } if (self.y > 2732 / 2) { self.y = 2732 / 2; } }; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 //Init game with black background }); /**** * Game Code ****/ var background = game.attachAsset('background', { anchorX: 0, anchorY: 0 }); game.addChild(background); // Initialize score var score = 0; // Initialize player lives var lives = 3; var scoreTxt = new Text2('0', { size: 150, fill: "#ffffff" }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Display player lives var livesTxt = new Text2('Lives: ' + lives, { size: 150, fill: "#ff0000" }); livesTxt.anchor.set(0.5, 0); LK.gui.top.addChild(livesTxt); livesTxt.y = scoreTxt.height; // Initialize target var target = game.addChild(new Target()); target.x = 2048 / 2; target.y = 2732 / 4; // Initialize cursor var cursor = game.addChild(new Cursor()); // Initialize darts array var darts = []; // Mouse or touch down on the game game.down = function (x, y, obj) { var newDart = new Dart(); newDart.x = x; newDart.y = y; newDart.startX = x; newDart.startY = y; newDart.lastX = x; newDart.lastY = y; darts.push(newDart); game.addChild(newDart); game.currentDart = newDart; }; // Mouse or touch move on the game game.move = function (x, y, obj) { if (y > 2732 * 2 / 3) { // Check if the y-coordinate is in the lower third of the screen if (game.currentDart) { var dx = x - game.currentDart.startX; var dy = y - game.currentDart.startY; var distance = Math.sqrt(dx * dx + dy * dy); var time = 1; // Assuming 1 frame for simplicity, adjust as needed var speed = distance / time * 0.05; // Reduce speed by a factor of 20 var angle = Math.atan2(dy, dx); game.currentDart.speedX = Math.cos(angle) * speed; game.currentDart.speedY = Math.sin(angle) * speed; game.currentDart.startX = x; game.currentDart.startY = y; } // Update cursor position cursor.x = x; cursor.y = y; } }; // Mouse or touch up on the game game.up = function (x, y, obj) { if (game.currentDart) { var dx = x - game.currentDart.lastX; var dy = y - game.currentDart.lastY; var distance = Math.sqrt(dx * dx + dy * dy); var time = 1; // Assuming 1 frame for simplicity, adjust as needed var speed = distance / time * 0.05; // Reduce speed by a factor of 20 var angle = Math.atan2(dy, dx); game.currentDart.speedX = Math.cos(angle) * speed; game.currentDart.speedY = Math.sin(angle) * speed; game.currentDart = null; } }; // Update game every tick game.update = function () { for (var i = darts.length - 1; i >= 0; i--) { if (darts[i].intersects(target)) { // Update score score += 1; scoreTxt.setText(score); darts[i].destroy(); darts.splice(i, 1); // Move target to a random position target.x = Math.random() * 2048; target.y = Math.random() * 2732 / 2; // Limit to upper half of the screen // If score is 10 or more, start moving the target if (score >= 10) { target.speedX = (Math.random() - 0.5) * 10; target.speedY = (Math.random() - 0.5) * 10; } } else if (darts[i].x > 2048 || darts[i].y > 2732 || darts[i].y < 0 || darts[i].x < 0) { darts[i].destroy(); darts.splice(i, 1); // Decrease player lives on miss lives--; // Update lives display livesTxt.setText('Lives: ' + lives); // Trigger game over when player lives reach 0 if (lives <= 0) { LK.showGameOver(); } } else { darts[i].update(); } } };
===================================================================
--- original.js
+++ change.js
@@ -34,8 +34,27 @@
var targetGraphics = self.attachAsset('target', {
anchorX: 0.5,
anchorY: 0.5
});
+ self.speedX = 0;
+ self.speedY = 0;
+ self.update = function () {
+ self.x += self.speedX;
+ self.y += self.speedY;
+ // Keep the target within the screen bounds
+ if (self.x < 0) {
+ self.x = 0;
+ }
+ if (self.x > 2048) {
+ self.x = 2048;
+ }
+ if (self.y < 0) {
+ self.y = 0;
+ }
+ if (self.y > 2732 / 2) {
+ self.y = 2732 / 2;
+ }
+ };
});
/****
* Initialize Game
@@ -137,8 +156,13 @@
darts.splice(i, 1);
// Move target to a random position
target.x = Math.random() * 2048;
target.y = Math.random() * 2732 / 2; // Limit to upper half of the screen
+ // If score is 10 or more, start moving the target
+ if (score >= 10) {
+ target.speedX = (Math.random() - 0.5) * 10;
+ target.speedY = (Math.random() - 0.5) * 10;
+ }
} else if (darts[i].x > 2048 || darts[i].y > 2732 || darts[i].y < 0 || darts[i].x < 0) {
darts[i].destroy();
darts.splice(i, 1);
// Decrease player lives on miss