User prompt
karakterler hareket etmiyor onu çöz
User prompt
ve onu maç toplamakca turnuvada bot daha zorlaşsın
User prompt
turnuva bitince yani 10/10 yapınca oyun bitsin
User prompt
herturnuvada bir maç kazanınca ortada KAZANDIN SONRAKİ TUR yazsın
User prompt
top kösede sıkışınca top ortaya ışınlansın
User prompt
2 takımdan rasgele takımı seçtikten sonra maç 10/1 yazsın sadece 10 maç yapsın her kazandında 1 artsın va eyer kaybederse ortaya kaybettin yazım normal maç atsın
User prompt
turnuvaya basınca takımını seç diye bir şey olsun altındada ultra macor ve magic team olsun ikisinden birine basınca dahakod yazılmadı diyip normal maç yapsın
User prompt
oyunabaşlama kısmına turnuva tuşunuekre ama basınca daha kod yazılmadı yazsın
User prompt
Please fix the bug: 'Cannot set properties of undefined (setting 'visible')' in or related to this line: 'turboText.visible = false;' Line Number: 192
User prompt
Please fix the bug: 'Cannot set properties of undefined (setting 'visible')' in or related to this line: 'score1Text.visible = false;' Line Number: 165
User prompt
Please fix the bug: 'Cannot set properties of undefined (setting 'visible')' in or related to this line: 'score1Text.visible = false;' Line Number: 165
User prompt
oyuna başlamadan önce oyna yazsın oynaya basınca normal maç yapsın
User prompt
oyunda gol sınırı olmasın sadece 2 dakka süre olsun süre bitince kazanan açıklansın
User prompt
oyunda turbo seceneği olsun sadece 5saniyelik turbonun dolmasıda 7 saniye sürsün turbo olmadığızamanaraba normal hızda gitsin ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
kırmızıyla mvinin yerini değiştir ve kırmızı bot yani bizi yenmeye çalışan kişi olsun maviyi biz oynayalı
Code edit (1 edits merged)
Please save this source code
User prompt
Rocket Ball Arena
Initial prompt
oyun nun amacı iki tanearaba karşılıklı bir şekildeortada top var o topla birbirinegolatmaya çalışıcaklar yani bildiğin rocket leauge gibiolcak
/****
* 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.x = 1024;
self.y = 1366;
self.velocityX = 0;
self.velocityY = 0;
self.maxSpeed = 12;
self.friction = 0.98;
self.bounce = 0.8;
self.update = function () {
self.x += self.velocityX;
self.y += self.velocityY;
self.velocityX *= self.friction;
self.velocityY *= self.friction;
if (self.x < arenaLeft + 40) {
self.x = arenaLeft + 40;
self.velocityX = Math.abs(self.velocityX) * self.bounce;
}
if (self.x > arenaRight - 40) {
self.x = arenaRight - 40;
self.velocityX = -Math.abs(self.velocityX) * self.bounce;
}
if (self.y < arenaTop + 40) {
self.y = arenaTop + 40;
self.velocityY = Math.abs(self.velocityY) * self.bounce;
}
if (self.y > arenaBottom - 40) {
self.y = arenaBottom - 40;
self.velocityY = -Math.abs(self.velocityY) * self.bounce;
}
ballGraphics.rotation += self.velocityX * 0.01;
};
return self;
});
var Car = Container.expand(function (colorId, startX, startY) {
var self = Container.call(this);
var carGraphics = self.attachAsset(colorId, {
anchorX: 0.5,
anchorY: 0.5
});
self.x = startX;
self.y = startY;
self.velocityX = 0;
self.velocityY = 0;
self.maxSpeed = 8;
self.acceleration = 0.3;
self.friction = 0.92;
self.isDragging = false;
self.targetX = startX;
self.targetY = startY;
self.update = function () {
if (self.isDragging) {
var dx = self.targetX - self.x;
var dy = self.targetY - self.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance > 5) {
self.velocityX += dx * self.acceleration * 0.1;
self.velocityY += dy * self.acceleration * 0.1;
var angle = Math.atan2(dy, dx);
carGraphics.rotation = angle;
}
}
// Apply turbo speed boost for car2 (player)
var currentMaxSpeed = self.maxSpeed;
if (self === car2 && turboActive) {
currentMaxSpeed = self.maxSpeed * 2.5; // 2.5x speed boost during turbo
}
var speed = Math.sqrt(self.velocityX * self.velocityX + self.velocityY * self.velocityY);
if (speed > currentMaxSpeed) {
self.velocityX = self.velocityX / speed * currentMaxSpeed;
self.velocityY = self.velocityY / speed * currentMaxSpeed;
}
self.x += self.velocityX;
self.y += self.velocityY;
self.velocityX *= self.friction;
self.velocityY *= self.friction;
if (self.x < arenaLeft + 60) {
self.x = arenaLeft + 60;
self.velocityX = Math.abs(self.velocityX) * 0.5;
}
if (self.x > arenaRight - 60) {
self.x = arenaRight - 60;
self.velocityX = -Math.abs(self.velocityX) * 0.5;
}
if (self.y < arenaTop + 30) {
self.y = arenaTop + 30;
self.velocityY = Math.abs(self.velocityY) * 0.5;
}
if (self.y > arenaBottom - 30) {
self.y = arenaBottom - 30;
self.velocityY = -Math.abs(self.velocityY) * 0.5;
}
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x27ae60
});
/****
* Game Code
****/
var arenaWidth = 1800;
var arenaHeight = 1200;
var arenaLeft = (2048 - arenaWidth) / 2;
var arenaRight = arenaLeft + arenaWidth;
var arenaTop = (2732 - arenaHeight) / 2;
var arenaBottom = arenaTop + arenaHeight;
var arena = game.attachAsset('arena', {
anchorX: 0.5,
anchorY: 0.5,
x: 1024,
y: 1366
});
var goal1 = game.attachAsset('goal1', {
anchorX: 0.5,
anchorY: 0.5,
x: arenaLeft,
y: 1366
});
var goal2 = game.attachAsset('goal2', {
anchorX: 0.5,
anchorY: 0.5,
x: arenaRight,
y: 1366
});
var car1 = game.addChild(new Car('car1', arenaLeft + 200, 1366));
var car2 = game.addChild(new Car('car2', arenaRight - 200, 1366));
var ball = game.addChild(new Ball());
var score1 = 0;
var score2 = 0;
var gameTime = 120000;
var gameStartTime = Date.now();
var score1Text = new Text2('Bot: 0', {
size: 60,
fill: 0x3498DB
});
score1Text.anchor.set(0, 0);
LK.gui.topLeft.addChild(score1Text);
score1Text.x = 120;
var score2Text = new Text2('Player: 0', {
size: 60,
fill: 0xE74C3C
});
score2Text.anchor.set(1, 0);
LK.gui.topRight.addChild(score2Text);
var timeText = new Text2('2:00', {
size: 80,
fill: 0xFFFFFF
});
timeText.anchor.set(0.5, 0);
LK.gui.top.addChild(timeText);
var dragCar = null;
var lastBallGoalCheck = false;
// Turbo system variables
var turboActive = false;
var turboRemaining = 0; // in milliseconds
var turboRecharging = false;
var turboRechargeRemaining = 0; // in milliseconds
var turboDuration = 5000; // 5 seconds
var turboRechargeDuration = 7000; // 7 seconds
// Turbo UI
var turboText = new Text2('TURBO READY', {
size: 50,
fill: 0x00FF00
});
turboText.anchor.set(0.5, 0);
turboText.y = 100;
LK.gui.top.addChild(turboText);
function handleMove(x, y, obj) {
if (dragCar) {
dragCar.targetX = x;
dragCar.targetY = y;
dragCar.isDragging = true;
}
}
function resetBall() {
ball.x = 1024;
ball.y = 1366;
ball.velocityX = 0;
ball.velocityY = 0;
}
function checkGoal() {
var ballInGoal1 = ball.x < arenaLeft + 60 && ball.y > 1366 - 150 && ball.y < 1366 + 150;
var ballInGoal2 = ball.x > arenaRight - 60 && ball.y > 1366 - 150 && ball.y < 1366 + 150;
if (ballInGoal1 && !lastBallGoalCheck) {
score2++;
score2Text.setText('Player: ' + score2);
LK.getSound('goal').play();
LK.effects.flashScreen(0xe74c3c, 500);
resetBall();
if (score2 >= 3) {
LK.showYouWin();
}
}
if (ballInGoal2 && !lastBallGoalCheck) {
score1++;
score1Text.setText('Bot: ' + score1);
LK.getSound('goal').play();
LK.effects.flashScreen(0x3498db, 500);
resetBall();
if (score1 >= 3) {
LK.showGameOver();
}
}
lastBallGoalCheck = ballInGoal1 || ballInGoal2;
}
function checkCollisions() {
if (car1.intersects(ball)) {
var dx = ball.x - car1.x;
var dy = ball.y - car1.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance > 0) {
var force = 0.5;
var carSpeed = Math.sqrt(car1.velocityX * car1.velocityX + car1.velocityY * car1.velocityY);
force += carSpeed * 0.1;
ball.velocityX += dx / distance * force;
ball.velocityY += dy / distance * force;
var separation = 100;
ball.x = car1.x + dx / distance * separation;
ball.y = car1.y + dy / distance * separation;
LK.getSound('hit').play();
}
}
if (car2.intersects(ball)) {
var dx = ball.x - car2.x;
var dy = ball.y - car2.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance > 0) {
var force = 0.5;
var carSpeed = Math.sqrt(car2.velocityX * car2.velocityX + car2.velocityY * car2.velocityY);
force += carSpeed * 0.1;
ball.velocityX += dx / distance * force;
ball.velocityY += dy / distance * force;
var separation = 100;
ball.x = car2.x + dx / distance * separation;
ball.y = car2.y + dy / distance * separation;
LK.getSound('hit').play();
}
}
}
game.move = handleMove;
game.down = function (x, y, obj) {
var car1Distance = Math.sqrt((x - car1.x) * (x - car1.x) + (y - car1.y) * (y - car1.y));
var car2Distance = Math.sqrt((x - car2.x) * (x - car2.x) + (y - car2.y) * (y - car2.y));
// Check for turbo activation (tap anywhere when not recharging)
if (!turboActive && !turboRecharging) {
turboActive = true;
turboRemaining = turboDuration;
// Visual feedback for turbo activation
tween(car2, {
tint: 0xFFFF00
}, {
duration: 200
});
tween(car2, {
tint: 0xFFFFFF
}, {
duration: 200
});
}
if (car2Distance < car1Distance && car2Distance < 150) {
dragCar = car2;
} else if (car1Distance < 150) {
dragCar = car1;
}
if (dragCar) {
handleMove(x, y, obj);
}
};
game.up = function (x, y, obj) {
if (dragCar) {
dragCar.isDragging = false;
}
dragCar = null;
};
game.update = function () {
var currentTime = Date.now();
var elapsedTime = currentTime - gameStartTime;
var remainingTime = gameTime - elapsedTime;
if (remainingTime <= 0) {
if (score1 > score2) {
LK.showGameOver();
} else if (score2 > score1) {
LK.showYouWin();
} else {
LK.showGameOver();
}
return;
}
var minutes = Math.floor(remainingTime / 60000);
var seconds = Math.floor(remainingTime % 60000 / 1000);
timeText.setText(minutes + ':' + (seconds < 10 ? '0' : '') + seconds);
// Simple AI for car1 (blue car - bot)
var dx = ball.x - car1.x;
var dy = ball.y - car1.y;
var distance = Math.sqrt(dx * dx + dy * dy);
if (distance > 100) {
car1.targetX = ball.x;
car1.targetY = ball.y;
car1.isDragging = true;
} else {
car1.isDragging = false;
}
// Turbo system update
if (turboActive) {
turboRemaining -= 16; // Approximate frame time at 60fps
if (turboRemaining <= 0) {
turboActive = false;
turboRecharging = true;
turboRechargeRemaining = turboRechargeDuration;
car2.tint = 0xFFFFFF; // Reset car color
}
}
if (turboRecharging) {
turboRechargeRemaining -= 16;
if (turboRechargeRemaining <= 0) {
turboRecharging = false;
}
}
// Update turbo UI
if (turboActive) {
var turboSeconds = Math.ceil(turboRemaining / 1000);
turboText.setText('TURBO: ' + turboSeconds + 's');
turboText.fill = 0xFFFF00; // Yellow during active
} else if (turboRecharging) {
var rechargeSeconds = Math.ceil(turboRechargeRemaining / 1000);
turboText.setText('RECHARGING: ' + rechargeSeconds + 's');
turboText.fill = 0xFF0000; // Red during recharge
} else {
turboText.setText('TURBO READY - TAP TO ACTIVATE');
turboText.fill = 0x00FF00; // Green when ready
}
checkCollisions();
checkGoal();
}; ===================================================================
--- original.js
+++ change.js
@@ -71,12 +71,17 @@
var angle = Math.atan2(dy, dx);
carGraphics.rotation = angle;
}
}
+ // Apply turbo speed boost for car2 (player)
+ var currentMaxSpeed = self.maxSpeed;
+ if (self === car2 && turboActive) {
+ currentMaxSpeed = self.maxSpeed * 2.5; // 2.5x speed boost during turbo
+ }
var speed = Math.sqrt(self.velocityX * self.velocityX + self.velocityY * self.velocityY);
- if (speed > self.maxSpeed) {
- self.velocityX = self.velocityX / speed * self.maxSpeed;
- self.velocityY = self.velocityY / speed * self.maxSpeed;
+ if (speed > currentMaxSpeed) {
+ self.velocityX = self.velocityX / speed * currentMaxSpeed;
+ self.velocityY = self.velocityY / speed * currentMaxSpeed;
}
self.x += self.velocityX;
self.y += self.velocityY;
self.velocityX *= self.friction;
@@ -162,8 +167,23 @@
timeText.anchor.set(0.5, 0);
LK.gui.top.addChild(timeText);
var dragCar = null;
var lastBallGoalCheck = false;
+// Turbo system variables
+var turboActive = false;
+var turboRemaining = 0; // in milliseconds
+var turboRecharging = false;
+var turboRechargeRemaining = 0; // in milliseconds
+var turboDuration = 5000; // 5 seconds
+var turboRechargeDuration = 7000; // 7 seconds
+// Turbo UI
+var turboText = new Text2('TURBO READY', {
+ size: 50,
+ fill: 0x00FF00
+});
+turboText.anchor.set(0.5, 0);
+turboText.y = 100;
+LK.gui.top.addChild(turboText);
function handleMove(x, y, obj) {
if (dragCar) {
dragCar.targetX = x;
dragCar.targetY = y;
@@ -238,8 +258,24 @@
game.move = handleMove;
game.down = function (x, y, obj) {
var car1Distance = Math.sqrt((x - car1.x) * (x - car1.x) + (y - car1.y) * (y - car1.y));
var car2Distance = Math.sqrt((x - car2.x) * (x - car2.x) + (y - car2.y) * (y - car2.y));
+ // Check for turbo activation (tap anywhere when not recharging)
+ if (!turboActive && !turboRecharging) {
+ turboActive = true;
+ turboRemaining = turboDuration;
+ // Visual feedback for turbo activation
+ tween(car2, {
+ tint: 0xFFFF00
+ }, {
+ duration: 200
+ });
+ tween(car2, {
+ tint: 0xFFFFFF
+ }, {
+ duration: 200
+ });
+ }
if (car2Distance < car1Distance && car2Distance < 150) {
dragCar = car2;
} else if (car1Distance < 150) {
dragCar = car1;
@@ -281,7 +317,36 @@
car1.isDragging = true;
} else {
car1.isDragging = false;
}
+ // Turbo system update
+ if (turboActive) {
+ turboRemaining -= 16; // Approximate frame time at 60fps
+ if (turboRemaining <= 0) {
+ turboActive = false;
+ turboRecharging = true;
+ turboRechargeRemaining = turboRechargeDuration;
+ car2.tint = 0xFFFFFF; // Reset car color
+ }
+ }
+ if (turboRecharging) {
+ turboRechargeRemaining -= 16;
+ if (turboRechargeRemaining <= 0) {
+ turboRecharging = false;
+ }
+ }
+ // Update turbo UI
+ if (turboActive) {
+ var turboSeconds = Math.ceil(turboRemaining / 1000);
+ turboText.setText('TURBO: ' + turboSeconds + 's');
+ turboText.fill = 0xFFFF00; // Yellow during active
+ } else if (turboRecharging) {
+ var rechargeSeconds = Math.ceil(turboRechargeRemaining / 1000);
+ turboText.setText('RECHARGING: ' + rechargeSeconds + 's');
+ turboText.fill = 0xFF0000; // Red during recharge
+ } else {
+ turboText.setText('TURBO READY - TAP TO ACTIVATE');
+ turboText.fill = 0x00FF00; // Green when ready
+ }
checkCollisions();
checkGoal();
};
\ No newline at end of file