User prompt
yayınlayamıyorum oyunu yayınlat
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'x')' in or related to this line: 'if (self.lastX <= redMarble.x && self.x > redMarble.x && self.intersects(redMarble)) {' Line Number: 120
User prompt
Please fix the bug: 'ReferenceError: redMarble is not defined' in or related to this line: 'if (self.lastX <= redMarble.x && self.x > redMarble.x && self.intersects(redMarble)) {' Line Number: 120
User prompt
en üste bir redmarble oluştu onu sil
User prompt
üsteki masa kendi kendine hareket edip benim atım redmarble yi geri ata bilicek
User prompt
alta ki masa benim kendi kendine hareket etmesin
User prompt
Please fix the bug: 'TypeError: Cannot read properties of undefined (reading 'x')' in or related to this line: 'if (self.lastX <= redMarble.x && self.x > redMarble.x && self.intersects(redMarble)) {' Line Number: 120
User prompt
Please fix the bug: 'ReferenceError: redMarble is not defined' in or related to this line: 'if (self.lastX <= redMarble.x && self.x > redMarble.x && self.intersects(redMarble)) {' Line Number: 120
User prompt
en üste hareket eden redmarble yi sil lütfen
User prompt
en üste bir redmarble geldi onu sil üsteki masa redmarble atamıycak
User prompt
nenim atım redmarble yi yakalıya bilicek üsteki masa
User prompt
masa sağa sola hareket edicek
User prompt
öasa biraz daha aşaga ve diyer asetler
User prompt
kalp en üst solda durucak onun dışındaki asetleri
User prompt
masa ve diyer asetleri aşaga indir
User prompt
üste masa koy
User prompt
ortala asetleri
User prompt
üsten alta bir sıra sağdan sil soldakini geri getir
User prompt
soldan bir sıra aseti sil
User prompt
soldan bir sıra sil
User prompt
bi aşaga indir asetleri
User prompt
üsteki masa kendi kendine hareket ede bilcek alta ki sadece benim kontrolümle hareket edicek
User prompt
Please fix the bug: 'Cannot read properties of undefined (reading 'height')' in or related to this line: 'asset.y = (2732 - (numRows - 1) * (asset.height + spacingY)) / 2 + row * (asset.height + spacingY) + 200; // Center assets vertically and move down by 200 pixels' Line Number: 207
User prompt
Please fix the bug: 'Cannot set properties of undefined (setting 'y')' in or related to this line: 'topRedMarble.y = 200; // Position red marble below the top masa and keep it at the original position' Line Number: 204
User prompt
Please fix the bug: 'Cannot read properties of undefined (reading 'height')' in or related to this line: 'asset.y = (2732 - (numRows - 1) * (asset.height + spacingY)) / 2 + row * (asset.height + spacingY) + 200; // Center assets vertically and move down by 200 pixels' Line Number: 206
/**** 
* Classes
****/ 
// Class for the different ages
var Age = Container.expand(function (age) {
	var self = Container.call(this);
	self.age = age;
	self.resources = [];
	self.buildings = [];
	self.characters = [];
	self.weapons = [];
	self.score = 0;
	self.addResource = function (resource) {
		self.resources.push(resource);
	};
	self.addBuilding = function (building) {
		self.buildings.push(building);
	};
	self.addCharacter = function (character) {
		self.characters.push(character);
	};
	self.addWeapon = function (weapon) {
		self.weapons.push(weapon);
	};
	self.updateScore = function (points) {
		self.score += points;
		if (self.score >= 5000) {
			self.nextAge();
		}
	};
	self.nextAge = function () {
		// Logic for transitioning to the next age
	};
	self.update = function () {
		// Logic for updating the age
	};
});
// Class for the Balls in the chain
var Ball = Container.expand(function (color) {
	var self = Container.call(this);
	var ballGraphics = self.attachAsset('ball_' + color, {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.color = color;
	self.update = function () {
		// Logic for ball movement along the path
	};
});
// Class for the Ball Chain
var BallChain = Container.expand(function () {
	var self = Container.call(this);
	self.balls = [];
	self.addBall = function (ball) {
		self.balls.push(ball);
		self.addChild(ball);
	};
	self.update = function () {
		// Logic for moving the chain and checking for matches
	};
});
//<Assets used in the game will automatically appear here>
//<Write imports for supported plugins here>
// Class for the Frog character
var Frog = Container.expand(function () {
	var self = Container.call(this);
	var frogGraphics = self.attachAsset('frog', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.shootBall = function (color) {
		var ball = new Ball(color);
		ball.x = self.x;
		ball.y = self.y;
		return ball;
	};
});
var Masa = Container.expand(function () {
	var self = Container.call(this);
	var masaGraphics = self.attachAsset('masa', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speed = 5; // Speed of movement
	self.direction = 1; // 1 for right, -1 for left
	self.update = function () {
		// Move masa left and right automatically
		self.x += self.speed * self.direction;
		if (self.x <= 0 || self.x >= 2048) {
			self.direction *= -1; // Reverse direction when hitting screen edges
		}
		// Check for collision with other assets and bounce off
		for (var i = assets.length - 1; i >= 0; i--) {
			var asset = assets[i];
			if (self.intersects(asset)) {
				self.direction *= -1; // Reverse direction upon collision
				break; // Exit loop after handling collision
			}
		}
		// Update lastX
		self.lastX = self.x;
		// Laser shooting logic
		if (self.enableLaser) {
			// Logic to shoot laser
			// For simplicity, assume laser is a straight line from masa
			var laser = new Graphics();
			laser.lineStyle(5, 0xff0000, 1);
			laser.moveTo(self.x, self.y);
			laser.lineTo(self.x, 0);
			game.addChild(laser);
			// Check for collisions with assets
			for (var i = assets.length - 1; i >= 0; i--) {
				var asset = assets[i];
				if (asset.x >= self.x - 5 && asset.x <= self.x + 5 && asset.y < self.y) {
					asset.destroy();
					assets.splice(i, 1);
				}
			}
			// Remove laser after a short duration
			LK.setTimeout(function () {
				laser.destroy();
			}, 100);
		}
	};
	// Initialize lastX
	self.lastX = self.x;
});
// Class for the RedMarble
var RedMarble = Container.expand(function () {
	var self = Container.call(this);
	var redMarbleGraphics = self.attachAsset('redmarble', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	self.speedX = 5; // Horizontal speed of the red marble
	self.speedY = -10; // Vertical speed of the red marble
	self.update = function () {
		self.y += self.speedY;
		self.x += self.speedX;
		// Check for collision with top wall
		if (self.y <= 0) {
			LK.getSound('x').play();
			self.speedY *= -1; // Reverse Y direction
		}
		// Check for collision with side walls
		if (self.x <= 0 || self.x >= 2048) {
			LK.getSound('x').play();
			self.speedX *= -1; // Reverse X direction
		}
		// Check if red marble is off-screen
		if (self.y < -50) {
			self.destroy();
		}
		// Check for collision with masa while falling
		if (self.lastY <= masa.y && self.y > masa.y && self.intersects(masa)) {
			LK.getSound('x').play();
			self.destroy(); // Destroy the red marble when caught by masa
			redMarbles.splice(redMarbles.indexOf(self), 1);
		}
		self.lastY = self.y;
	};
});
/**** 
* Initialize Game
****/ 
var game = new LK.Game({
	backgroundColor: 0x000000 //Init game with black background 
});
/**** 
* Game Code
****/ 
// Initialize game elements 
var topMasa = new Masa();
topMasa.x = 2048 / 2; // Center the masa horizontally
topMasa.y = 150; // Position masa at the top and keep it at the original position 
var topRedMarble = new RedMarble();
topRedMarble.x = 2048 / 2; // Center the red marble horizontally
topRedMarble.y = 200; // Position red marble below the top masa and keep it at the original position
if (asset) {
	asset.y = (2732 - (numRows - 1) * (asset.height + spacingY)) / 2 + row * (asset.height + spacingY) + 200; // Center assets vertically and move down by 200 pixels
}
game.addChild(topMasa);
game.addChild(topRedMarble);
var fallingAssets = ['masa2', 'ray'];
var fallingObjects = [];
var lives = 3;
var hearts = [];
// Add heart images to the top of the screen
for (var i = 0; i < lives; i++) {
	var heart = LK.getAsset('kalp', {
		anchorX: 0.5,
		anchorY: 0.5
	});
	heart.x = 100 + i * (heart.width + 20); // Position hearts with spacing
	heart.y = 50; // Position hearts at the top
	game.addChild(heart);
	hearts.push(heart);
}
var redMarbles = []; // Array to track active red marbles for AI masa to catch
var assets = [];
// Initialize game elements 
var masa = new Masa();
masa.x = 2048 / 2; // Center the masa horizontally
masa.y = 2732 - 50; // Position masa at the bottom wall
game.addChild(masa);
var currentAge = new Age('Stone Age');
game.addChild(currentAge);
var frog = new Frog();
game.addChild(frog);
// Fill the screen with assets arranged in a grid pattern
var assetIds = ['bilye1', 'bilye10', 'bilye11', 'bilye12', 'bilye14', 'bilye15', 'bilye16', 'bilye3', 'bilye4', 'bilye5', 'bilye6', 'bilye7', 'bilye9', 'biyye8', 'f'];
var startX = 50; // Starting X position
var startY = 150; // Adjusted starting Y position to ensure hearts are visible
var spacingX = 20; // Horizontal spacing between assets
var spacingY = 20; // Vertical spacing between assets
var numRows = Math.floor((2732 - startY) / (100 + spacingY)) + 2; // Calculate number of rows based on screen height and add two more rows
var numCols = Math.floor((2048 - startX) / (100 + spacingX)); // Calculate number of columns based on screen width
for (var row = 1; row < numRows - 5; row++) {
	// Start from the second row to remove the topmost row
	// Adjusted to add one more row at the end
	// Adjusted to remove the bottom 3 rows
	for (var col = 0; col < numCols - 1; col++) {
		var index = (row * numCols + col) % assetIds.length; // Loop through assetIds
		var id = assetIds[index];
		var asset = LK.getAsset(id, {
			anchorX: 0.5,
			anchorY: 0.5
		});
		asset.x = (2048 - (numCols - 1) * (asset.width + spacingX)) / 2 + col * (asset.width + spacingX); // Center assets horizontally
		game.addChild(asset);
		assets.push(asset);
	}
}
// Game update loop
game.update = function () {
	currentAge.update();
	// Additional game logic
	// Update redmarble positions and check for collisions
	for (var i = redMarbles.length - 1; i >= 0; i--) {
		var redMarble = redMarbles[i];
		redMarble.update();
		// Check if redmarble is off-screen
		if (redMarble.y > 2732) {
			redMarble.destroy();
			redMarbles.splice(i, 1);
			// Decrease a heart
			if (lives > 0) {
				lives--;
				var heartToRemove = hearts.shift(); // Remove the top heart
				heartToRemove.destroy();
			}
			// Check if all hearts are lost
			if (lives === 0 || assets.length === 0) {
				// Display scores for each player
				var playerScores = "Player 1: " + currentAge.score + "\nPlayer 2: " + (5000 - currentAge.score);
				var playerScoreText = new Text2(playerScores, {
					size: 100,
					fill: 0xFFFFFF
				});
				playerScoreText.anchor.set(0.5, 0.5);
				LK.gui.center.addChild(playerScoreText);
				// Trigger game over screen
				LK.showGameOver();
				// Display final score
				var finalScore = LK.getScore();
				var scoreText = new Text2('Final Score: ' + finalScore, {
					size: 150,
					fill: 0xFFFFFF
				});
				scoreText.anchor.set(0.5, 0.5);
				LK.gui.center.addChild(scoreText);
				// Reset game state
				lives = 3;
				hearts = [];
				for (var h = 0; h < lives; h++) {
					var newHeart = LK.getAsset('kalp', {
						anchorX: 0.5,
						anchorY: 0.5
					});
					newHeart.x = 100 + h * (newHeart.width + 20);
					newHeart.y = 50;
					game.addChild(newHeart);
					hearts.push(newHeart);
				}
			}
			continue;
		}
		for (var j = assets.length - 1; j >= 0; j--) {
			var asset = assets[j];
			if (redMarble.intersects(asset)) {
				// Removed masa size increase when intersecting with assets
				asset.destroy();
				assets.splice(j, 1);
				// Reverse direction of redmarble on collision
				redMarble.speedY *= -1;
				LK.getSound('x').play();
				redMarble.speedX *= -1;
			}
		}
	}
	// Handle falling assets
	for (var f = fallingObjects.length - 1; f >= 0; f--) {
		var fallingObject = fallingObjects[f];
		fallingObject.y += 5; // Falling speed
		// Check if fallingObject is off-screen
		if (fallingObject.y > 2732) {
			fallingObject.destroy();
			fallingObjects.splice(f, 1);
			continue;
		}
		// Check for collision with redmarble
		if (redMarble && redMarble.intersects(fallingObject)) {
			if (fallingObject.assetId === 'masa2') {
				if (fallingObject.lastY <= masa.y && fallingObject.y > masa.y && fallingObject.intersects(masa)) {
					if (lives < 3) {
						lives++;
						var newHeart = LK.getAsset('kalp', {
							anchorX: 0.5,
							anchorY: 0.5
						});
						newHeart.x = 100 + (lives - 1) * (newHeart.width + 20);
						newHeart.y = 50;
						game.addChild(newHeart);
						hearts.push(newHeart);
					}
					// Increase masa size when masa catches a falling masa2
					masa.scaleX *= 1.1;
					masa.scaleY *= 1.1;
				}
			} else if (fallingObject.assetId === 'lap') {
				// Check for intersection with red marble
				if (fallingObject.lastWasIntersectingRedMarble === false && fallingObject.intersects(redMarble)) {
					fallingObject.speedY = 10; // Increase falling speed
				}
				fallingObject.lastWasIntersectingRedMarble = fallingObject.intersects(redMarble);
				if (fallingObject.lastWasIntersectingMasa === false && fallingObject.intersects(masa)) {
					// Increase masa size only when masa catches a falling lap
					masa.scaleX *= 1.1;
					masa.scaleY *= 1.1;
					fallingObject.destroy(); // Ensure lap is destroyed after being caught
					fallingObjects.splice(f, 1);
				}
				fallingObject.lastWasIntersectingMasa = fallingObject.intersects(masa);
			} else if (fallingObject.assetId === 'ray') {
				if (fallingObject.lastY <= masa.y && fallingObject.y > masa.y && fallingObject.intersects(masa)) {
					// Enable shooting two rays from the sides of the table
					var leftRay = new Graphics();
					leftRay.lineStyle(5, 0xff0000, 1);
					leftRay.moveTo(masa.x - masa.width / 2, masa.y);
					leftRay.lineTo(masa.x - masa.width / 2, 0);
					game.addChild(leftRay);
					var rightRay = new Graphics();
					rightRay.lineStyle(5, 0xff0000, 1);
					rightRay.moveTo(masa.x + masa.width / 2, masa.y);
					rightRay.lineTo(masa.x + masa.width / 2, 0);
					game.addChild(rightRay);
					// Remove rays after a short duration
					LK.setTimeout(function () {
						leftRay.destroy();
						rightRay.destroy();
					}, 1000);
				}
				// Enable laser shooting for 10 seconds
				masa.enableLaser = true;
				LK.setTimeout(function () {
					masa.enableLaser = false;
				}, 10000);
			}
			fallingObject.destroy();
			fallingObjects.splice(f, 1);
		}
	}
	// Randomly add new falling assets
	if (LK.ticks % 180 === 0) {
		// Removed the falling behavior of the 'lap' object
		// Every 3 seconds
		var randomIndex = Math.floor(Math.random() * assets.length);
		if (randomIndex !== undefined && assets[randomIndex]) {
			if (randomIndex !== undefined && assets[randomIndex]) {
				var randomAsset = assets[randomIndex];
				if (randomAsset && randomAsset.assetId) {
					var newFallingObject = LK.getAsset(randomAsset.assetId, {
						anchorX: 0.5,
						anchorY: 0.5
					});
					if (newFallingObject) {
						newFallingObject.x = randomAsset.x;
						newFallingObject.y = randomAsset.y;
						newFallingObject.assetId = randomAsset.assetId;
						game.addChild(newFallingObject);
						fallingObjects.push(newFallingObject);
					}
				}
			}
		}
		if (newFallingObject) {
			newFallingObject.x = randomAsset.x;
			newFallingObject.y = randomAsset.y;
			newFallingObject.assetId = randomAsset.assetId;
			game.addChild(newFallingObject);
			fallingObjects.push(newFallingObject);
		}
	}
	// Check if the bottom row is empty and move assets down
	if (assets.length > 0 && assets[0].y > 2732) {
		for (var k = 0; k < assets.length; k++) {
			assets[k].y += 100 + spacingY;
		}
	}
};
// Event listeners for shooting balls
game.down = function (x, y, obj) {
	masa.x = x; // Move masa to the clicked x position
	// Shoot a redmarble from the masa only if there are no active redmarbles
	if (redMarbles.length === 0) {
		var redMarble = new RedMarble();
		redMarble.x = masa.x;
		redMarble.y = masa.y - masa.height / 2; // Start above the masa
		redMarbles.push(redMarble);
		game.addChild(redMarble);
	}
};
game.move = function (x, y, obj) {
	masa.x = x; // Update masa's x position with mouse movement
}; ===================================================================
--- original.js
+++ change.js
@@ -177,9 +177,11 @@
 topMasa.y = 150; // Position masa at the top and keep it at the original position 
 var topRedMarble = new RedMarble();
 topRedMarble.x = 2048 / 2; // Center the red marble horizontally
 topRedMarble.y = 200; // Position red marble below the top masa and keep it at the original position
-asset.y = (2732 - (numRows - 1) * (asset.height + spacingY)) / 2 + row * (asset.height + spacingY) + 200; // Center assets vertically and move down by 200 pixels
+if (asset) {
+	asset.y = (2732 - (numRows - 1) * (asset.height + spacingY)) / 2 + row * (asset.height + spacingY) + 200; // Center assets vertically and move down by 200 pixels
+}
 game.addChild(topMasa);
 game.addChild(topRedMarble);
 var fallingAssets = ['masa2', 'ray'];
 var fallingObjects = [];
 RENKLİ CAM MİSKET. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 RENKLİ CAM MİSKET. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 COLORED GLASS MARBLE. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 COLORED GLASS MARBLE. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 COLORED GLASS MARBLE. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 COLORED GLASS MARBLE. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 COLORED GLASS MARBLE. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 COLORED GLASS MARBLE. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 red marble. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 long thick horizontal bar. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.
 heart. Single Game Texture. In-Game asset. 2d. Blank background. High contrast. No shadows.