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 = 18; // Movement speed self.dirX = 0; self.dirY = 0; self.update = function () { // Move player self.x += self.dirX * self.speed; self.y += self.dirY * self.speed; // 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 = 10 + Math.random() * 4; 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 ****/ // Mission marker: green ellipse // Obstacle: gray box // Loot: yellow ellipse // Police car: blue box // Player character: red box // Game state variables var player; var policeCars = []; var loots = []; var obstacles = []; var missionMarker; var scoreTxt; var timerTxt; 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); // 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'); 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); LK.showGameOver(); return; } // 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
@@ -1,6 +1,388 @@
-/****
+/****
+* 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 = 18; // Movement speed
+ self.dirX = 0;
+ self.dirY = 0;
+ self.update = function () {
+ // Move player
+ self.x += self.dirX * self.speed;
+ self.y += self.dirY * self.speed;
+ // 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 = 10 + Math.random() * 4;
+ 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: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x222222
+});
+
+/****
+* Game Code
+****/
+// Mission marker: green ellipse
+// Obstacle: gray box
+// Loot: yellow ellipse
+// Police car: blue box
+// Player character: red box
+// Game state variables
+var player;
+var policeCars = [];
+var loots = [];
+var obstacles = [];
+var missionMarker;
+var scoreTxt;
+var timerTxt;
+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);
+// 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');
+ 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);
+ LK.showGameOver();
+ return;
+ }
+ // 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 */
\ No newline at end of file