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 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
@@ -1,6 +1,226 @@
-/****
+/****
+* 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: 0x000000
-});
\ No newline at end of file
+ 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
+ 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();
\ No newline at end of file