User prompt
oyuna 20 bölüm ekleyip hepsini birbirinden zor yap
User prompt
Please fix the bug: 'TypeError: setTimeout is not a function' in or related to this line: 'setTimeout(function () {' Line Number: 225
Code edit (1 edits merged)
Please save this source code
User prompt
Frog Road Cross
Initial prompt
kurbağayı karşıdan karşıya geçir me oyunu yapar mısın
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Frog = Container.expand(function () {
var self = Container.call(this);
var frogGraphics = self.attachAsset('frog', {
anchorX: 0.5,
anchorY: 0.5
});
self.gridSize = 120;
self.isMoving = false;
self.targetX = 0;
self.targetY = 0;
self.moveTo = function (newX, newY) {
if (self.isMoving) return;
// Constrain movement to game boundaries
newX = Math.max(40, Math.min(2008, newX));
newY = Math.max(60, Math.min(2672, newY));
self.targetX = newX;
self.targetY = newY;
self.isMoving = true;
LK.getSound('move').play();
tween(self, {
x: self.targetX,
y: self.targetY
}, {
duration: 150,
easing: tween.easeOut,
onFinish: function onFinish() {
self.isMoving = false;
}
});
};
return self;
});
var Vehicle = Container.expand(function (type, speed) {
var self = Container.call(this);
var vehicleGraphics = self.attachAsset(type, {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = speed || 3;
self.type = type;
self.update = function () {
self.x += self.speed;
// Reset position when off screen
if (self.speed > 0 && self.x > 2200) {
self.x = -200;
} else if (self.speed < 0 && self.x < -200) {
self.x = 2200;
}
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x228B22
});
/****
* Game Code
****/
var GRID_SIZE = 120;
var NUM_LANES = 8;
var LANE_HEIGHT = 120;
// Game state
var frog = null;
var vehicles = [];
var roads = [];
var safeZones = [];
var gameStarted = false;
var currentLevel = 1;
// Create score display
var scoreTxt = new Text2('Score: 0', {
size: 60,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Create level display
var levelTxt = new Text2('Level: 1', {
size: 50,
fill: 0xFFFFFF
});
levelTxt.anchor.set(1, 0);
levelTxt.y = 80;
LK.gui.topRight.addChild(levelTxt);
// Initialize game elements
function initializeGame() {
// Clear existing elements
vehicles = [];
roads = [];
safeZones = [];
// Create safe zones and roads
for (var i = 0; i < NUM_LANES + 2; i++) {
var yPos = i * LANE_HEIGHT + 60;
if (i === 0 || i === NUM_LANES + 1) {
// Safe zones at top and bottom
var safeZone = game.addChild(LK.getAsset('safeZone', {
x: 1024,
y: yPos,
anchorX: 0.5,
anchorY: 0.5
}));
safeZones.push(safeZone);
} else {
// Road lanes
var road = game.addChild(LK.getAsset('road', {
x: 1024,
y: yPos,
anchorX: 0.5,
anchorY: 0.5
}));
roads.push(road);
}
}
// Create vehicles for each road lane
for (var i = 0; i < NUM_LANES; i++) {
var laneY = (i + 1) * LANE_HEIGHT + 60;
var vehicleCount = 2 + Math.floor(currentLevel / 3);
var direction = i % 2 === 0 ? 1 : -1;
var baseSpeed = (2 + currentLevel * 0.5) * direction;
for (var j = 0; j < vehicleCount; j++) {
var vehicleType = Math.random() < 0.7 ? 'car' : 'truck';
var vehicle = new Vehicle(vehicleType, baseSpeed + Math.random() * 2 - 1);
vehicle.x = j * (2048 / vehicleCount) + Math.random() * 200;
vehicle.y = laneY;
vehicles.push(vehicle);
game.addChild(vehicle);
}
}
// Create frog
frog = new Frog();
frog.x = 1024;
frog.y = (NUM_LANES + 1) * LANE_HEIGHT + 60; // Start at bottom safe zone
game.addChild(frog);
gameStarted = true;
}
// Handle input
game.down = function (x, y, obj) {
if (!gameStarted || frog.isMoving) return;
var frogGridX = Math.round(frog.x / GRID_SIZE);
var frogGridY = Math.round(frog.y / LANE_HEIGHT);
var touchGridX = Math.round(x / GRID_SIZE);
var touchGridY = Math.round(y / LANE_HEIGHT);
var deltaX = touchGridX - frogGridX;
var deltaY = touchGridY - frogGridY;
// Determine movement direction
var newX = frog.x;
var newY = frog.y;
if (Math.abs(deltaX) > Math.abs(deltaY)) {
// Horizontal movement
if (deltaX > 0) {
newX = frog.x + GRID_SIZE;
} else {
newX = frog.x - GRID_SIZE;
}
} else {
// Vertical movement
if (deltaY < 0) {
newY = frog.y - LANE_HEIGHT;
} else {
newY = frog.y + LANE_HEIGHT;
}
}
frog.moveTo(newX, newY);
};
// Check collisions and game state
function checkCollisions() {
if (!frog || frog.isMoving) return;
// Check vehicle collisions
for (var i = 0; i < vehicles.length; i++) {
var vehicle = vehicles[i];
if (frog.intersects(vehicle)) {
// Game over
LK.getSound('crash').play();
LK.effects.flashScreen(0xFF0000, 1000);
LK.showGameOver();
return;
}
}
// Check if frog reached top safe zone
if (frog.y <= 180) {
// Success!
LK.setScore(LK.getScore() + 100 * currentLevel);
scoreTxt.setText('Score: ' + LK.getScore());
LK.getSound('success').play();
// Level up every 5 successful crossings
if (LK.getScore() % 500 === 0) {
currentLevel++;
levelTxt.setText('Level: ' + currentLevel);
}
// Reset frog position
frog.x = 1024;
frog.y = (NUM_LANES + 1) * LANE_HEIGHT + 60;
// Flash green for success
LK.effects.flashObject(frog, 0x00FF00, 500);
// Reinitialize with increased difficulty
LK.setTimeout(function () {
// Clear old vehicles
for (var i = 0; i < vehicles.length; i++) {
vehicles[i].destroy();
}
initializeGame();
}, 500);
}
}
// Main game loop
game.update = function () {
if (!gameStarted) return;
// Update vehicles
for (var i = 0; i < vehicles.length; i++) {
vehicles[i].update();
}
checkCollisions();
};
// Initialize the game
initializeGame(); ===================================================================
--- original.js
+++ change.js
@@ -203,9 +203,9 @@
frog.y = (NUM_LANES + 1) * LANE_HEIGHT + 60;
// Flash green for success
LK.effects.flashObject(frog, 0x00FF00, 500);
// Reinitialize with increased difficulty
- setTimeout(function () {
+ LK.setTimeout(function () {
// Clear old vehicles
for (var i = 0; i < vehicles.length; i++) {
vehicles[i].destroy();
}