User prompt
koyduğun şekil bir kare, -> <- şu şekilde yön işaretleri göster
User prompt
sağ üst köşesindeki yön göstergeis pause tuşu gibi büyük olsun ve sonraki hamlede yöneleceği yönü gösteren bir ok işareti şeklinde olsun
User prompt
rastgele bir yerde bir tane biberon olsun ona ulaşmaya çalışalım ulaşınca sonraki bölüme geçsin
User prompt
bir sonraki rastgele yönün hangi yön olduğunu gösteren tabela eklememişsin sağ üst köşeye
User prompt
çocuğu zıplatmayalım sadece odadaki yönü değişsin çocuk oyun zemininde yürüyor biz odaya yukardan bakıyoruz gibi olsun aslında şöyle olsun cocuk odanın içinde rastgele yürüyor odada birsürü eşyalar var onlara çarpmaması için oyuna tıklamamız gerekiyor her tıkladığımızda rastgele bir yöne gidecek çocuk ama bir sonraki rastgele yönün neresi olduğunu sağ üst köşede sabit bir kutuda görebileceğiz ekrana tıkladığımızda o yöne doğru yürümeye devam edecek
Code edit (1 edits merged)
Please save this source code
User prompt
Zıp Zıp Bebek
Initial prompt
🎮 OYUN FİKRİ: "Zıp Zıp Bebek" (örnek isim) 🔹 Temel Oynanış Mekaniği Oyunun ana karakteri: bir bebek, ekranda sağa sola rasgele yönlere doğru yürür veya koşar. Oyuncunun kontrolü: ekrana dokunarak bebeği zıplatmak. Amaç: Sağdan, soldan ya da yukarıdan gelen nesnelerden bebeği kaçırmak. Eğer bebek bir nesneye çarparsa: oyun biter. 🧩 Oynanış Detayları ⚙️ Mekanikler Zıplama süresi: Oyuncunun ne zaman ve ne kadar süreyle dokunduğuna göre zıplama yüksekliği değişebilir (daha zorlayıcı versiyon). Koşu yönü rastgele: Bebeğin yönü zaman zaman değişebilir. Belki duvara çarpınca yön değiştirir. Gelen nesneler: Top, oyuncak, küp, sandalye gibi nesneler farklı hız ve boyutlarda gelir. Aralıklı olarak daha hızlı veya daha büyük engeller olabilir. 🧠 Gelişen Zorluk Oyunun süresi uzadıkça, nesneler daha hızlı ve sık gelmeye başlar. Belki ilerleyen bölümlerde çift zıplama veya kısa süreli kalkan gibi güçlendirmeler eklenebilir. 🌈 Estetik ve Tema Grafikler renkli, pastel tonlarda, çocuk çizim tarzına yakın olabilir. Arka plan müziği neşeli, sevimli ama fazla dikkat dağıtmayacak şekilde olmalı. Bebek karakterinin sevimli animasyonları, oyuncunun bağ kurmasını sağlar (örneğin güldüğünde ses çıkarır, düşününce kafasını kaşır gibi).
/****
* Plugins
****/
var tween = LK.import("@upit/tween.v1");
/****
* Classes
****/
var Baby = Container.expand(function () {
var self = Container.call(this);
var babyGraphics = self.attachAsset('baby', {
anchorX: 0.5,
anchorY: 1.0
});
self.velocityX = 2;
self.velocityY = 0;
self.gravity = 0.8;
self.jumpPower = 0;
self.isGrounded = true;
self.groundY = 2732 - 150;
self.directionChangeTimer = 0;
self.maxJumpPower = 18;
self.jump = function (power) {
if (self.isGrounded) {
self.velocityY = -power;
self.isGrounded = false;
LK.getSound('jump').play();
}
};
self.changeDirection = function () {
self.velocityX = (Math.random() < 0.5 ? -1 : 1) * (2 + Math.random() * 3);
};
self.update = function () {
// Random direction changes
self.directionChangeTimer++;
if (self.directionChangeTimer > 120 + Math.random() * 240) {
self.changeDirection();
self.directionChangeTimer = 0;
}
// Horizontal movement
self.x += self.velocityX;
// Wall collision
if (self.x <= 60 || self.x >= 2048 - 60) {
self.velocityX = -self.velocityX;
self.x = Math.max(60, Math.min(2048 - 60, self.x));
}
// Vertical movement and gravity
if (!self.isGrounded) {
self.velocityY += self.gravity;
self.y += self.velocityY;
}
// Ground collision
if (self.y >= self.groundY) {
self.y = self.groundY;
self.velocityY = 0;
self.isGrounded = true;
}
// Keep baby on screen vertically
if (self.y < 60) {
self.y = 60;
self.velocityY = 0;
}
};
return self;
});
var Obstacle = Container.expand(function (type, side) {
var self = Container.call(this);
var assetId = type || 'obstacle';
var obstacleGraphics = self.attachAsset(assetId, {
anchorX: 0.5,
anchorY: 0.5
});
self.speed = 3 + Math.random() * 4;
self.side = side || 'left';
// Set initial position based on side
if (self.side === 'left') {
self.x = -50;
self.y = 2732 - 150 - obstacleGraphics.height / 2;
self.velocityX = self.speed;
self.velocityY = 0;
} else if (self.side === 'right') {
self.x = 2048 + 50;
self.y = 2732 - 150 - obstacleGraphics.height / 2;
self.velocityX = -self.speed;
self.velocityY = 0;
} else if (self.side === 'top') {
self.x = Math.random() * 1800 + 124;
self.y = -50;
self.velocityX = 0;
self.velocityY = self.speed;
}
self.update = function () {
self.x += self.velocityX;
self.y += self.velocityY;
};
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0x87CEEB
});
/****
* Game Code
****/
game.setBackgroundColor(0x87CEEB);
// Game variables
var baby;
var obstacles = [];
var obstacleSpawnTimer = 0;
var difficultyTimer = 0;
var gameStarted = false;
var isJumping = false;
var jumpStartTime = 0;
var maxJumpHoldTime = 500; // milliseconds
// Create baby
baby = game.addChild(new Baby());
baby.x = 1024;
baby.y = 2732 - 150;
// Score display
var scoreTxt = new Text2('0', {
size: 120,
fill: 0xFFFFFF
});
scoreTxt.anchor.set(0.5, 0);
LK.gui.top.addChild(scoreTxt);
// Ground line (visual reference)
var ground = LK.getAsset('obstacle', {
anchorX: 0,
anchorY: 0,
scaleX: 25.6,
scaleY: 1.5,
x: 0,
y: 2732 - 150
});
ground.tint = 0x90EE90;
game.addChild(ground);
// Input handling
var lastTouchTime = 0;
var isPressed = false;
game.down = function (x, y, obj) {
isPressed = true;
jumpStartTime = Date.now();
gameStarted = true;
};
game.up = function (x, y, obj) {
if (isPressed && gameStarted) {
var holdTime = Date.now() - jumpStartTime;
var jumpPower = Math.min(baby.maxJumpPower, holdTime / maxJumpHoldTime * baby.maxJumpPower + 8);
baby.jump(jumpPower);
}
isPressed = false;
};
// Spawn obstacles
function spawnObstacle() {
var sides = ['left', 'right', 'top'];
var side = sides[Math.floor(Math.random() * sides.length)];
var obstacleTypes = ['obstacle', 'ball', 'toy'];
var type = obstacleTypes[Math.floor(Math.random() * obstacleTypes.length)];
var newObstacle = new Obstacle(type, side);
obstacles.push(newObstacle);
game.addChild(newObstacle);
}
// Game update loop
game.update = function () {
if (!gameStarted) return;
// Update difficulty over time
difficultyTimer++;
var difficultyLevel = Math.floor(difficultyTimer / 1800); // Increase every 30 seconds
// Spawn obstacles
obstacleSpawnTimer++;
var spawnRate = Math.max(60, 120 - difficultyLevel * 10); // Faster spawning over time
if (obstacleSpawnTimer >= spawnRate) {
spawnObstacle();
obstacleSpawnTimer = 0;
}
// Update obstacles and check collisions
for (var i = obstacles.length - 1; i >= 0; i--) {
var obstacle = obstacles[i];
// Check collision with baby
if (baby.intersects(obstacle)) {
LK.getSound('collision').play();
LK.showGameOver();
return;
}
// Remove obstacles that are off screen
if (obstacle.x < -100 || obstacle.x > 2148 || obstacle.y > 2832) {
obstacle.destroy();
obstacles.splice(i, 1);
// Increase score for surviving
LK.setScore(LK.getScore() + 1);
scoreTxt.setText(LK.getScore());
}
}
// Update score based on time survived
if (LK.ticks % 60 === 0) {
// Every second
LK.setScore(LK.getScore() + 1);
scoreTxt.setText(LK.getScore());
}
};
// Start background music
LK.playMusic('bgmusic'); ===================================================================
--- original.js
+++ change.js
@@ -1,6 +1,206 @@
-/****
+/****
+* Plugins
+****/
+var tween = LK.import("@upit/tween.v1");
+
+/****
+* Classes
+****/
+var Baby = Container.expand(function () {
+ var self = Container.call(this);
+ var babyGraphics = self.attachAsset('baby', {
+ anchorX: 0.5,
+ anchorY: 1.0
+ });
+ self.velocityX = 2;
+ self.velocityY = 0;
+ self.gravity = 0.8;
+ self.jumpPower = 0;
+ self.isGrounded = true;
+ self.groundY = 2732 - 150;
+ self.directionChangeTimer = 0;
+ self.maxJumpPower = 18;
+ self.jump = function (power) {
+ if (self.isGrounded) {
+ self.velocityY = -power;
+ self.isGrounded = false;
+ LK.getSound('jump').play();
+ }
+ };
+ self.changeDirection = function () {
+ self.velocityX = (Math.random() < 0.5 ? -1 : 1) * (2 + Math.random() * 3);
+ };
+ self.update = function () {
+ // Random direction changes
+ self.directionChangeTimer++;
+ if (self.directionChangeTimer > 120 + Math.random() * 240) {
+ self.changeDirection();
+ self.directionChangeTimer = 0;
+ }
+ // Horizontal movement
+ self.x += self.velocityX;
+ // Wall collision
+ if (self.x <= 60 || self.x >= 2048 - 60) {
+ self.velocityX = -self.velocityX;
+ self.x = Math.max(60, Math.min(2048 - 60, self.x));
+ }
+ // Vertical movement and gravity
+ if (!self.isGrounded) {
+ self.velocityY += self.gravity;
+ self.y += self.velocityY;
+ }
+ // Ground collision
+ if (self.y >= self.groundY) {
+ self.y = self.groundY;
+ self.velocityY = 0;
+ self.isGrounded = true;
+ }
+ // Keep baby on screen vertically
+ if (self.y < 60) {
+ self.y = 60;
+ self.velocityY = 0;
+ }
+ };
+ return self;
+});
+var Obstacle = Container.expand(function (type, side) {
+ var self = Container.call(this);
+ var assetId = type || 'obstacle';
+ var obstacleGraphics = self.attachAsset(assetId, {
+ anchorX: 0.5,
+ anchorY: 0.5
+ });
+ self.speed = 3 + Math.random() * 4;
+ self.side = side || 'left';
+ // Set initial position based on side
+ if (self.side === 'left') {
+ self.x = -50;
+ self.y = 2732 - 150 - obstacleGraphics.height / 2;
+ self.velocityX = self.speed;
+ self.velocityY = 0;
+ } else if (self.side === 'right') {
+ self.x = 2048 + 50;
+ self.y = 2732 - 150 - obstacleGraphics.height / 2;
+ self.velocityX = -self.speed;
+ self.velocityY = 0;
+ } else if (self.side === 'top') {
+ self.x = Math.random() * 1800 + 124;
+ self.y = -50;
+ self.velocityX = 0;
+ self.velocityY = self.speed;
+ }
+ self.update = function () {
+ self.x += self.velocityX;
+ self.y += self.velocityY;
+ };
+ return self;
+});
+
+/****
* Initialize Game
-****/
+****/
var game = new LK.Game({
- backgroundColor: 0x000000
-});
\ No newline at end of file
+ backgroundColor: 0x87CEEB
+});
+
+/****
+* Game Code
+****/
+game.setBackgroundColor(0x87CEEB);
+// Game variables
+var baby;
+var obstacles = [];
+var obstacleSpawnTimer = 0;
+var difficultyTimer = 0;
+var gameStarted = false;
+var isJumping = false;
+var jumpStartTime = 0;
+var maxJumpHoldTime = 500; // milliseconds
+// Create baby
+baby = game.addChild(new Baby());
+baby.x = 1024;
+baby.y = 2732 - 150;
+// Score display
+var scoreTxt = new Text2('0', {
+ size: 120,
+ fill: 0xFFFFFF
+});
+scoreTxt.anchor.set(0.5, 0);
+LK.gui.top.addChild(scoreTxt);
+// Ground line (visual reference)
+var ground = LK.getAsset('obstacle', {
+ anchorX: 0,
+ anchorY: 0,
+ scaleX: 25.6,
+ scaleY: 1.5,
+ x: 0,
+ y: 2732 - 150
+});
+ground.tint = 0x90EE90;
+game.addChild(ground);
+// Input handling
+var lastTouchTime = 0;
+var isPressed = false;
+game.down = function (x, y, obj) {
+ isPressed = true;
+ jumpStartTime = Date.now();
+ gameStarted = true;
+};
+game.up = function (x, y, obj) {
+ if (isPressed && gameStarted) {
+ var holdTime = Date.now() - jumpStartTime;
+ var jumpPower = Math.min(baby.maxJumpPower, holdTime / maxJumpHoldTime * baby.maxJumpPower + 8);
+ baby.jump(jumpPower);
+ }
+ isPressed = false;
+};
+// Spawn obstacles
+function spawnObstacle() {
+ var sides = ['left', 'right', 'top'];
+ var side = sides[Math.floor(Math.random() * sides.length)];
+ var obstacleTypes = ['obstacle', 'ball', 'toy'];
+ var type = obstacleTypes[Math.floor(Math.random() * obstacleTypes.length)];
+ var newObstacle = new Obstacle(type, side);
+ obstacles.push(newObstacle);
+ game.addChild(newObstacle);
+}
+// Game update loop
+game.update = function () {
+ if (!gameStarted) return;
+ // Update difficulty over time
+ difficultyTimer++;
+ var difficultyLevel = Math.floor(difficultyTimer / 1800); // Increase every 30 seconds
+ // Spawn obstacles
+ obstacleSpawnTimer++;
+ var spawnRate = Math.max(60, 120 - difficultyLevel * 10); // Faster spawning over time
+ if (obstacleSpawnTimer >= spawnRate) {
+ spawnObstacle();
+ obstacleSpawnTimer = 0;
+ }
+ // Update obstacles and check collisions
+ for (var i = obstacles.length - 1; i >= 0; i--) {
+ var obstacle = obstacles[i];
+ // Check collision with baby
+ if (baby.intersects(obstacle)) {
+ LK.getSound('collision').play();
+ LK.showGameOver();
+ return;
+ }
+ // Remove obstacles that are off screen
+ if (obstacle.x < -100 || obstacle.x > 2148 || obstacle.y > 2832) {
+ obstacle.destroy();
+ obstacles.splice(i, 1);
+ // Increase score for surviving
+ LK.setScore(LK.getScore() + 1);
+ scoreTxt.setText(LK.getScore());
+ }
+ }
+ // Update score based on time survived
+ if (LK.ticks % 60 === 0) {
+ // Every second
+ LK.setScore(LK.getScore() + 1);
+ scoreTxt.setText(LK.getScore());
+ }
+};
+// Start background music
+LK.playMusic('bgmusic');
\ No newline at end of file
kuş bakışı gördüğümüz bir örümcek çiz. In-Game asset. 2d. High contrast. No shadows
Örümcek Ağı. In-Game asset. 2d. High contrast. No shadows
sağa doğru bakan zehirli karınca. In-Game asset. 2d. High contrast. No shadows
taş parçası. In-Game asset. 2d. High contrast. No shadows
toprak bir zemine ihtiyacım var kafa karıştırmayacak sadece zemin görebi görecek çok ufak detaylar olsun sadece üstünde ve açık renk olsun. In-Game asset. 2d. High contrast. No shadows
ağın orta noktası resmin sol alt köşesi olan bir örüncek ağı çiz. In-Game asset. 2d. High contrast. No shadows