User prompt
prize ın puan vermesini azalt
User prompt
Please fix the bug: 'Timeout.tick error: undefined is not an object (evaluating 'prizes[k].destroy')' in or related to this line: 'prizes[k].destroy();' Line Number: 216
User prompt
prize ekle
User prompt
enemy hitboxun sağ tarafını biraz büyüt
User prompt
düşman ve oyuncu hitboxlarını biraz düşür
User prompt
enemy ve playerın hitboxlarını büyüt
Code edit (4 edits merged)
Please save this source code
User prompt
oyuncunun zıplamasını arttır
User prompt
player jump decrased
Code edit (1 edits merged)
Please save this source code
User prompt
enemy ve playerın hitboxlarını biraz küçültebilir misin
Code edit (8 edits merged)
Please save this source code
User prompt
skorun ekranda düşmanı geçtikçe artmasını istiyorum
Code edit (1 edits merged)
Please save this source code
Code edit (2 edits merged)
Please save this source code
User prompt
game over olduğunda music baştan başlamalı
User prompt
her oyun bittiğinde müzik tekrar başlamalıo
User prompt
Music sesini koduma ekler misin
User prompt
player oyuna biraz daha soldan başlasın
Code edit (1 edits merged)
Please save this source code
User prompt
enemy hep ortadan gelsin
User prompt
geri al knk
User prompt
düşmanı ve oyuncuyu backgroundda ortala
User prompt
çizgiyi kaldır
User prompt
Please fix the bug: 'undefined is not an object (evaluating 'line.y = playerGraphics.height / 2')' in or related to this line: 'line.y = playerGraphics.height / 2;' Line Number: 41
/****
* Classes
****/
// Enemy class
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 0.83,
scaleY: 0.83
});
self.speed = 8;
self.passed = false;
self.update = function () {
self.x -= self.speed;
if (self.x < -50) {
self.destroy();
}
};
self.getHitbox = function () {
return {
x: self.x - 75,
y: self.y - 150,
width: 200,
// Increase the width of the hitbox
height: 300
};
};
});
// Player class
var Player = Container.expand(function () {
var self = Container.call(this);
var playerGraphics = self.attachAsset('player', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 0.95,
scaleY: 0.95
});
self.speed = 1000;
self.jumpHeight = 30;
self.isJumping = false;
self.velocityY = 0;
self.update = function () {
if (self.isJumping) {
self.y += self.velocityY;
self.velocityY += 0.7;
if (self.y >= 2732 / 2) {
self.y = 2732 / 2;
self.isJumping = false;
self.velocityY = 0;
}
}
};
self.jump = function () {
if (!self.isJumping) {
self.isJumping = true;
self.velocityY = -self.jumpHeight;
}
};
self.getHitbox = function () {
return {
x: self.x - 75,
y: self.y - 150,
width: 150,
height: 300
};
};
});
// Prize class
var Prize = Container.expand(function () {
var self = Container.call(this);
var prizeGraphics = self.attachAsset('prize', {
anchorX: 0.5,
anchorY: 0.5,
scaleX: 1,
scaleY: 1
});
self.speed = 7;
self.collected = false;
self.update = function () {
self.x -= self.speed;
if (self.x < -50) {
self.destroy();
}
};
self.getHitbox = function () {
return {
x: self.x - 40,
y: self.y - 50,
width: 80,
height: 100
};
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x000000
});
/****
* Game Code
****/
// Background
var background = game.addChild(LK.getAsset('background', {
anchorX: 0.5,
anchorY: 0.5,
x: 2048 / 2,
y: 2732 / 2
}));
// Player
var player = game.addChild(new Player());
player.x = 2048 / 2 - 100;
player.y = 2732 / 2;
// Enemy array
var enemies = [];
var enemySpawnInterval = 100;
var enemySpawnCounter = 0;
// Prize array
var prizes = [];
var prizeSpawnInterval = 200;
var prizeSpawnCounter = 0;
// Score Text
var scoreText = new Text2('0', {
size: 100,
fill: 0xFFFFFF
});
LK.gui.top.addChild(scoreText);
scoreText.x = 2048 / 2;
scoreText.y = 0;
// Collision function
function checkCollision(rect1, rect2) {
return rect1.x < rect2.x + rect2.width && rect1.x + rect1.width > rect2.x && rect1.y < rect2.y + rect2.height && rect1.y + rect1.height > rect2.y;
}
// Spawn Enemy
function spawnEnemy() {
var enemy = new Enemy();
enemy.x = 2048;
enemy.y = 2732 / 2;
enemy.passed = false;
enemies.push(enemy);
game.addChild(enemy);
}
// Spawn Prize
function spawnPrize() {
var prize = new Prize();
prize.x = 2048;
prize.y = 2732 / 2 - 200 + Math.random() * 400; // Random height around the middle
prize.collected = false;
prizes.push(prize);
game.addChild(prize);
}
// Game loop
game.update = function () {
player.update();
// Enemy spawn
enemySpawnCounter++;
if (enemySpawnCounter >= enemySpawnInterval) {
spawnEnemy();
enemySpawnInterval = Math.floor(Math.random() * 100) + 50;
enemySpawnCounter = 0;
}
// Prize spawn
prizeSpawnCounter++;
if (prizeSpawnCounter >= prizeSpawnInterval) {
spawnPrize();
prizeSpawnInterval = Math.floor(Math.random() * 200) + 150;
prizeSpawnCounter = 0;
}
// Update enemies
for (var j = enemies.length - 1; j >= 0; j--) {
enemies[j].update();
// Collision detection
if (checkCollision(player.getHitbox(), enemies[j].getHitbox())) {
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
LK.stopMusic();
LK.playMusic('Music');
}
// Score increment
else if (enemies[j].x < player.x && !enemies[j].passed) {
enemies[j].passed = true;
LK.setScore(LK.getScore() + 1);
scoreText.setText(LK.getScore());
}
// Remove offscreen enemy
if (enemies[j].x < -50) {
enemies[j].destroy();
enemies.splice(j, 1);
}
}
// Update prizes
for (var k = prizes.length - 1; k >= 0; k--) {
prizes[k].update();
// Prize collection
if (!prizes[k].collected && checkCollision(player.getHitbox(), prizes[k].getHitbox())) {
prizes[k].collected = true;
LK.setScore(LK.getScore() + 5); // Prize worth 5 points
scoreText.setText(LK.getScore());
LK.effects.flashObject(prizes[k], 0xFFD700, 300); // Gold flash when collected
// Remove collected prize
(function (prizeIndex) {
LK.setTimeout(function () {
if (prizes[prizeIndex] && !prizes[prizeIndex].destroyed) {
prizes[prizeIndex].destroy();
prizes.splice(prizeIndex, 1);
}
}, 300);
})(k);
}
// Remove offscreen prizes
else if (prizes[k].x < -50 && !prizes[k].collected) {
prizes[k].destroy();
prizes.splice(k, 1);
}
}
// Speed increase
if (LK.ticks % 300 == 0) {
for (var i = 0; i < enemies.length; i++) {
enemies[i].speed += 1;
}
for (var i = 0; i < prizes.length; i++) {
prizes[i].speed += 0.5; // Prizes speed up more slowly than enemies
}
}
};
// Tap to jump
game.down = function (x, y, obj) {
player.jump();
};
// Music
LK.playMusic('Music'); ===================================================================
--- original.js
+++ change.js
@@ -202,12 +202,16 @@
LK.setScore(LK.getScore() + 5); // Prize worth 5 points
scoreText.setText(LK.getScore());
LK.effects.flashObject(prizes[k], 0xFFD700, 300); // Gold flash when collected
// Remove collected prize
- LK.setTimeout(function () {
- prizes[k].destroy();
- prizes.splice(k, 1);
- }, 300);
+ (function (prizeIndex) {
+ LK.setTimeout(function () {
+ if (prizes[prizeIndex] && !prizes[prizeIndex].destroyed) {
+ prizes[prizeIndex].destroy();
+ prizes.splice(prizeIndex, 1);
+ }
+ }, 300);
+ })(k);
}
// Remove offscreen prizes
else if (prizes[k].x < -50 && !prizes[k].collected) {
prizes[k].destroy();