User prompt
kontorolleri öncekine geri alalım
User prompt
sadece sürükleme kontrolüne geçelim
User prompt
magaza butonuna tiklandiginda oyun dursun butun ekrani kaplamayan ortada acilan bir serit pencere olsun
User prompt
magaza butonunu sol alt koseye kenardan 1x1 cm uzakliga alalim ve buton tiklanabilir olsun
User prompt
mermi rengini mavi yapalim, magaza da kirmizi, turuncu, mavi, sari, mor renkler olsun bu renkler satin alinabilir olsun 10 saniyede bir on hizi 2 kat arttsin
User prompt
oyuna magaza ozelligi para getirelim para sari renk olsun magaza da dis gorunusler olsun kademeli satin alimlar gibi cok abartili fiyatlar olmasin ↪💡 Consider importing and using the following plugins: @upit/storage.v1
User prompt
hareket etmediginde oyun durma ozelligini kaldiralim
User prompt
10 saniye de bir oyun seviyesi arttsin yani daha dusmanlar daha hizli hareket etsin
Code edit (1 edits merged)
Please save this source code
User prompt
Motion Control Game
User prompt
oyunda karakter hareket etmedigi surece oyun aki dursun hareket ettigi surece oyun devam etsin
Initial prompt
ben bir parkur oyunu yapmak istiyorum
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ var Bullet = Container.expand(function () { var self = Container.call(this); var graphics = self.attachAsset('bullet', { anchorX: 0.5, anchorY: 0.5 }); self.baseSpeedX = (Math.random() - 0.5) * 6; self.baseSpeedY = Math.random() * 4 + 2; self.frozen = false; self.update = function () { if (!self.frozen && gameActive) { // Apply difficulty multiplier to speed var speedMultiplier = 1 + (difficultyLevel - 1) * 0.4; self.x += self.baseSpeedX * speedMultiplier; self.y += self.baseSpeedY * speedMultiplier; } // Visual feedback for frozen state graphics.tint = self.frozen ? 0x888888 : 0xFFFFFF; }; return self; }); var Enemy = Container.expand(function () { var self = Container.call(this); var graphics = self.attachAsset('enemy', { anchorX: 0.5, anchorY: 0.5 }); self.baseSpeedX = (Math.random() - 0.5) * 4; self.baseSpeedY = Math.random() * 3 + 1; self.frozen = false; self.update = function () { if (!self.frozen && gameActive) { // Apply difficulty multiplier to speed var speedMultiplier = 1 + (difficultyLevel - 1) * 0.3; self.x += self.baseSpeedX * speedMultiplier; self.y += self.baseSpeedY * speedMultiplier; // Bounce off screen edges if (self.x <= 30 || self.x >= 2018) { self.baseSpeedX *= -1; } } // Visual feedback for frozen state graphics.tint = self.frozen ? 0x888888 : 0xFFFFFF; }; return self; }); var Player = Container.expand(function () { var self = Container.call(this); var graphics = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); self.lastX = 0; self.lastY = 0; self.isMoving = false; self.update = function () { // Check if player is moving var deltaX = Math.abs(self.x - self.lastX); var deltaY = Math.abs(self.y - self.lastY); self.isMoving = deltaX > 1 || deltaY > 1; // Update last position self.lastX = self.x; self.lastY = self.y; // Visual feedback for movement state if (self.isMoving) { graphics.alpha = 1.0; graphics.scaleX = 1.1; graphics.scaleY = 1.1; } else { graphics.alpha = 0.7; graphics.scaleX = 1.0; graphics.scaleY = 1.0; } }; return self; }); var PowerUp = Container.expand(function () { var self = Container.call(this); var graphics = self.attachAsset('powerup', { anchorX: 0.5, anchorY: 0.5 }); self.bobSpeed = Math.random() * 0.1 + 0.05; self.bobOffset = Math.random() * Math.PI * 2; self.frozen = false; self.update = function () { if (!self.frozen && gameActive) { // Gentle bobbing animation graphics.y = Math.sin(LK.ticks * self.bobSpeed + self.bobOffset) * 5; graphics.rotation += 0.02; } // Visual feedback for frozen state graphics.tint = self.frozen ? 0x888888 : 0xFFFFFF; }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x1A1A2E }); /**** * Game Code ****/ var player; var enemies = []; var bullets = []; var powerups = []; var gameActive = false; var survivalTime = 0; var spawnTimer = 0; var difficultyLevel = 1; var dragNode = null; var levelTimer = 0; var baseEnemySpeed = 3; var baseBulletSpeed = 4; // Initialize score display var scoreTxt = new Text2('Score: 0', { size: 60, fill: 0xFFFFFF }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Initialize status display var statusTxt = new Text2('MOVE TO START', { size: 80, fill: 0xFFD700 }); statusTxt.anchor.set(0.5, 0.5); statusTxt.x = 2048 / 2; statusTxt.y = 2732 / 2 - 200; game.addChild(statusTxt); // Create player player = game.addChild(new Player()); player.x = 2048 / 2; player.y = 2732 / 2; // Movement handling function handleMove(x, y, obj) { if (dragNode) { dragNode.x = Math.max(40, Math.min(2008, x)); dragNode.y = Math.max(40, Math.min(2692, y)); } } game.move = handleMove; game.down = function (x, y, obj) { dragNode = player; handleMove(x, y, obj); }; game.up = function (x, y, obj) { dragNode = null; }; // Spawn enemies function spawnEnemy() { var enemy = new Enemy(); enemy.x = Math.random() * 1900 + 100; enemy.y = -50; enemies.push(enemy); game.addChild(enemy); } // Spawn bullets function spawnBullet() { var bullet = new Bullet(); bullet.x = Math.random() * 2048; bullet.y = -30; bullets.push(bullet); game.addChild(bullet); } // Spawn power-ups function spawnPowerUp() { var powerup = new PowerUp(); powerup.x = Math.random() * 1800 + 124; powerup.y = Math.random() * 2000 + 100; powerups.push(powerup); game.addChild(powerup); } // Update game state game.update = function () { // Update game active state based on player movement gameActive = player.isMoving; // Update status text if (gameActive) { statusTxt.alpha = 0; survivalTime++; levelTimer++; // Update score var currentScore = Math.floor(survivalTime / 60) + LK.getScore() % 1000; LK.setScore(Math.floor(survivalTime / 60) * 10); scoreTxt.setText('Score: ' + LK.getScore()); // Increase difficulty every 10 seconds (600 ticks at 60fps) if (levelTimer >= 600) { difficultyLevel++; levelTimer = 0; // Flash screen to indicate level up LK.effects.flashScreen(0x00FF00, 300); } } else { statusTxt.alpha = 0.8; statusTxt.setText('MOVE TO CONTINUE'); } // Freeze/unfreeze all game objects for (var i = 0; i < enemies.length; i++) { enemies[i].frozen = !gameActive; } for (var i = 0; i < bullets.length; i++) { bullets[i].frozen = !gameActive; } for (var i = 0; i < powerups.length; i++) { powerups[i].frozen = !gameActive; } // Spawn logic (only when game is active) if (gameActive) { spawnTimer++; // Spawn enemies if (spawnTimer % Math.max(120 - difficultyLevel * 10, 30) === 0) { spawnEnemy(); } // Spawn bullets if (spawnTimer % Math.max(90 - difficultyLevel * 5, 20) === 0) { spawnBullet(); } // Spawn power-ups if (spawnTimer % 600 === 0) { spawnPowerUp(); } } // Handle enemy collisions and cleanup for (var i = enemies.length - 1; i >= 0; i--) { var enemy = enemies[i]; // Remove off-screen enemies if (enemy.y > 2800) { enemy.destroy(); enemies.splice(i, 1); continue; } // Check collision with player if (enemy.intersects(player)) { LK.getSound('enemyHit').play(); LK.effects.flashScreen(0xFF0000, 500); LK.showGameOver(); return; } } // Handle bullet collisions and cleanup for (var i = bullets.length - 1; i >= 0; i--) { var bullet = bullets[i]; // Remove off-screen bullets if (bullet.y > 2800 || bullet.x < -50 || bullet.x > 2098) { bullet.destroy(); bullets.splice(i, 1); continue; } // Check collision with player if (bullet.intersects(player)) { LK.getSound('enemyHit').play(); LK.effects.flashScreen(0xFF0000, 500); LK.showGameOver(); return; } } // Handle power-up collisions for (var i = powerups.length - 1; i >= 0; i--) { var powerup = powerups[i]; if (powerup.intersects(player)) { LK.getSound('collect').play(); LK.setScore(LK.getScore() + 50); scoreTxt.setText('Score: ' + LK.getScore()); LK.effects.flashObject(player, 0x2196F3, 300); powerup.destroy(); powerups.splice(i, 1); } } // Win condition if (LK.getScore() >= 1000) { LK.showYouWin(); } };
===================================================================
--- original.js
+++ change.js
@@ -11,15 +11,17 @@
var graphics = self.attachAsset('bullet', {
anchorX: 0.5,
anchorY: 0.5
});
- self.speedX = (Math.random() - 0.5) * 6;
- self.speedY = Math.random() * 4 + 2;
+ self.baseSpeedX = (Math.random() - 0.5) * 6;
+ self.baseSpeedY = Math.random() * 4 + 2;
self.frozen = false;
self.update = function () {
if (!self.frozen && gameActive) {
- self.x += self.speedX;
- self.y += self.speedY;
+ // Apply difficulty multiplier to speed
+ var speedMultiplier = 1 + (difficultyLevel - 1) * 0.4;
+ self.x += self.baseSpeedX * speedMultiplier;
+ self.y += self.baseSpeedY * speedMultiplier;
}
// Visual feedback for frozen state
graphics.tint = self.frozen ? 0x888888 : 0xFFFFFF;
};
@@ -30,18 +32,20 @@
var graphics = self.attachAsset('enemy', {
anchorX: 0.5,
anchorY: 0.5
});
- self.speedX = (Math.random() - 0.5) * 4;
- self.speedY = Math.random() * 3 + 1;
+ self.baseSpeedX = (Math.random() - 0.5) * 4;
+ self.baseSpeedY = Math.random() * 3 + 1;
self.frozen = false;
self.update = function () {
if (!self.frozen && gameActive) {
- self.x += self.speedX;
- self.y += self.speedY;
+ // Apply difficulty multiplier to speed
+ var speedMultiplier = 1 + (difficultyLevel - 1) * 0.3;
+ self.x += self.baseSpeedX * speedMultiplier;
+ self.y += self.baseSpeedY * speedMultiplier;
// Bounce off screen edges
if (self.x <= 30 || self.x >= 2018) {
- self.speedX *= -1;
+ self.baseSpeedX *= -1;
}
}
// Visual feedback for frozen state
graphics.tint = self.frozen ? 0x888888 : 0xFFFFFF;
@@ -117,8 +121,11 @@
var survivalTime = 0;
var spawnTimer = 0;
var difficultyLevel = 1;
var dragNode = null;
+var levelTimer = 0;
+var baseEnemySpeed = 3;
+var baseBulletSpeed = 4;
// Initialize score display
var scoreTxt = new Text2('Score: 0', {
size: 60,
fill: 0xFFFFFF
@@ -184,14 +191,20 @@
// Update status text
if (gameActive) {
statusTxt.alpha = 0;
survivalTime++;
+ levelTimer++;
// Update score
var currentScore = Math.floor(survivalTime / 60) + LK.getScore() % 1000;
LK.setScore(Math.floor(survivalTime / 60) * 10);
scoreTxt.setText('Score: ' + LK.getScore());
- // Increase difficulty over time
- difficultyLevel = Math.floor(survivalTime / 3600) + 1;
+ // Increase difficulty every 10 seconds (600 ticks at 60fps)
+ if (levelTimer >= 600) {
+ difficultyLevel++;
+ levelTimer = 0;
+ // Flash screen to indicate level up
+ LK.effects.flashScreen(0x00FF00, 300);
+ }
} else {
statusTxt.alpha = 0.8;
statusTxt.setText('MOVE TO CONTINUE');
}