User prompt
Oyunda aynı anda en fazla 2 coin olsun
User prompt
Mesela karakter sola giderken sola baksın sağa giderken sağa baksın
User prompt
Yukarıdan giden kartallar biraz daha yukarıdan gidebilir mi
User prompt
Oyuncu 50 skora ylaşırsa oyunu kazansın
User prompt
Düşmanlar birleikte gelmesin birbirlerinde ayrı gelsinlar
User prompt
Düşmanların hızını birazcık arttır
User prompt
Düşmanlar sonsuza kadar gelmeye devam etsinler bir de hızlarını biraz azalt
User prompt
Düşmanlar da biraz seyrek gelsinler
User prompt
Bazı düşmanlar karakterin zıplama seviyesine yakın yetlerde doğsunlar
User prompt
Düşmaların üstüne değince düşmanlar ölmesin
User prompt
Biraz daha seyrek teleport olsunlar
User prompt
Paralar da sürekli rastgele yerlerde teleport olsun
User prompt
Karakter sola basılı tutulunca sola sağa baslı tutulunca sağa ilerlesin
User prompt
Oyun sürekli ilerlesin bitinca durmasın
User prompt
Bu oyunu düz bir zemin üzerinde yapar mısın
User prompt
İlerleme şeklini zıplama tuşuna basılı tutunca sağa doğru ilerlesin şeklinde yapar mısın
User prompt
It is not working
User prompt
Super Coin Jumper
Initial prompt
Can you make a game like super mario in the game we will collect moneys and we will destroy other creatures
/****
* Classes
****/
// Coin class
var Coin = Container.expand(function () {
var self = Container.call(this);
var coinAsset = self.attachAsset('coin', {
anchorX: 0.5,
anchorY: 0.5
});
self.width = coinAsset.width;
self.height = coinAsset.height;
self.update = function () {
// Optionally animate coin
};
return self;
});
// Enemy class
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyAsset = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 1
});
self.vx = -6;
self.width = enemyAsset.width;
self.height = enemyAsset.height;
self.update = function () {
self.x += self.vx;
if (self.lastX === undefined) self.lastX = self.x;
};
return self;
});
// Platform class
var Platform = Container.expand(function () {
var self = Container.call(this);
var platAsset = self.attachAsset('platform', {
anchorX: 0,
anchorY: 0
});
self.width = platAsset.width;
self.height = platAsset.height;
// Allow dynamic width scaling
self.setWidth = function (newWidth) {
self.width = newWidth;
platAsset.scaleX = newWidth / platAsset.width;
};
return self;
});
// Player class
var Player = Container.expand(function () {
var self = Container.call(this);
var playerAsset = self.attachAsset('player', {
anchorX: 0.5,
anchorY: 1
});
self.vx = 0;
self.vy = 0;
self.isOnGround = false;
self.width = playerAsset.width;
self.height = playerAsset.height;
self.update = function () {
// Gravity
self.vy += 2.5;
// Clamp vy
if (self.vy > 60) self.vy = 60;
self.x += self.vx;
self.y += self.vy;
// Save last position for collision checks
if (self.lastX === undefined) self.lastX = self.x;
if (self.lastY === undefined) self.lastY = self.y;
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87ceeb // sky blue
});
/****
* Game Code
****/
;
// --- Game variables ---
var player;
var platforms = [];
var coins = [];
var enemies = [];
var score = 0;
var scoreTxt;
var dragStartX = null;
var dragStartY = null;
var jumpQueued = false;
// --- Setup game objects ---
function setupLevel() {
// Player
player = new Player();
player.x = 300;
player.y = 2300; // Position player on ground
game.addChild(player);
// Ground platform - single flat ground across entire screen
var ground = new Platform();
ground.x = 0;
ground.y = 2400;
ground.setWidth(2048); // Full screen width
game.addChild(ground);
platforms.push(ground);
// Coins
var coin1 = new Coin();
coin1.x = 750;
coin1.y = 2300;
game.addChild(coin1);
coins.push(coin1);
var coin2 = new Coin();
coin2.x = 1250;
coin2.y = 2200;
game.addChild(coin2);
coins.push(coin2);
var coin3 = new Coin();
coin3.x = 1700;
coin3.y = 2300;
game.addChild(coin3);
coins.push(coin3);
// Enemies
var enemy1 = new Enemy();
enemy1.x = 1000;
enemy1.y = 2400;
game.addChild(enemy1);
enemies.push(enemy1);
var enemy2 = new Enemy();
enemy2.x = 1800;
enemy2.y = 2400;
game.addChild(enemy2);
enemies.push(enemy2);
// Score text
scoreTxt = new Text2('0', {
size: 120,
fill: 0xFFF700
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
scoreTxt.setText(score);
}
setupLevel();
// --- Controls (hold to move right and jump) ---
var isHolding = false;
game.down = function (x, y, obj) {
isHolding = true;
jumpQueued = true; // Jump when starting to hold
};
game.move = function (x, y, obj) {
// No need to handle move for this control scheme
};
game.up = function (x, y, obj) {
isHolding = false;
player.vx = 0; // Stop moving when releasing
};
// --- Main game loop ---
game.update = function () {
// Set player velocity based on holding state
if (isHolding) {
player.vx = 12; // Move right when holding
} else {
player.vx = 0; // Stop when not holding
}
// Player update
player.update();
// Clamp player to screen
if (player.x < 0) player.x = 0;
if (player.x > 2048) player.x = 2048;
// Platform collision
player.isOnGround = false;
for (var i = 0; i < platforms.length; i++) {
var plat = platforms[i];
// Simple AABB collision, only check if falling
if (player.vy >= 0 && player.x + player.width / 2 > plat.x && player.x - player.width / 2 < plat.x + plat.width && player.y > plat.y && player.lastY <= plat.y) {
// Land on platform
player.y = plat.y;
player.vy = 0;
player.isOnGround = true;
}
}
// Jump
if (jumpQueued && player.isOnGround) {
player.vy = -48;
jumpQueued = false;
}
// Coin collection
for (var i = coins.length - 1; i >= 0; i--) {
var coin = coins[i];
if (player.intersects(coin)) {
score += 1;
scoreTxt.setText(score);
coin.destroy();
coins.splice(i, 1);
// Respawn coin at random position ahead
var newCoin = new Coin();
newCoin.x = player.x + 800 + Math.random() * 400; // Spawn ahead of player
newCoin.y = 2300 - Math.random() * 200; // Random height
game.addChild(newCoin);
coins.push(newCoin);
}
}
// Enemy update and collision
for (var i = enemies.length - 1; i >= 0; i--) {
var enemy = enemies[i];
enemy.update();
// Remove if off screen and respawn
if (enemy.x < -200) {
enemy.destroy();
enemies.splice(i, 1);
// Respawn enemy at right side of screen
var newEnemy = new Enemy();
newEnemy.x = 2200; // Start slightly off right edge
newEnemy.y = 2400;
game.addChild(newEnemy);
enemies.push(newEnemy);
continue;
}
// Player/enemy collision
var wasIntersecting = enemy.lastWasIntersecting || false;
var isIntersecting = player.intersects(enemy);
if (!wasIntersecting && isIntersecting) {
// Check if player is falling onto enemy
if (player.vy > 0 && player.y < enemy.y) {
// Defeat enemy
enemy.destroy();
enemies.splice(i, 1);
player.vy = -32; // bounce
score += 5;
scoreTxt.setText(score);
} else {
// Player hit from side or below: game over
LK.effects.flashScreen(0xff0000, 1000);
LK.showGameOver();
return;
}
}
enemy.lastWasIntersecting = isIntersecting;
}
// Save lastY for player
player.lastY = player.y;
player.lastX = player.x;
}; ===================================================================
--- original.js
+++ change.js
@@ -195,18 +195,30 @@
score += 1;
scoreTxt.setText(score);
coin.destroy();
coins.splice(i, 1);
+ // Respawn coin at random position ahead
+ var newCoin = new Coin();
+ newCoin.x = player.x + 800 + Math.random() * 400; // Spawn ahead of player
+ newCoin.y = 2300 - Math.random() * 200; // Random height
+ game.addChild(newCoin);
+ coins.push(newCoin);
}
}
// Enemy update and collision
for (var i = enemies.length - 1; i >= 0; i--) {
var enemy = enemies[i];
enemy.update();
- // Remove if off screen
+ // Remove if off screen and respawn
if (enemy.x < -200) {
enemy.destroy();
enemies.splice(i, 1);
+ // Respawn enemy at right side of screen
+ var newEnemy = new Enemy();
+ newEnemy.x = 2200; // Start slightly off right edge
+ newEnemy.y = 2400;
+ game.addChild(newEnemy);
+ enemies.push(newEnemy);
continue;
}
// Player/enemy collision
var wasIntersecting = enemy.lastWasIntersecting || false;