Code edit (1 edits merged)
Please save this source code
User prompt
переместить картинку SWIPE в нижнюю часть экрана по середине
User prompt
добавить картинку SWIPE в середине экрана перед началом игры, как мяч будет брошен, картинка SWIPE пропадает
Code edit (3 edits merged)
Please save this source code
User prompt
корзина появляется в рандомном месте на расстоянии y= От 500 до 1500, Х = от 300 до 2000
Code edit (7 edits merged)
Please save this source code
User prompt
суммировать количество забитых голов и выводить в goalsScored
User prompt
при каждом game over выводить в левом верхнем углу количество забитых голов
User prompt
каждый гол засчитывается после трех отскоков
User prompt
исправить ошибку, когда после первого гола, последующие голы засчитываются без отскоков, а должно быть каждый гол после трех отскоков
User prompt
после того как таймер заканчивается, выводить количество забитых голов в середине экрана
User prompt
когда забивается мяч, в левом середине экрана появляется цифра 1 и исчезает через 1 секунду, после последующих забитых голов, количество очков увеличивается на 1
Code edit (1 edits merged)
Please save this source code
User prompt
в начале матча, корзина появляется в рандомном месте в верхней части экрана
User prompt
после забитого гола, корзина появляется в рандомном месте на верхней части экрана
Code edit (1 edits merged)
Please save this source code
User prompt
вести счетчик количества забитых голов и при GAME OVER, выдать в середине экрана количество набранных баллов черным цветом
Code edit (1 edits merged)
Please save this source code
User prompt
когда прописывается game over, в середине экрана выводить количество забитых голов
User prompt
после 20 отскоков, мяч возвращается в начальное положение
User prompt
всего может быть 20 отскоков
User prompt
Add a condition to check if the ball has bounced 3 times before it can score
User prompt
пересечение объектов мячик и корзина в радиусе изображения, а не объекта
User prompt
Add a condition to check if the ball has bounced 1 times before it can score
User prompt
попадание засчитывается, если было 3 отскока, иначе мяч пролетает насквозь
/**** * Classes ****/ // Assets will be automatically created based on usage in the code. // Ball class var Ball = Container.expand(function () { var self = Container.call(this); var ballGraphics = self.attachAsset('ball', { anchorX: 0.5, anchorY: 0.5 }); self.speedX = 0; self.speedY = 0; self.isMoving = false; self.launch = function (speedX, speedY) { self.speedX = speedX; self.speedY = speedY; self.isMoving = true; }; self.bounceCount = 0; // Initialize bounce counter self.update = function () { if (self.isMoving) { self.x += self.speedX; self.y += self.speedY; self.speedY += 0.98; // Gravity effect // Change the direction of the ball's rotation based on its direction if (self.speedX > 0) { ballGraphics.rotation += 0.1; } else if (self.speedX < 0) { ballGraphics.rotation -= 0.1; } if (self.bounceCount >= 15) { // Stop the ball after 15 bounces self.speedX = 0; self.speedY = 0; self.isMoving = false; // Reset the ball to its initial position after 0.5 seconds LK.setTimeout(function () { self.reset(); self.bounceCount = 0; // Reset the bounce counter }, 500); } } }; self.reset = function () { self.x = 400; // Center horizontally self.y = 1800; // Start position near bottom self.speedX = 0; self.speedY = 0; self.isMoving = false; }; }); // Basket class var Basket = Container.expand(function () { var self = Container.call(this); var basketGraphics = self.attachAsset('basket', { anchorX: 0.5, anchorY: 0.5 }); }); // Player class var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('Player', { anchorX: 0.5, anchorY: 0.5 }); }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x87CEEB // Light blue background }); /**** * Game Code ****/ var background = game.addChild(LK.getAsset('Background', { anchorX: 0.5, anchorY: 0.5, x: 2048 / 2, y: 2732 / 2 })); var player = game.addChild(new Player()); player.x = player.width / 2; // Position on the left side of the screen player.y = 2732 - player.height / 2; // Position at the bottom of the screen var ball = game.addChild(new Ball()); ball.x = 400; ball.y = 1800; var baskets = []; var basket = game.addChild(new Basket()); basket.x = 2048 - basket.width / 2; // Position on the right side of the screen basket.y = 2732 / 2; // Center vertically baskets.push(basket); var lastTouchPosition = { x: 0, y: 0 }; // Initialize countdown timer text var countdownTimerTxt = new Text2('20', { size: 150, fill: "#000000" }); countdownTimerTxt.anchor.set(0.5, 0); LK.gui.topRight.addChild(countdownTimerTxt); countdownTimerTxt.x -= 80; var countdownTimer = 20; var countdownInterval = null; game.on('down', function (obj) { var pos = obj.event.getLocalPosition(game); lastTouchPosition.x = pos.x; lastTouchPosition.y = pos.y; // Start countdown timer after game starts if (!countdownInterval) { countdownInterval = LK.setInterval(function () { countdownTimer--; countdownTimerTxt.setText(countdownTimer); if (countdownTimer <= 0) { LK.clearInterval(countdownInterval); LK.showGameOver(); // Reset countdown timer when game is over countdownTimer = 20; countdownTimerTxt.setText(countdownTimer); LK.clearInterval(countdownInterval); countdownInterval = null; } }, 1000); } }); game.on('up', function (obj) { if (!ball.isMoving) { var pos = obj.event.getLocalPosition(game); var speedX = (pos.x - lastTouchPosition.x) / 10; var speedY = (pos.y - lastTouchPosition.y) / 10; ball.launch(speedX, speedY); } }); var ballStoppedTimer = null; LK.on('tick', function () { ball.update(); // Check for collisions with baskets baskets.forEach(function (basket) { if (ball.intersects(basket) && ball.bounceCount >= 1) { LK.effects.flashScreen(0x00FF00, 500); // Flash green for success ball.reset(); // Reset the countdown timer countdownTimer = 20; countdownTimerTxt.setText(countdownTimer); } }); // Bounce off the walls and ceiling if (ball.x < 100) { ball.x = 100; // Move the ball out of the wall ball.speedX *= -0.8; // Decrease speed by 10% after bouncing ball.speedX *= 0.75; // Decrease the next bounce by 20% ball.bounceCount++; // Increment bounce counter } if (ball.x > 2000) { ball.x = 2000; // Move the ball out of the wall ball.speedX *= -0.8; // Decrease speed by 10% after bouncing ball.speedX *= 0.75; // Decrease the next bounce by 20% ball.bounceCount++; // Increment bounce counter } if (ball.y < 100) { ball.y = 100; // Move the ball out of the ceiling ball.speedY *= -0.8; // Decrease speed by 10% after bouncing ball.speedY *= 0.75; // Decrease the next bounce by 20% ball.bounceCount++; // Increment bounce counter } if (ball.y > 2632) { ball.y = 2632; // Move the ball out of the floor ball.speedY *= -0.8; // Decrease speed by 10% after bouncing ball.speedY *= 0.75; // Decrease the next bounce by 20% ball.bounceCount++; // Increment bounce counter } // Check if the ball has stopped moving and if it has been launched if (ball.speedX === 0 && ball.speedY === 0 && ball.isMoving) { // Start a timer if it's not already started if (!ballStoppedTimer) { ballStoppedTimer = LK.setTimeout(function () { // Reset the ball to its initial position if it has been stopped for 1 second ball.reset(); }, 1000); } } else { // Clear the timer if the ball starts moving again if (ballStoppedTimer) { LK.clearTimeout(ballStoppedTimer); ballStoppedTimer = null; } } });
===================================================================
--- original.js
+++ change.js
@@ -141,9 +141,9 @@
LK.on('tick', function () {
ball.update();
// Check for collisions with baskets
baskets.forEach(function (basket) {
- if (ball.intersects(basket) && ball.bounceCount >= 3) {
+ if (ball.intersects(basket) && ball.bounceCount >= 1) {
LK.effects.flashScreen(0x00FF00, 500); // Flash green for success
ball.reset();
// Reset the countdown timer
countdownTimer = 20;
Basket. 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.
граффити слово Swipe. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
Граффити с текстом "after three bounces of the ball, a goal is scored". Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.