User prompt
skor sonsuz olsun
User prompt
karakter faremize doğru hareket etsin
User prompt
Our character should have 3 lives and the enemies should move slowly.
User prompt
characters be slower
Code edit (1 edits merged)
Please save this source code
User prompt
Mini City Heist
Initial prompt
Let's make gta6
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // Loot class var Loot = Container.expand(function () { var self = Container.call(this); var lootSprite = self.attachAsset('loot', { anchorX: 0.5, anchorY: 0.5 }); return self; }); // Mission marker class var Mission = Container.expand(function () { var self = Container.call(this); var marker = self.attachAsset('mission', { anchorX: 0.5, anchorY: 0.5 }); return self; }); // Obstacle class var Obstacle = Container.expand(function () { var self = Container.call(this); var obsSprite = self.attachAsset('obstacle', { anchorX: 0.5, anchorY: 0.5 }); return self; }); // Player class var Player = Container.expand(function () { var self = Container.call(this); var playerSprite = self.attachAsset('player', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 10; // Movement speed (reduced for slower character) self.dirX = 0; self.dirY = 0; self.update = function () { // Move player toward lastTouch (faremiz) var dx = lastTouch.x - self.x; var dy = lastTouch.y - self.y; var dist = Math.sqrt(dx * dx + dy * dy); if (dist > 2) { self.x += dx / dist * self.speed; self.y += dy / dist * self.speed; } else { self.x = lastTouch.x; self.y = lastTouch.y; } // Clamp to game area if (self.x < 60) self.x = 60; if (self.x > 2048 - 60) self.x = 2048 - 60; if (self.y < 120) self.y = 120; if (self.y > 2732 - 60) self.y = 2732 - 60; }; return self; }); // Police car class var Police = Container.expand(function () { var self = Container.call(this); var policeSprite = self.attachAsset('police', { anchorX: 0.5, anchorY: 0.5 }); self.speed = 4 + Math.random() * 2; // Slower police speed self.target = null; self.update = function () { if (!self.target) return; var dx = self.target.x - self.x; var dy = self.target.y - self.y; var dist = Math.sqrt(dx * dx + dy * dy); if (dist > 1) { self.x += dx / dist * self.speed; self.y += dy / dist * self.speed; } }; return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x222222 }); /**** * Game Code ****/ // Game state variables // Player character: red box // Police car: blue box // Loot: yellow ellipse // Obstacle: gray box // Mission marker: green ellipse var player; var policeCars = []; var loots = []; var obstacles = []; var missionMarker; var scoreTxt; var timerTxt; var livesTxt; var playerLives = 3; // Start with 3 lives var missionActive = false; var missionTime = 0; var missionTimeout = null; var gameTimer = 60; // seconds var lastMissionScore = 0; var dragDir = null; var dragStart = null; var dragNode = null; var lastTouch = { x: 0, y: 0 }; var policeSpawnTimer = 0; // Score display scoreTxt = new Text2('0', { size: 120, fill: "#fff" }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Timer display timerTxt = new Text2('60', { size: 90, fill: "#fff" }); timerTxt.anchor.set(1, 0); LK.gui.topRight.addChild(timerTxt); // Lives display livesTxt = new Text2('♥♥♥', { size: 90, fill: 0xFF4444 }); livesTxt.anchor.set(0, 0); livesTxt.x = 120; livesTxt.y = 0; LK.gui.top.addChild(livesTxt); // Helper: random position in city bounds (avoiding top left 100x100) function randomPos(margin) { var x = 100 + margin + Math.random() * (2048 - 2 * (100 + margin)); var y = 120 + margin + Math.random() * (2732 - 2 * (120 + margin)); return { x: x, y: y }; } // Helper: spawn loot function spawnLoot() { var loot = new Loot(); var pos = randomPos(80); loot.x = pos.x; loot.y = pos.y; loots.push(loot); game.addChild(loot); } // Helper: spawn obstacle function spawnObstacle() { var obs = new Obstacle(); var pos = randomPos(120); obs.x = pos.x; obs.y = pos.y; obstacles.push(obs); game.addChild(obs); } // Helper: spawn police function spawnPolice() { var police = new Police(); // Spawn at random edge var edge = Math.floor(Math.random() * 4); if (edge === 0) { // top police.x = 200 + Math.random() * (2048 - 400); police.y = 120; } else if (edge === 1) { // bottom police.x = 200 + Math.random() * (2048 - 400); police.y = 2732 - 120; } else if (edge === 2) { // left police.x = 100; police.y = 200 + Math.random() * (2732 - 400); } else { // right police.x = 2048 - 100; police.y = 200 + Math.random() * (2732 - 400); } police.target = player; policeCars.push(police); game.addChild(police); } // Helper: spawn mission marker function spawnMission() { if (missionMarker) { missionMarker.destroy(); missionMarker = null; } var marker = new Mission(); var pos = randomPos(200); marker.x = pos.x; marker.y = pos.y; missionMarker = marker; game.addChild(marker); missionActive = true; missionTime = 10 + Math.floor(Math.random() * 6); // 10-15 seconds if (missionTimeout) LK.clearTimeout(missionTimeout); missionTimeout = LK.setTimeout(function () { // Mission failed if (missionActive) { missionActive = false; if (missionMarker) { missionMarker.destroy(); missionMarker = null; } } }, missionTime * 1000); } // Helper: reset game state function resetGame() { // Remove all objects if (player) player.destroy(); for (var i = 0; i < policeCars.length; ++i) policeCars[i].destroy(); for (var i = 0; i < loots.length; ++i) loots[i].destroy(); for (var i = 0; i < obstacles.length; ++i) obstacles[i].destroy(); if (missionMarker) missionMarker.destroy(); policeCars = []; loots = []; obstacles = []; missionMarker = null; missionActive = false; missionTime = 0; if (missionTimeout) LK.clearTimeout(missionTimeout); missionTimeout = null; gameTimer = 60; lastMissionScore = 0; // Spawn player player = new Player(); player.x = 2048 / 2; player.y = 2732 - 300; game.addChild(player); // Spawn loot for (var i = 0; i < 4; ++i) spawnLoot(); // Spawn obstacles for (var i = 0; i < 5; ++i) spawnObstacle(); // Spawn police for (var i = 0; i < 2; ++i) spawnPolice(); // Spawn first mission spawnMission(); // Reset score LK.setScore(0); scoreTxt.setText('0'); timerTxt.setText('60'); playerLives = 3; if (livesTxt) livesTxt.setText('♥'.repeat(playerLives)); policeSpawnTimer = 0; } resetGame(); // Touch controls: drag to move game.down = function (x, y, obj) { // Start drag dragNode = player; dragStart = { x: x, y: y, px: player.x, py: player.y }; lastTouch.x = x; lastTouch.y = y; }; game.move = function (x, y, obj) { if (dragNode) { // Calculate direction var dx = x - dragStart.x; var dy = y - dragStart.y; var dist = Math.sqrt(dx * dx + dy * dy); if (dist > 30) { dragNode.dirX = dx / dist; dragNode.dirY = dy / dist; } else { dragNode.dirX = 0; dragNode.dirY = 0; } lastTouch.x = x; lastTouch.y = y; } }; game.up = function (x, y, obj) { if (dragNode) { dragNode.dirX = 0; dragNode.dirY = 0; dragNode = null; } }; // Main game update game.update = function () { // Update timer if (LK.ticks % 60 === 0 && gameTimer > 0) { gameTimer -= 1; timerTxt.setText(gameTimer + ''); if (gameTimer <= 0) { LK.showGameOver(); return; } } // Update player if (player && player.update) player.update(); // Update police for (var i = policeCars.length - 1; i >= 0; --i) { var p = policeCars[i]; if (p.update) p.update(); // Collision with player if (p.intersects(player)) { LK.effects.flashScreen(0xff0000, 800); playerLives -= 1; if (livesTxt) livesTxt.setText('♥'.repeat(playerLives)); if (playerLives <= 0) { LK.showGameOver(); return; } else { // Remove this police car and respawn player at start p.destroy(); policeCars.splice(i, 1); player.x = 2048 / 2; player.y = 2732 - 300; // Brief invulnerability (optional, not implemented here) continue; } } // Collide with obstacles for (var j = 0; j < obstacles.length; ++j) { var obs = obstacles[j]; if (p.intersects(obs)) { // Bounce back var dx = p.x - obs.x; var dy = p.y - obs.y; var dist = Math.sqrt(dx * dx + dy * dy); if (dist > 0) { p.x += dx / dist * 30; p.y += dy / dist * 30; } } } } // Player collides with obstacles for (var i = 0; i < obstacles.length; ++i) { var obs = obstacles[i]; if (player.intersects(obs)) { // Push player out var dx = player.x - obs.x; var dy = player.y - obs.y; var dist = Math.sqrt(dx * dx + dy * dy); if (dist > 0) { player.x += dx / dist * 20; player.y += dy / dist * 20; } } } // Player collects loot for (var i = loots.length - 1; i >= 0; --i) { var loot = loots[i]; if (player.intersects(loot)) { LK.setScore(LK.getScore() + 10); scoreTxt.setText(LK.getScore() + ''); tween(loot, { alpha: 0, scaleX: 2, scaleY: 2 }, { duration: 300, onFinish: function onFinish() { loot.destroy(); } }); loots.splice(i, 1); // Spawn new loot spawnLoot(); } } // Player completes mission if (missionActive && missionMarker && player.intersects(missionMarker)) { LK.setScore(LK.getScore() + 30); scoreTxt.setText(LK.getScore() + ''); tween(missionMarker, { alpha: 0, scaleX: 2, scaleY: 2 }, { duration: 400, onFinish: function onFinish() { if (missionMarker) missionMarker.destroy(); } }); missionActive = false; missionMarker = null; // Next mission after short delay LK.setTimeout(function () { spawnMission(); }, 1200); } // Win condition: score 200+ if (LK.getScore() >= 200) { LK.showYouWin(); return; } // Police spawn logic: every 8 seconds, up to 6 police if (LK.ticks % 480 === 0 && policeCars.length < 6) { spawnPolice(); } }; /* End of gamecode.js */
===================================================================
--- original.js
+++ change.js
@@ -43,11 +43,19 @@
self.speed = 10; // Movement speed (reduced for slower character)
self.dirX = 0;
self.dirY = 0;
self.update = function () {
- // Move player
- self.x += self.dirX * self.speed;
- self.y += self.dirY * self.speed;
+ // Move player toward lastTouch (faremiz)
+ var dx = lastTouch.x - self.x;
+ var dy = lastTouch.y - self.y;
+ var dist = Math.sqrt(dx * dx + dy * dy);
+ if (dist > 2) {
+ self.x += dx / dist * self.speed;
+ self.y += dy / dist * self.speed;
+ } else {
+ self.x = lastTouch.x;
+ self.y = lastTouch.y;
+ }
// Clamp to game area
if (self.x < 60) self.x = 60;
if (self.x > 2048 - 60) self.x = 2048 - 60;
if (self.y < 120) self.y = 120;
@@ -86,14 +94,14 @@
/****
* Game Code
****/
-// Mission marker: green ellipse
-// Obstacle: gray box
-// Loot: yellow ellipse
-// Police car: blue box
-// Player character: red box
// Game state variables
+// Player character: red box
+// Police car: blue box
+// Loot: yellow ellipse
+// Obstacle: gray box
+// Mission marker: green ellipse
var player;
var policeCars = [];
var loots = [];
var obstacles = [];