Code edit (1 edits merged)
Please save this source code
User prompt
Goals yazısı biraz daha üste olsun
Code edit (4 edits merged)
Please save this source code
User prompt
instructionTxt make bold this writing
Code edit (1 edits merged)
Please save this source code
User prompt
ScoreTexti biraz yukarı kaydır
User prompt
scoretexti birazcık yukarı taşı
User prompt
scoreText aşağıda olsun
User prompt
crosbar ve goalpost renklerini beyaz yap
Code edit (2 edits merged)
Please save this source code
User prompt
add background
User prompt
oyun boyunca sound çalsın
Code edit (1 edits merged)
Please save this source code
User prompt
add MatchMusic
User prompt
add MatchMusic when start game. Finish for gameover
User prompt
kalecinin yanlarındaki hitboxları biraz büyült
User prompt
kalecinin yan hitboxlarını çok az büyült
User prompt
kalecinin yanlardaki hitboxunu biraz küçült ve ayarla
User prompt
kaleci ve top hitboxunu biraz küçült
User prompt
aimline birazcık kısalt
User prompt
aimline uzat
User prompt
aimline boyunu biraz arttır
User prompt
aimline hitboxunu biraz küçült
User prompt
Sound assetsleri sil
Code edit (1 edits merged)
Please save this source code
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var Ball = Container.expand(function () { var self = Container.call(this); var ballGraphics = self.attachAsset('ball', { anchorX: 0.5, anchorY: 0.5 }); self.velocityX = 0; self.velocityY = 0; self.isMoving = false; self.gravity = -0.5; self.friction = 0.98; self.shoot = function (targetX, targetY) { var deltaX = targetX - self.x; var deltaY = targetY - self.y; var distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY); self.velocityX = deltaX / distance * 30; // Increase speed for direct aim self.velocityY = deltaY / distance * 30; // Increase speed for direct aim self.isMoving = true; }; self.reset = function () { self.x = 1024; self.y = 1700; self.velocityX = 0; self.velocityY = 0; self.isMoving = false; }; self.update = function () { if (self.isMoving) { self.x += self.velocityX; self.y += self.velocityY; self.velocityY += self.gravity; self.velocityX *= self.friction; self.velocityY *= self.friction; if (Math.abs(self.velocityX) < 0.5 && Math.abs(self.velocityY) < 0.5) { self.isMoving = false; } } }; return self; }); var Goalkeeper = Container.expand(function () { var self = Container.call(this); var keeperGraphics = self.attachAsset('goalkeeper', { anchorX: 0.5, anchorY: 1.0 }); self.direction = 1; self.speed = 5; self.minX = 800; self.maxX = 1248; self.reactDistance = 400; self.update = function () { self.x += self.direction * self.speed; if (self.x <= self.minX) { self.x = self.minX; self.direction = 1; } else if (self.x >= self.maxX) { self.x = self.maxX; self.direction = -1; } if (ball.isMoving && ball.y < self.y + self.reactDistance) { if (ball.x < self.x - 20) { self.direction = -1; self.speed = 5; } else if (ball.x > self.x + 20) { self.direction = 1; self.speed = 5; } } else { self.speed = 3 + Math.floor(goalCount / 1); } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x228b22 }); /**** * Game Code ****/ var goalWidth = 800; // Increased width var goalHeight = 400; // Increased height var goalX = 1024 - goalWidth / 2; // Centered horizontally var goalY = 500; // Moved further down the screen var net = game.addChild(LK.getAsset('net', { x: goalX + 20, y: goalY + 20, alpha: 0.3 })); var leftPost = game.addChild(LK.getAsset('goalpost', { x: goalX, y: goalY, anchorX: 0.5, anchorY: 0 })); var rightPost = game.addChild(LK.getAsset('goalpost', { x: goalX + goalWidth, y: goalY, anchorX: 0.5, anchorY: 0 })); var crossbar = game.addChild(LK.getAsset('crossbar', { x: goalX, y: goalY, anchorX: 0, anchorY: 0.5 })); var ball = game.addChild(new Ball()); ball.reset(); var goalkeeper = game.addChild(new Goalkeeper()); goalkeeper.x = 1024; goalkeeper.y = goalY + goalHeight + 30; // Moved even closer to the net var aimLine = game.addChild(LK.getAsset('aimLine', { anchorX: 0.5, anchorY: 0, alpha: 0 })); var isAiming = false; var shotCount = 0; var goalCount = 0; var scoreTxt = new Text2('Goals: 0/0', { size: 80, fill: 0xFFFFFF }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); var instructionTxt = new Text2('Tap and drag to aim, release to shoot!', { size: 60, fill: 0xFFFF00 }); instructionTxt.anchor.set(0.5, 0.5); instructionTxt.x = 1024; instructionTxt.y = 2400; game.addChild(instructionTxt); function updateScore() { scoreTxt.setText('Goals: ' + goalCount); } function resetForNextShot() { LK.setTimeout(function () { ball.reset(); isAiming = false; aimLine.alpha = 0; ball.reset(); isAiming = false; aimLine.alpha = 0; }, 500); } function checkGoal() { if (ball.intersects(net)) { if (!ball.intersects(goalkeeper)) { goalCount++; goalkeeper.speed += 1; // Increase goalkeeper speed after a goal is scored LK.effects.flashScreen(0x00ff00, 500); // Trigger green light effect } else { goalkeeper.speed += 2; // Increase goalkeeper speed after conceding a goal LK.effects.flashScreen(0xff0000, 500); // Trigger red light effect LK.showGameOver('Final Score: ' + goalCount); // End the game when goalkeeper saves the ball and display final score } updateScore(); resetForNextShot(); return true; } // Check if ball is in goal area but doesn't touch net (save scenario) var inGoalArea = ball.x > goalX - 50 && ball.x < goalX + goalWidth + 50 && ball.y > goalY - 50 && ball.y < goalY + goalHeight + 50; if (inGoalArea && !ball.intersects(net) && ball.isMoving) { resetForNextShot(); return true; } return false; } game.down = function (x, y, obj) { if (!ball.isMoving) { isAiming = true; aimLine.x = ball.x; aimLine.y = ball.y; aimLine.alpha = 0.8; var deltaX = x - ball.x; var deltaY = y - ball.y; var angle = Math.atan2(deltaY, deltaX); aimLine.rotation = angle - Math.PI / 2; var distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY); aimLine.height = Math.min(distance * 0.5, 200); } }; game.move = function (x, y, obj) { if (isAiming) { var deltaX = x - ball.x; var deltaY = y - ball.y; var angle = Math.atan2(deltaY, deltaX); aimLine.rotation = angle - Math.PI / 2; var distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY); aimLine.height = Math.min(distance * 0.5, 200); } }; game.up = function (x, y, obj) { if (isAiming && !ball.isMoving) { shotCount++; ball.shoot(x, y); isAiming = false; aimLine.alpha = 0; if (shotCount === 1) { instructionTxt.alpha = 0; } } }; var ballLastY = ball.y; var ballLastInGoal = false; game.update = function () { var currentInGoal = ball.x > goalX && ball.x < goalX + goalWidth && ball.y > goalY && ball.y < goalY + goalHeight; if (!ballLastInGoal && currentInGoal && ball.isMoving) { checkGoal(); } if (ball.y < -100) { LK.showGameOver('Final Score: ' + goalCount); // End the game when the ball goes out of bounds } if (ball.x < 0 || ball.x > 2048) { LK.showGameOver('Final Score: ' + goalCount); // End the game when the ball goes out of bounds } ballLastY = ball.y; ballLastInGoal = currentInGoal; };
===================================================================
--- original.js
+++ change.js
@@ -191,9 +191,9 @@
var deltaY = y - ball.y;
var angle = Math.atan2(deltaY, deltaX);
aimLine.rotation = angle - Math.PI / 2;
var distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
- aimLine.height = Math.min(distance * 0.6, 240);
+ aimLine.height = Math.min(distance * 0.5, 200);
}
};
game.move = function (x, y, obj) {
if (isAiming) {
@@ -201,9 +201,9 @@
var deltaY = y - ball.y;
var angle = Math.atan2(deltaY, deltaX);
aimLine.rotation = angle - Math.PI / 2;
var distance = Math.sqrt(deltaX * deltaX + deltaY * deltaY);
- aimLine.height = Math.min(distance * 0.6, 240);
+ aimLine.height = Math.min(distance * 0.5, 200);
}
};
game.up = function (x, y, obj) {
if (isAiming && !ball.isMoving) {