User prompt
3 kere basket kaçırırsak oyun sona ersin
User prompt
Basketbol topunu tutan bir karakterimiz olsun oyunda
User prompt
Oyun levelli olsun her level oyun sahada zorlaşsın ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
Basket potası daha hızlı bir şekilde haraket etsin sağa ve sola
User prompt
Basket potası aşşağıda top yukarıda olsun
User prompt
Basket botası ballın yerinde baloda basket potasının olduğu yere geçsin
User prompt
Topu hoppun üstüne vurduğumuzda sayı olsun
User prompt
Ball basket potasına tıkladığımızda rompotadan içeri girsin ve ball daha yavaş gitsin
User prompt
Top bir tıkdaha yavaş gitsin
User prompt
To tıkladığımız yere gitsin uzağada olur
Code edit (1 edits merged)
Please save this source code
User prompt
Moving Hoop Basketball
Initial prompt
Basketbol oyunu olsun bir potamız olsun o pota sürekli sağa ve sola gidip basket atmamamızı sağlasın karakteri şu şekilde yönetelim tıkladığımız yere topu atsın
/**** * 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.gravity = 0.8; self.isMoving = false; self.hasScored = false; self["throw"] = function (targetX, targetY) { if (self.isMoving) return; self.isMoving = true; self.hasScored = false; // Calculate trajectory to reach target position var deltaX = targetX - self.x; var deltaY = targetY - self.y; // Calculate time to reach target (assuming parabolic trajectory) var timeToTarget = Math.sqrt(Math.abs(deltaY) / self.gravity) * 2; if (timeToTarget < 1.2) timeToTarget = 1.2; // Minimum time for smooth trajectory (increased for slower ball) if (timeToTarget > 4) timeToTarget = 4; // Maximum time to prevent too slow throws // Calculate velocities needed to reach target self.velocityX = deltaX / timeToTarget; self.velocityY = deltaY / timeToTarget - self.gravity * timeToTarget / 2; LK.getSound('swoosh').play(); }; self.reset = function () { self.x = 1024; self.y = 2400; self.velocityX = 0; self.velocityY = 0; self.isMoving = false; self.hasScored = false; }; self.update = function () { if (!self.isMoving) return; // Apply physics self.x += self.velocityX; self.y += self.velocityY; self.velocityY += self.gravity; // Check if ball goes off screen if (self.y > 2732 + 100 || self.x < -100 || self.x > 2148) { missedShots++; self.reset(); } // Check collision with hoop if (!self.hasScored && self.velocityY > 0) { var hoopLeft = hoop.x - 90; var hoopRight = hoop.x + 90; var hoopTop = hoop.y - 20; var hoopBottom = hoop.y + 20; if (self.x > hoopLeft && self.x < hoopRight && self.y > hoopTop && self.y < hoopBottom) { // Score! LK.setScore(LK.getScore() + 1); scoreTxt.setText(LK.getScore()); self.hasScored = true; LK.getSound('score').play(); // Flash effect LK.effects.flashObject(hoop, 0x00ff00, 500); // Check win condition if (LK.getScore() >= 20) { LK.showYouWin(); } } } }; return self; }); var Hoop = Container.expand(function () { var self = Container.call(this); // Create backboard var backboard = self.attachAsset('backboard', { anchorX: 0.5, anchorY: 0.5, x: 110, y: -40 }); // Create hoop var hoopGraphics = self.attachAsset('hoop', { anchorX: 0.5, anchorY: 0.5 }); // Create net var net = self.attachAsset('net', { anchorX: 0.5, anchorY: 0, y: 20, alpha: 0.3 }); self.direction = 1; self.speed = 3; self.update = function () { self.x += self.speed * self.direction; // Bounce off screen edges if (self.x <= 200) { self.direction = 1; LK.getSound('bounce').play(); } else if (self.x >= 1848) { self.direction = -1; LK.getSound('bounce').play(); } // Increase speed based on score var targetSpeed = 3 + Math.floor(LK.getScore() / 5); if (self.speed < targetSpeed) { self.speed = targetSpeed; } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x87CEEB }); /**** * Game Code ****/ // Game variables var missedShots = 0; var maxMisses = 5; // Create score display var scoreTxt = new Text2('0', { size: 120, fill: 0xFFFFFF }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Create missed shots display var missedTxt = new Text2('Misses: 0/5', { size: 80, fill: 0xFFFFFF }); missedTxt.anchor.set(0, 0); missedTxt.x = 50; missedTxt.y = 50; LK.gui.topLeft.addChild(missedTxt); // Create instructions var instructionTxt = new Text2('Tap to throw ball at moving hoop!', { size: 60, fill: 0xFFFFFF }); instructionTxt.anchor.set(0.5, 1); LK.gui.bottom.addChild(instructionTxt); // Create game objects var hoop = game.addChild(new Hoop()); hoop.x = 1024; hoop.y = 400; var ball = game.addChild(new Ball()); ball.reset(); // Touch controls game.down = function (x, y, obj) { if (!ball.isMoving) { ball["throw"](x, y); } }; // Main game loop game.update = function () { // Update missed shots display missedTxt.setText('Misses: ' + missedShots + '/' + maxMisses); // Check game over condition if (missedShots >= maxMisses) { LK.showGameOver(); } // Update score display scoreTxt.setText(LK.getScore()); };
===================================================================
--- original.js
+++ change.js
@@ -25,10 +25,10 @@
var deltaX = targetX - self.x;
var deltaY = targetY - self.y;
// Calculate time to reach target (assuming parabolic trajectory)
var timeToTarget = Math.sqrt(Math.abs(deltaY) / self.gravity) * 2;
- if (timeToTarget < 0.5) timeToTarget = 0.5; // Minimum time for smooth trajectory
- if (timeToTarget > 3) timeToTarget = 3; // Maximum time to prevent too slow throws
+ if (timeToTarget < 1.2) timeToTarget = 1.2; // Minimum time for smooth trajectory (increased for slower ball)
+ if (timeToTarget > 4) timeToTarget = 4; // Maximum time to prevent too slow throws
// Calculate velocities needed to reach target
self.velocityX = deltaX / timeToTarget;
self.velocityY = deltaY / timeToTarget - self.gravity * timeToTarget / 2;
LK.getSound('swoosh').play();