User prompt
Bu kutular kare olsun ve onların görüntüsü ayı kapanına benzesin
User prompt
Etrafta rastgele 5 adet gri kutu koy. Eyer karakterimiz onun üzerine gelirse oyun bitsin
User prompt
Oyunda oyunu bilmeyenler için üzerinde soru işareti olan bir simge olsun (Bu simge sadece oyun başlamadan önce gözükür oyna tuşuna bastıktan sonra kaybolur). Açılan yerde bir bilgilendirici metin yazsın. Metin şu: Oyunda bir kurabiye fabrikasının bahçesindesin. Bahçede canlı olan kurabiyeleri yakala ve kazan. Dikkat! Tuzaklara yakalanma.
User prompt
Oyuna başlarken kurabiye toplama yerine "Kurabiye Hırsızı" yazsın
User prompt
Oyuna başlamadan önce bir başlangıç ekranı olsun. Orada "Oyna" isimli tuşa basarak oyunumuz başlasın
User prompt
Topladığımız bu kurabiyeler daha çok sağ veya solda doğsun. Ayrıca kurabiyeler çok düşük bir hızla karakterimizden kaçsınlar
User prompt
Etrafta 10 adet kurabiye olsun bunları topladığımızda oyunu kazanalım ve oyun bitsin
User prompt
Arka plan açık yeşil renkli olsun
User prompt
Bana arka plana dik ve ortalanmış bir yol çiz
Code edit (2 edits merged)
Please save this source code
User prompt
Arka plana şehir yolları ekle
User prompt
Kutunun hareket hızını düşür
User prompt
Bana sadece bir hiçlikte faremiz ile hareket eden bir kutu yap
Code edit (1 edits merged)
Please save this source code
User prompt
Kutu Kaçışı
Initial prompt
Bana w, a, s ve d tuşlarıyla haraket eden bir kutu oyunu yap
/**** * Plugins ****/ var tween = LK.import("@upit/tween.v1"); /**** * Classes ****/ // Obstacle class var Obstacle = Container.expand(function () { var self = Container.call(this); var obs = self.attachAsset('obstacleBox', { anchorX: 0.5, anchorY: 0.5 }); // Set random speed for each obstacle self.speedY = 10 + Math.floor(Math.random() * 8); // 10-17 px per frame self.update = function () { self.y += self.speedY; }; return self; }); // Player-controlled box var PlayerBox = Container.expand(function () { var self = Container.call(this); var box = self.attachAsset('playerBox', { anchorX: 0.5, anchorY: 0.5 }); // For possible future use: self.width = box.width; self.height = box.height; // No per-object event handlers; handled globally in game.move return self; }); /**** * Initialize Game ****/ var game = new LK.Game({ backgroundColor: 0x222222 }); /**** * Game Code ****/ // Score text // Asset initialization (shapes) var scoreTxt = new Text2('0', { size: 120, fill: 0xFFFFFF }); scoreTxt.anchor.set(0.5, 0); LK.gui.top.addChild(scoreTxt); // Player box var player = new PlayerBox(); game.addChild(player); // Center player horizontally, place near bottom (but not at the very edge) player.x = 2048 / 2; player.y = 2732 - 350; // Obstacles array var obstacles = []; // Score and tick counter var score = 0; var ticksSurvived = 0; // Dragging logic var dragNode = null; var offsetX = 0; var offsetY = 0; // Helper: clamp value between min and max function clamp(val, min, max) { if (val < min) return min; if (val > max) return max; return val; } // Touch/mouse down: start dragging if on player game.down = function (x, y, obj) { // Check if touch is inside player box var dx = x - player.x; var dy = y - player.y; var halfW = player.children[0].width / 2; var halfH = player.children[0].height / 2; if (dx >= -halfW && dx <= halfW && dy >= -halfH && dy <= halfH) { dragNode = player; offsetX = player.x - x; offsetY = player.y - y; } }; // Touch/mouse up: stop dragging game.up = function (x, y, obj) { dragNode = null; }; // Touch/mouse move: move player if dragging game.move = function (x, y, obj) { if (dragNode === player) { // Clamp player inside game area (leave 10px margin) var halfW = player.children[0].width / 2; var halfH = player.children[0].height / 2; var newX = clamp(x + offsetX, halfW + 10, 2048 - halfW - 10); var newY = clamp(y + offsetY, halfH + 10, 2732 - halfH - 10); player.x = newX; player.y = newY; } }; // Main game update loop game.update = function () { ticksSurvived++; // Every 45 ticks (~0.75s), spawn a new obstacle if (LK.ticks % 45 === 0) { var obs = new Obstacle(); // Random X position, fully inside screen var halfW = obs.children[0].width / 2; obs.x = halfW + 40 + Math.floor(Math.random() * (2048 - 2 * (halfW + 40))); obs.y = -obs.children[0].height / 2 - 10; game.addChild(obs); obstacles.push(obs); } // Move obstacles, check for collision or out of screen for (var i = obstacles.length - 1; i >= 0; i--) { var obs = obstacles[i]; obs.update(); // Collision detection if (player.intersects(obs)) { LK.effects.flashScreen(0xff0000, 800); LK.showGameOver(); return; } // Remove if out of screen if (obs.y - obs.children[0].height / 2 > 2732 + 40) { obs.destroy(); obstacles.splice(i, 1); // Increase score for each avoided obstacle score++; scoreTxt.setText(score); } } }; // Reset score and obstacles on game start score = 0; scoreTxt.setText(score); for (var i = 0; i < obstacles.length; i++) { obstacles[i].destroy(); } obstacles = [];
===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,142 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+// Obstacle class
+var Obstacle = Container.expand(function () {
+ var self = Container.call(this);
+ var obs = self.attachAsset('obstacleBox', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ // Set random speed for each obstacle
+ self.speedY = 10 + Math.floor(Math.random() * 8); // 10-17 px per frame
+ self.update = function () {
+ self.y += self.speedY;
+ };
+ return self;
+});
+// Player-controlled box
+var PlayerBox = Container.expand(function () {
+ var self = Container.call(this);
+ var box = self.attachAsset('playerBox', {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ // For possible future use: self.width = box.width; self.height = box.height;
+ // No per-object event handlers; handled globally in game.move
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x222222
+});
+
+/****
+* Game Code
+****/
+// Score text
+// Asset initialization (shapes)
+var scoreTxt = new Text2('0', {
+ size: 120,
+ fill: 0xFFFFFF
+});
+scoreTxt.anchor.set(0.5, 0);
+LK.gui.top.addChild(scoreTxt);
+// Player box
+var player = new PlayerBox();
+game.addChild(player);
+// Center player horizontally, place near bottom (but not at the very edge)
+player.x = 2048 / 2;
+player.y = 2732 - 350;
+// Obstacles array
+var obstacles = [];
+// Score and tick counter
+var score = 0;
+var ticksSurvived = 0;
+// Dragging logic
+var dragNode = null;
+var offsetX = 0;
+var offsetY = 0;
+// Helper: clamp value between min and max
+function clamp(val, min, max) {
+ if (val < min) return min;
+ if (val > max) return max;
+ return val;
+}
+// Touch/mouse down: start dragging if on player
+game.down = function (x, y, obj) {
+ // Check if touch is inside player box
+ var dx = x - player.x;
+ var dy = y - player.y;
+ var halfW = player.children[0].width / 2;
+ var halfH = player.children[0].height / 2;
+ if (dx >= -halfW && dx <= halfW && dy >= -halfH && dy <= halfH) {
+ dragNode = player;
+ offsetX = player.x - x;
+ offsetY = player.y - y;
+ }
+};
+// Touch/mouse up: stop dragging
+game.up = function (x, y, obj) {
+ dragNode = null;
+};
+// Touch/mouse move: move player if dragging
+game.move = function (x, y, obj) {
+ if (dragNode === player) {
+ // Clamp player inside game area (leave 10px margin)
+ var halfW = player.children[0].width / 2;
+ var halfH = player.children[0].height / 2;
+ var newX = clamp(x + offsetX, halfW + 10, 2048 - halfW - 10);
+ var newY = clamp(y + offsetY, halfH + 10, 2732 - halfH - 10);
+ player.x = newX;
+ player.y = newY;
+ }
+};
+// Main game update loop
+game.update = function () {
+ ticksSurvived++;
+ // Every 45 ticks (~0.75s), spawn a new obstacle
+ if (LK.ticks % 45 === 0) {
+ var obs = new Obstacle();
+ // Random X position, fully inside screen
+ var halfW = obs.children[0].width / 2;
+ obs.x = halfW + 40 + Math.floor(Math.random() * (2048 - 2 * (halfW + 40)));
+ obs.y = -obs.children[0].height / 2 - 10;
+ game.addChild(obs);
+ obstacles.push(obs);
+ }
+ // Move obstacles, check for collision or out of screen
+ for (var i = obstacles.length - 1; i >= 0; i--) {
+ var obs = obstacles[i];
+ obs.update();
+ // Collision detection
+ if (player.intersects(obs)) {
+ LK.effects.flashScreen(0xff0000, 800);
+ LK.showGameOver();
+ return;
+ }
+ // Remove if out of screen
+ if (obs.y - obs.children[0].height / 2 > 2732 + 40) {
+ obs.destroy();
+ obstacles.splice(i, 1);
+ // Increase score for each avoided obstacle
+ score++;
+ scoreTxt.setText(score);
+ }
+ }
+};
+// Reset score and obstacles on game start
+score = 0;
+scoreTxt.setText(score);
+for (var i = 0; i < obstacles.length; i++) {
+ obstacles[i].destroy();
+}
+obstacles = [];
\ No newline at end of file
Bana biraz sinsi gülüş atan, siyah şapkası ve giysisi olan bir kurabiye çiz (Asil dursun) .. In-Game asset. 2d. High contrast. No shadows
Bana tatlı üzerinde bir yüz olan kurabiye çiz. In-Game asset. 2d. High contrast. No shadows
Bana demirden yapılmış paslı bir ayı kapanı yap . No background. Transparent background. Blank background. No shadows. 2d. In-Game asset. flat