User prompt
arka plandaki binalar zemin ve sokaklambalarına yakın olsun çok yukarıda olmasın eline sağlık çok güzel oldu
User prompt
sokak lambaları sabit kalsın karakterle beraber ilerlemesin her bir 25 metre olsun sokak lambaları arasında
User prompt
oyunun arka plan gece evler ve sokak lambaları havada karanlık olsun
User prompt
düşmanlar sağ sola hareketi olsun sabit kalmasın ↪💡 Consider importing and using the following plugins: @upit/tween.v1
Code edit (1 edits merged)
Please save this source code
User prompt
karakter ipe değdiği zaman ileriye doğru atlasın ve zemin sonradan oluşmasın ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
karakter hızı biraz artırılsın ve engeller aynı olmasın herhangi bir zeminin içerisinde çıkan engellerden olsun arka plan şah şahlı olsun farklı bir engel daha olsun bu engele karakter değdiğinde karaktere otomatik ip bağlansın ortada bir sallansın sallandıktan sonra harita değişikliği olsun ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
yerdeki zemin sonradan oluşmasın sonsuza kadar var olsun karakter ölünce silinebilir
Code edit (1 edits merged)
Please save this source code
User prompt
Jump Runner
Initial prompt
bir oyun yapmak istiyorum bir karakterim var bu karakterim soldan başlayarak sağ doğru sabit bir hızla ilerliyor önüne engeller çıkıyor o engeller den zıplayarak kaçıyor ve engellerin dışında birde düşmanlar var bu düşmanlar sadece zıplarken başından vurulunca ölüyor
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var Enemy = Container.expand(function () { var self = Container.call(this); var enemyGraphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 1.0 }); self.speed = gameSpeed; self.isDefeated = false; self.horizontalSpeed = 3; self.horizontalDirection = 1; self.movementRange = 150; self.startX = 0; self.defeat = function () { if (!self.isDefeated) { self.isDefeated = true; LK.getSound('defeat').play(); LK.setScore(LK.getScore() + 10); scoreTxt.setText(LK.getScore()); tween(self, { alpha: 0, scaleY: 0.3 }, { duration: 300 }); } }; self.update = function () { self.x -= self.speed; // Add horizontal movement if (self.startX === 0) { self.startX = self.x; } self.y += self.horizontalSpeed * self.horizontalDirection; if (self.y > self.startX + self.movementRange || self.y < self.startX - self.movementRange) { self.horizontalDirection *= -1; } }; return self; }); var Ground = Container.expand(function () { var self = Container.call(this); var groundGraphics = self.attachAsset('ground', { anchorX: 0, anchorY: 0 }); self.speed = gameSpeed; self.update = function () { self.x -= self.speed; if (self.x <= -self.width) { self.x += self.width * 2; } }; return self; }); var Obstacle = Container.expand(function () { var self = Container.call(this); var obstacleGraphics = self.attachAsset('obstacle', { anchorX: 0.5, anchorY: 1.0 }); self.speed = gameSpeed; self.update = function () { self.x -= self.speed; }; return self; }); var Player = Container.expand(function () { var self = Container.call(this); var playerGraphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 1.0 }); self.velocityY = 0; self.isOnGround = false; self.jumpPower = -25; self.gravity = 1.2; self.groundY = 2500; self.jump = function () { if (self.isOnGround) { self.velocityY = self.jumpPower; self.isOnGround = false; LK.getSound('jump').play(); } }; self.update = function () { // Normal gravity physics self.velocityY += self.gravity; self.y += self.velocityY; if (self.y >= self.groundY) { self.y = self.groundY; self.velocityY = 0; self.isOnGround = true; } }; return self; }); var RopeObstacle = Container.expand(function () { var self = Container.call(this); var ropeGraphics = self.attachAsset('ropeObstacle', { anchorX: 0.5, anchorY: 0 }); self.speed = gameSpeed; self.isAttached = false; self.update = function () { self.x -= self.speed; }; return self; }); var StreetLamp = Container.expand(function () { var self = Container.call(this); var lampPost = self.attachAsset('streetLamp', { anchorX: 0.5, anchorY: 1 }); var lampGlow = self.attachAsset('lampLight', { anchorX: 0.5, anchorY: 0.5 }); lampGlow.y = -130; // Street lamps don't move - they stay fixed in position return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x0f0f23 }); /**** * Game Code ****/ var gameSpeed = 20; var spawnTimer = 0; var speedIncreaseTimer = 0; var obstacles = []; var enemies = []; var groundPieces = []; var ropeObstacles = []; var backgroundTiles = []; var streetLamps = []; var mapChanged = false; // Create night cityscape background for (var col = 0; col < 15; col++) { // Create buildings of varying heights var buildingTypes = ['building1', 'building2', 'building3']; var buildingType = buildingTypes[Math.floor(Math.random() * buildingTypes.length)]; var building = game.addChild(LK.getAsset(buildingType, { anchorX: 0, anchorY: 1 })); building.x = col * 200; building.y = 2000; // Position buildings above ground backgroundTiles.push(building); // Add some windows (small yellow rectangles) to buildings for (var window = 0; window < 6; window++) { if (Math.random() > 0.7) { // 30% chance for lit windows var windowLight = game.addChild(LK.getAsset('lampLight', { anchorX: 0.5, anchorY: 0.5 })); windowLight.x = building.x + 50 + window % 3 * 50; windowLight.y = building.y - 100 - Math.floor(window / 3) * 80; windowLight.width = 15; windowLight.height = 15; backgroundTiles.push(windowLight); } } } // Create stationary street lamps every 500 pixels (25 meters) for (var lampPos = 0; lampPos < 5000; lampPos += 500) { var streetLamp = game.addChild(new StreetLamp()); streetLamp.x = lampPos; streetLamp.y = 2500; streetLamps.push(streetLamp); } // Create player var player = game.addChild(new Player()); player.x = 300; player.y = 2500; // Create permanent ground - more pieces for infinite coverage for (var i = 0; i < 15; i++) { var groundPiece = game.addChild(new Ground()); groundPiece.x = i * 300; groundPiece.y = 2520; groundPieces.push(groundPiece); } // Create score display var scoreTxt = new Text2('0', { size: 80, fill: 0xFFFFFF }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); scoreTxt.y = 100; // Jump control game.down = function (x, y, obj) { player.jump(); }; function spawnObstacle() { var obstacle = new Obstacle(); obstacle.x = 2200; obstacle.y = 2500; obstacle.speed = gameSpeed; obstacles.push(obstacle); game.addChild(obstacle); } function spawnEnemy() { var enemy = new Enemy(); enemy.x = 2200; enemy.y = 2500; enemy.speed = gameSpeed; enemies.push(enemy); game.addChild(enemy); } function spawnRopeObstacle() { var rope = new RopeObstacle(); rope.x = 2200; rope.y = 2200; rope.speed = gameSpeed; ropeObstacles.push(rope); game.addChild(rope); } function checkCollisions() { // Check obstacle collisions for (var i = obstacles.length - 1; i >= 0; i--) { var obstacle = obstacles[i]; if (player.intersects(obstacle)) { LK.getSound('hit').play(); player.destroy(); LK.showGameOver(); return; } } // Check rope obstacle collisions for (var k = ropeObstacles.length - 1; k >= 0; k--) { var rope = ropeObstacles[k]; if (player.intersects(rope)) { // Make player jump forward player.velocityY = -20; player.isOnGround = false; // Add forward momentum using tween tween(player, { x: player.x + 400 }, { duration: 800, easing: tween.easeOut, onFinish: function onFinish() { // After jumping forward, change map if (!mapChanged) { mapChanged = true; // Change background to different pattern for (var t = 0; t < backgroundTiles.length; t++) { var tile = backgroundTiles[t]; var newColor = Math.random() > 0.5 ? 0xFF6B6B : 0x4ECDC4; tween(tile, { tint: newColor }, { duration: 500 }); } } } }); // Remove the rope obstacle after collision rope.destroy(); ropeObstacles.splice(k, 1); } } // Check enemy collisions for (var j = enemies.length - 1; j >= 0; j--) { var enemy = enemies[j]; if (player.intersects(enemy) && !enemy.isDefeated) { if (player.velocityY > 0 && player.y < enemy.y - 30) { // Player is falling and above enemy - defeat enemy enemy.defeat(); player.velocityY = -15; // Small bounce } else { // Player hit enemy from side or below - game over LK.getSound('hit').play(); player.destroy(); LK.showGameOver(); return; } } } } function updateGameSpeed() { gameSpeed += 0.003; // Update speed for all moving objects for (var i = 0; i < obstacles.length; i++) { obstacles[i].speed = gameSpeed; } for (var j = 0; j < enemies.length; j++) { enemies[j].speed = gameSpeed; } for (var m = 0; m < ropeObstacles.length; m++) { ropeObstacles[m].speed = gameSpeed; } // Ground pieces maintain constant speed for infinite scrolling for (var k = 0; k < groundPieces.length; k++) { groundPieces[k].speed = gameSpeed; } } function cleanupObjects() { // Remove off-screen obstacles for (var i = obstacles.length - 1; i >= 0; i--) { if (obstacles[i].x < -100) { obstacles[i].destroy(); obstacles.splice(i, 1); } } // Remove off-screen enemies for (var j = enemies.length - 1; j >= 0; j--) { if (enemies[j].x < -100) { enemies[j].destroy(); enemies.splice(j, 1); } } // Remove off-screen rope obstacles for (var k = ropeObstacles.length - 1; k >= 0; k--) { if (ropeObstacles[k].x < -100) { ropeObstacles[k].destroy(); ropeObstacles.splice(k, 1); } } } game.update = function () { // Spawn objects spawnTimer++; if (spawnTimer >= 90) { var rand = Math.random(); if (rand < 0.4) { spawnObstacle(); } else if (rand < 0.7) { spawnEnemy(); } else { spawnRopeObstacle(); } spawnTimer = 0; } // Increase game speed over time speedIncreaseTimer++; if (speedIncreaseTimer >= 300) { updateGameSpeed(); speedIncreaseTimer = 0; } // Update score based on survival time if (LK.ticks % 30 === 0) { LK.setScore(LK.getScore() + 1); scoreTxt.setText(LK.getScore()); } // Check collisions checkCollisions(); // Clean up off-screen objects cleanupObjects(); };
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Enemy = Container.expand(function () {
var self = Container.call(this);
var enemyGraphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 1.0
});
self.speed = gameSpeed;
self.isDefeated = false;
self.horizontalSpeed = 3;
self.horizontalDirection = 1;
self.movementRange = 150;
self.startX = 0;
self.defeat = function () {
if (!self.isDefeated) {
self.isDefeated = true;
LK.getSound('defeat').play();
LK.setScore(LK.getScore() + 10);
scoreTxt.setText(LK.getScore());
tween(self, {
alpha: 0,
scaleY: 0.3
}, {
duration: 300
});
}
};
self.update = function () {
self.x -= self.speed;
// Add horizontal movement
if (self.startX === 0) {
self.startX = self.x;
}
self.y += self.horizontalSpeed * self.horizontalDirection;
if (self.y > self.startX + self.movementRange || self.y < self.startX - self.movementRange) {
self.horizontalDirection *= -1;
}
};
return self;
});
var Ground = Container.expand(function () {
var self = Container.call(this);
var groundGraphics = self.attachAsset('ground', {
anchorX: 0,
anchorY: 0
});
self.speed = gameSpeed;
self.update = function () {
self.x -= self.speed;
if (self.x <= -self.width) {
self.x += self.width * 2;
}
};
return self;
});
var Obstacle = Container.expand(function () {
var self = Container.call(this);
var obstacleGraphics = self.attachAsset('obstacle', {
anchorX: 0.5,
anchorY: 1.0
});
self.speed = gameSpeed;
self.update = function () {
self.x -= self.speed;
};
return self;
});
var Player = Container.expand(function () {
var self = Container.call(this);
var playerGraphics = self.attachAsset('player', {
anchorX: 0.5,
anchorY: 1.0
});
self.velocityY = 0;
self.isOnGround = false;
self.jumpPower = -25;
self.gravity = 1.2;
self.groundY = 2500;
self.jump = function () {
if (self.isOnGround) {
self.velocityY = self.jumpPower;
self.isOnGround = false;
LK.getSound('jump').play();
}
};
self.update = function () {
// Normal gravity physics
self.velocityY += self.gravity;
self.y += self.velocityY;
if (self.y >= self.groundY) {
self.y = self.groundY;
self.velocityY = 0;
self.isOnGround = true;
}
};
return self;
});
var RopeObstacle = Container.expand(function () {
var self = Container.call(this);
var ropeGraphics = self.attachAsset('ropeObstacle', {
anchorX: 0.5,
anchorY: 0
});
self.speed = gameSpeed;
self.isAttached = false;
self.update = function () {
self.x -= self.speed;
};
return self;
});
var StreetLamp = Container.expand(function () {
var self = Container.call(this);
var lampPost = self.attachAsset('streetLamp', {
anchorX: 0.5,
anchorY: 1
});
var lampGlow = self.attachAsset('lampLight', {
anchorX: 0.5,
anchorY: 0.5
});
lampGlow.y = -130;
// Street lamps don't move - they stay fixed in position
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x0f0f23
});
/****
* Game Code
****/
var gameSpeed = 20;
var spawnTimer = 0;
var speedIncreaseTimer = 0;
var obstacles = [];
var enemies = [];
var groundPieces = [];
var ropeObstacles = [];
var backgroundTiles = [];
var streetLamps = [];
var mapChanged = false;
// Create night cityscape background
for (var col = 0; col < 15; col++) {
// Create buildings of varying heights
var buildingTypes = ['building1', 'building2', 'building3'];
var buildingType = buildingTypes[Math.floor(Math.random() * buildingTypes.length)];
var building = game.addChild(LK.getAsset(buildingType, {
anchorX: 0,
anchorY: 1
}));
building.x = col * 200;
building.y = 2000; // Position buildings above ground
backgroundTiles.push(building);
// Add some windows (small yellow rectangles) to buildings
for (var window = 0; window < 6; window++) {
if (Math.random() > 0.7) {
// 30% chance for lit windows
var windowLight = game.addChild(LK.getAsset('lampLight', {
anchorX: 0.5,
anchorY: 0.5
}));
windowLight.x = building.x + 50 + window % 3 * 50;
windowLight.y = building.y - 100 - Math.floor(window / 3) * 80;
windowLight.width = 15;
windowLight.height = 15;
backgroundTiles.push(windowLight);
}
}
}
// Create stationary street lamps every 500 pixels (25 meters)
for (var lampPos = 0; lampPos < 5000; lampPos += 500) {
var streetLamp = game.addChild(new StreetLamp());
streetLamp.x = lampPos;
streetLamp.y = 2500;
streetLamps.push(streetLamp);
}
// Create player
var player = game.addChild(new Player());
player.x = 300;
player.y = 2500;
// Create permanent ground - more pieces for infinite coverage
for (var i = 0; i < 15; i++) {
var groundPiece = game.addChild(new Ground());
groundPiece.x = i * 300;
groundPiece.y = 2520;
groundPieces.push(groundPiece);
}
// Create score display
var scoreTxt = new Text2('0', {
size: 80,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
scoreTxt.y = 100;
// Jump control
game.down = function (x, y, obj) {
player.jump();
};
function spawnObstacle() {
var obstacle = new Obstacle();
obstacle.x = 2200;
obstacle.y = 2500;
obstacle.speed = gameSpeed;
obstacles.push(obstacle);
game.addChild(obstacle);
}
function spawnEnemy() {
var enemy = new Enemy();
enemy.x = 2200;
enemy.y = 2500;
enemy.speed = gameSpeed;
enemies.push(enemy);
game.addChild(enemy);
}
function spawnRopeObstacle() {
var rope = new RopeObstacle();
rope.x = 2200;
rope.y = 2200;
rope.speed = gameSpeed;
ropeObstacles.push(rope);
game.addChild(rope);
}
function checkCollisions() {
// Check obstacle collisions
for (var i = obstacles.length - 1; i >= 0; i--) {
var obstacle = obstacles[i];
if (player.intersects(obstacle)) {
LK.getSound('hit').play();
player.destroy();
LK.showGameOver();
return;
}
}
// Check rope obstacle collisions
for (var k = ropeObstacles.length - 1; k >= 0; k--) {
var rope = ropeObstacles[k];
if (player.intersects(rope)) {
// Make player jump forward
player.velocityY = -20;
player.isOnGround = false;
// Add forward momentum using tween
tween(player, {
x: player.x + 400
}, {
duration: 800,
easing: tween.easeOut,
onFinish: function onFinish() {
// After jumping forward, change map
if (!mapChanged) {
mapChanged = true;
// Change background to different pattern
for (var t = 0; t < backgroundTiles.length; t++) {
var tile = backgroundTiles[t];
var newColor = Math.random() > 0.5 ? 0xFF6B6B : 0x4ECDC4;
tween(tile, {
tint: newColor
}, {
duration: 500
});
}
}
}
});
// Remove the rope obstacle after collision
rope.destroy();
ropeObstacles.splice(k, 1);
}
}
// Check enemy collisions
for (var j = enemies.length - 1; j >= 0; j--) {
var enemy = enemies[j];
if (player.intersects(enemy) && !enemy.isDefeated) {
if (player.velocityY > 0 && player.y < enemy.y - 30) {
// Player is falling and above enemy - defeat enemy
enemy.defeat();
player.velocityY = -15; // Small bounce
} else {
// Player hit enemy from side or below - game over
LK.getSound('hit').play();
player.destroy();
LK.showGameOver();
return;
}
}
}
}
function updateGameSpeed() {
gameSpeed += 0.003;
// Update speed for all moving objects
for (var i = 0; i < obstacles.length; i++) {
obstacles[i].speed = gameSpeed;
}
for (var j = 0; j < enemies.length; j++) {
enemies[j].speed = gameSpeed;
}
for (var m = 0; m < ropeObstacles.length; m++) {
ropeObstacles[m].speed = gameSpeed;
}
// Ground pieces maintain constant speed for infinite scrolling
for (var k = 0; k < groundPieces.length; k++) {
groundPieces[k].speed = gameSpeed;
}
}
function cleanupObjects() {
// Remove off-screen obstacles
for (var i = obstacles.length - 1; i >= 0; i--) {
if (obstacles[i].x < -100) {
obstacles[i].destroy();
obstacles.splice(i, 1);
}
}
// Remove off-screen enemies
for (var j = enemies.length - 1; j >= 0; j--) {
if (enemies[j].x < -100) {
enemies[j].destroy();
enemies.splice(j, 1);
}
}
// Remove off-screen rope obstacles
for (var k = ropeObstacles.length - 1; k >= 0; k--) {
if (ropeObstacles[k].x < -100) {
ropeObstacles[k].destroy();
ropeObstacles.splice(k, 1);
}
}
}
game.update = function () {
// Spawn objects
spawnTimer++;
if (spawnTimer >= 90) {
var rand = Math.random();
if (rand < 0.4) {
spawnObstacle();
} else if (rand < 0.7) {
spawnEnemy();
} else {
spawnRopeObstacle();
}
spawnTimer = 0;
}
// Increase game speed over time
speedIncreaseTimer++;
if (speedIncreaseTimer >= 300) {
updateGameSpeed();
speedIncreaseTimer = 0;
}
// Update score based on survival time
if (LK.ticks % 30 === 0) {
LK.setScore(LK.getScore() + 1);
scoreTxt.setText(LK.getScore());
}
// Check collisions
checkCollisions();
// Clean up off-screen objects
cleanupObjects();
};
yuvarlak ve başında siyah bandanası var . No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
bir tahta etrafında bıçakları olan bir tahta . No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
evler olsun ve sokak lambaları olsun ve hava karanlık olsun . No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
güzel bir sokak direği . No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat
zemin beton zemini olsun ve yanındaki sarı çizgiler düz olsun
kafasında kırmızı bir bandana olan bir sporcu . No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat