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 ****/ //<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; }; }); // Target class var Target = Container.expand(function () { var self = Container.call(this); var targetGraphics = self.attachAsset('target', { anchorX: 0.5, anchorY: 0.5 }); }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x000000 //Init game with black background }); /**** * Game Code ****/ // Initialize score var score = 0; var scoreTxt = new Text2('0', { size: 150, fill: "#ffffff" }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Initialize target var target = game.addChild(new Target()); target.x = 2048 / 2; target.y = 2732 / 4; // 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 (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; 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; } }; // 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; 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); } else if (darts[i].x > 2048 || darts[i].y > 2732) { darts[i].destroy(); darts.splice(i, 1); } else { darts[i].update(); } } };
===================================================================
--- original.js
+++ change.js
@@ -57,8 +57,10 @@
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;
};
@@ -66,16 +68,31 @@
game.move = function (x, y, obj) {
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;
var angle = Math.atan2(dy, dx);
- game.currentDart.speedX = Math.cos(angle) * 10;
- game.currentDart.speedY = Math.sin(angle) * 10;
+ game.currentDart.speedX = Math.cos(angle) * speed;
+ game.currentDart.speedY = Math.sin(angle) * speed;
+ game.currentDart.startX = x;
+ game.currentDart.startY = y;
}
};
// Mouse or touch up on the game
game.up = function (x, y, obj) {
- game.currentDart = null;
+ 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;
+ 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--) {
@@ -87,7 +104,9 @@
darts.splice(i, 1);
} else if (darts[i].x > 2048 || darts[i].y > 2732) {
darts[i].destroy();
darts.splice(i, 1);
+ } else {
+ darts[i].update();
}
}
};
\ No newline at end of file