User prompt
zehirli karıncalar kendi etraflarında dönmesin dümdüz yürüsünler karşıya doğru ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
oyun zemini tek bir assets olsun ve sanki bahçedeki bir topraklık alan gibi
User prompt
böcekler güvenli bölgede doğamaz yada içine giremez
User prompt
sağa doğru kırmızı şerit değilde zehirli karınca sürü geçsin önceki değişikliği kaldır sürü karşıya geçene kadar ekranda kalsın . sürü safe zonun içinden geçemez ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
birde random bir şekilde 20 saniyede bir ekranda danger zonelar belirsin soldan sağa uzun bir şerit şeklide ve üzerinde ayak izleri yürüsün 10 saniye boyunca oyunu karşıdan karşıya geçen bir insan varmış gibi olsun danger zona değerse de ölsün ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
safe zone beyaz olsun yeşil değil ve iki kat büyüt. birde ekrandaki toplam böcek sayısı hiç azalmasın .
User prompt
safe zone bir assets olsun ben görsel eklerim
User prompt
bir noktaya tıkladığımda o noktaya doğru hareket etmeye devam etsin hareket ettiği esnada çift tıklıyorsam ağ atsın çift tıkladığım noktaya doğru da ilerlemeye devam etsin aynı zamanda durmasın yani ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
aynı noktaya ağ koyulamasın tekrar tekrar
User prompt
safe zone örümcek ağı görselliğinde olsun
User prompt
10 saniye kalınca zamanlayıcı yanıp sönmeye başlasın ve alarm sesi çalsın ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
oyun güvenli bölgede başlasın güvenli bölgenin dışına çıkınca geri sayım başlasın yanıp sönsün sağ üst köşede ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
diğer böcekler güvenli bölgeye giremesin
User prompt
böcekler birazdaha hareketli olsun her bölümde görev olsun örneğin bu bölümde 3 kelebek yakala. eğer yakalarsa sonraki bölüme geçsin. oynda örümceğin güvenli bölgesi olsun sol alt köşede ve 30 saniyeden fazla o bölgenin dışında duramasın durursa oyun bitsin süre azalırken aksiyon sesi duyulsun 5 saniye kala ve örümceği ve 2 kat hızlı hareket ettir ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
ekranda maksimum son attığım 30 ağ kalsın eski ağlar silinsin ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
böceklerin ve örümceğin boyutlarını iki katına çıkar
User prompt
maksimum 30 tane ağ atabileyim her böcek ağa değdiğinde artı 10 ağ hakkı kazanayım. eğer böceklere ben doğrudan değersem oyun bitsin
User prompt
attığım ağlara diğer böcekler değilce ölsünler başka yerde başka böcekler doğsun ve puan kazanayım ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
baştan başlıyoruz bebek değil örümcek 🕷️ OYUN FİKRİ: "Web Crawler" (2D Top-Down Örümcek Oyunu) 🎮 GENEL KONSEPT Oyuncu, üstten görünümlü bir haritada bir örümceği kontrol eder. Amaç: ağ örmek, böcekleri yakalamak, engellerden kaçmak ve mümkün olduğunca uzun süre hayatta kalmaktır. 🧩 OYUN MEKANİKLERİ 🎯 Kontroller: Oyuncu örümceği parmağıyla ya da joystick/sürükleme sistemiyle hareket ettirir. Ekrana çift tıklandığında ağ bırakır. Ağ parçaları birbirine bağlanarak tuzak oluşturur (örnek: üç noktayı birleştirince ağ kapanır). 🐛 Düşmanlar / Avlar: Uçuşan sinekler, kelebekler, böcekler haritada rastgele dolaşır. Örümceğin kurduğu ağlara yakalanan böcekler puan kazandırır. Bazı böcekler kaçabilir veya ağı parçalayabilir (zorluk seviyesi artınca). ⚠️ Engeller: Yapışkan yüzeyler: Örümcek yavaşlar. Zehirli böcekler: Yakalanırsa can gider. Ayak sesi / terlik gibi öğeler: Oyuncuyu ezebilir. 🕸️ ORTAM TASARIMI 📍 Harita Türleri: Ev odası: Masa ayakları, duvar köşeleri, prizler. Bahçe: Çalılar, yapraklar, taşlar. Depo: Koli kutuları, raflar, örümcek ağına uygun çubuk yapılar. 🎨 Görsel Stil: Minimalist, hafif gerçekçi ama sevimli (Tim Burton stili değil). Pastel veya kontrastlı tonlar (örümcek net seçilmeli). 2D Sprite'larla çizilmiş, tile map destekli top-down harita. 📈 İLERLEME SİSTEMİ Her haritada hedef: Belirli sayıda böcek yakala, belirli ağ yapısını kur, düşmandan kaç. Seviye geçtikçe yeni zorluklar: Ağların belirli sürede kaybolması Gelişmiş düşman AI Belirli alanları ağ ile kapatma görevleri Puan Sistemi: Her böcek: +10 Ağ yapısı tamamlama: +50 Can kaybı: -1 ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
oyun şöyle olacak bir çocuk odasına yukıardan bakıyoruz gibi , bir yatak var masa var sandalye var oyuncalar var çöp kovası var vs aklına ne geliyorsa odad olacak odanın bir köşesinde biberon olacak bebek odada yukardan gördüğümüz kadarıyla emekliyor olacak ekrana tıkladıkça rastgele bir yöne ilerliyor olacak ve biberona ulaşmaya çalışıyor olacak ↪💡 Consider importing and using the following plugins: @upit/tween.v1
User prompt
🎨 Oyun için Oda Tasarımı Promtu (Üstten görünüm / Top-down 2D Perspective) Tasarım Konsepti: Bir bebek odası tasarımı yap. Odaya yukarıdan (top-down) bakıyoruz, yani tüm mobilya ve nesneler yukarıdan görünüyor. Renkler yumuşak, çocuk odasına uygun pastel tonlarında olmalı. Oda sıcak, sevimli, yumuşak hatlara sahip. Zemin parke veya yumuşak bebek halısı olabilir. Işık loş değil, tatlı ve huzurlu. Oda simetrik değil, her şey doğal dağılmış gibi. 🛏️ Odanın Genel Elemanları 🧸 Mobilyalar: Sol üst köşede geniş, yumuşak kenarlı bir çocuk yatağı (ranzasız, bebek uyku yatağı). Yatağın kenarında bir küçük peluş oyuncak (ayı, tavşan olabilir). Sağ üstte, açık çekmeceli bir bebek dolabı. Sol alt köşede yuvarlak kenarlı bebek masası, üstünde birkaç renkli eşya (çizim kalemleri, kitapçık). Masanın yanında hafif yana dönmüş bir küçük sandalye. 🧸 Oyuncaklar (Odanın çeşitli yerlerine dağılmış): Orta alana yakın bir yerde lego parçaları (renkli, dağılmış). Duvara yakın yerde top (yuvarlak, renkli). Halının bir köşesinde küçük bir araba oyuncağı. Kapı kenarında tahta bloklar ile yapılmış minik bir kule. Rastgele yerlere dağılmış oyuncak kitaplar.
User prompt
oda zeminini bir çocuk odası zemini olarak tasarla
User prompt
çarpılacak nesnelerin boyutunu 2 katına çıkart
User prompt
oyun seslerini duymuyorum bie sorun mu var
User prompt
ok işaretleri oyun sırasında gözükmyor oyunu pause edince gözüküyor neden öyle onu düzelt
/****
* 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: 0.5
});
self.speed = 2;
self.velocityX = 0;
self.velocityY = 0;
self.isMoving = false;
self.moveTimer = 0;
self.maxMoveTime = 120; // 2 seconds at 60fps
self.crawlToRandomDirection = function () {
// Choose random direction
var angle = Math.random() * Math.PI * 2;
self.velocityX = Math.cos(angle) * self.speed;
self.velocityY = Math.sin(angle) * self.speed;
self.isMoving = true;
self.moveTimer = 0;
// Add slight rotation to show movement direction
tween(babyGraphics, {
rotation: angle + Math.PI / 2
}, {
duration: 200
});
};
self.update = function () {
if (self.isMoving) {
// Move baby
self.x += self.velocityX;
self.y += self.velocityY;
self.moveTimer++;
// Keep baby within room bounds
if (self.x <= 40) {
self.x = 40;
self.velocityX = Math.abs(self.velocityX);
}
if (self.x >= 2048 - 40) {
self.x = 2048 - 40;
self.velocityX = -Math.abs(self.velocityX);
}
if (self.y <= 40) {
self.y = 40;
self.velocityY = Math.abs(self.velocityY);
}
if (self.y >= 2732 - 40) {
self.y = 2732 - 40;
self.velocityY = -Math.abs(self.velocityY);
}
// Stop moving after timer expires
if (self.moveTimer >= self.maxMoveTime) {
self.isMoving = false;
self.velocityX = 0;
self.velocityY = 0;
}
}
};
return self;
});
var Bottle = Container.expand(function () {
var self = Container.call(this);
var bottleGraphics = self.attachAsset('bottle', {
anchorX: 0.5,
anchorY: 0.5
});
// Add a subtle pulsing animation to make it more noticeable
self.pulseTimer = 0;
self.update = function () {
self.pulseTimer += 0.1;
bottleGraphics.scaleX = 1.2 + Math.sin(self.pulseTimer) * 0.2;
bottleGraphics.scaleY = 1.2 + Math.sin(self.pulseTimer) * 0.2;
// Add gentle glow effect by changing tint
var glowIntensity = 0.8 + Math.sin(self.pulseTimer * 2) * 0.2;
bottleGraphics.alpha = glowIntensity;
};
return self;
});
var NurseryFurniture = Container.expand(function (type) {
var self = Container.call(this);
var assetId = type || 'toy_box';
var objectGraphics = self.attachAsset(assetId, {
anchorX: 0.5,
anchorY: 0.5
});
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
backgroundColor: 0xfff8dc // Warm cream color for nursery
});
/****
* Game Code
****/
// Sound effects
// Nursery furniture
// Bottle target
// Baby crawling
// Floor tiles for nursery
// Set warm nursery background color
game.setBackgroundColor(0xfff8dc);
// Create soft pastel floor tiles for nursery
var floorTiles = [];
var tileColors = ['floor_tile_pink', 'floor_tile_blue', 'floor_tile_yellow', 'floor_tile_green'];
var tilesX = Math.ceil(2048 / 200);
var tilesY = Math.ceil(2732 / 200);
for (var row = 0; row < tilesY; row++) {
for (var col = 0; col < tilesX; col++) {
var colorIndex = (row + col) % tileColors.length;
var tile = LK.getAsset(tileColors[colorIndex], {
anchorX: 0,
anchorY: 0
});
tile.x = col * 200;
tile.y = row * 200;
tile.alpha = 0.4; // Semi-transparent soft floor
floorTiles.push(tile);
game.addChild(tile);
}
}
// Game variables
var baby;
var nurseryItems = [];
var bottle;
var gameStarted = false;
// Create baby at center of room
baby = game.addChild(new Baby());
baby.x = 1024;
baby.y = 1366;
// Create instruction text
var instructionTxt = new Text2('Tap screen to help baby crawl!', {
size: 80,
fill: 0x666666
});
instructionTxt.anchor.set(0.5, 0.5);
instructionTxt.x = 1024;
instructionTxt.y = 200;
game.addChild(instructionTxt);
// Function to create nursery furniture and items
function createNurseryRoom() {
// Clear existing items
for (var k = 0; k < nurseryItems.length; k++) {
if (nurseryItems[k] && nurseryItems[k].destroy) {
nurseryItems[k].destroy();
}
}
nurseryItems = [];
// Baby bed in top left corner
var bed = new NurseryFurniture('bed');
bed.x = 250;
bed.y = 300;
nurseryItems.push(bed);
game.addChild(bed);
// Dresser in top right
var dresser = new NurseryFurniture('dresser');
dresser.x = 1800;
dresser.y = 350;
nurseryItems.push(dresser);
game.addChild(dresser);
// Table in bottom left
var table = new NurseryFurniture('table');
table.x = 300;
table.y = 2400;
nurseryItems.push(table);
game.addChild(table);
// Chair next to table
var chair = new NurseryFurniture('chair');
chair.x = 450;
chair.y = 2350;
nurseryItems.push(chair);
game.addChild(chair);
// Toy box in center area
var toyBox = new NurseryFurniture('toy_box');
toyBox.x = 1200;
toyBox.y = 1500;
nurseryItems.push(toyBox);
game.addChild(toyBox);
// Scattered toys around the room
var toyPositions = [{
x: 600,
y: 800,
type: 'toy_ball'
}, {
x: 1400,
y: 900,
type: 'toy_car'
}, {
x: 800,
y: 1800,
type: 'toy_block'
}, {
x: 1600,
y: 1200,
type: 'toy_ball'
}, {
x: 400,
y: 1600,
type: 'toy_car'
}, {
x: 1500,
y: 2100,
type: 'toy_block'
}, {
x: 900,
y: 2300,
type: 'book'
}, {
x: 1300,
y: 700,
type: 'book'
}, {
x: 500,
y: 1200,
type: 'book'
}];
for (var i = 0; i < toyPositions.length; i++) {
var toy = new NurseryFurniture(toyPositions[i].type);
toy.x = toyPositions[i].x;
toy.y = toyPositions[i].y;
nurseryItems.push(toy);
game.addChild(toy);
}
// Trash can in corner
var trashCan = new NurseryFurniture('trash_can');
trashCan.x = 1850;
trashCan.y = 2500;
nurseryItems.push(trashCan);
game.addChild(trashCan);
}
// Create nursery room
createNurseryRoom();
// Place bottle in a corner (target for baby)
bottle = new Bottle();
// Place bottle in one of the corners, away from baby
var corners = [{
x: 200,
y: 200
},
// top left
{
x: 1848,
y: 200
},
// top right
{
x: 200,
y: 2532
},
// bottom left
{
x: 1848,
y: 2532
} // bottom right
];
var randomCorner = corners[Math.floor(Math.random() * corners.length)];
bottle.x = randomCorner.x;
bottle.y = randomCorner.y;
game.addChild(bottle);
// Touch input - make baby crawl in random direction
game.down = function (x, y, obj) {
// Make baby crawl towards tap or in random direction
baby.crawlToRandomDirection();
// Play crawling sound
if (LK.getSound('crawl')) {
LK.getSound('crawl').play();
}
// Hide instruction text after first tap
if (instructionTxt && instructionTxt.parent) {
tween(instructionTxt, {
alpha: 0
}, {
duration: 1000,
onFinish: function onFinish() {
instructionTxt.destroy();
}
});
}
gameStarted = true;
};
// Game update loop
game.update = function () {
// Check if baby reached the bottle
if (bottle && baby.intersects(bottle)) {
// Baby got the bottle!
if (LK.getSound('bottle_get')) {
LK.getSound('bottle_get').play();
}
// Flash screen with happy colors
LK.effects.flashScreen(0xffff00, 1500); // Yellow flash
// Show success message
LK.showYouWin();
return;
}
// Optional: Add some gentle background movement to toys
if (LK.ticks % 300 === 0) {
// Every 5 seconds
for (var i = 0; i < nurseryItems.length; i++) {
var item = nurseryItems[i];
if (Math.random() < 0.3) {
// 30% chance
// Gentle wiggle animation
tween(item, {
rotation: item.rotation + (Math.random() - 0.5) * 0.2
}, {
duration: 1000,
easing: tween.easeInOut
});
}
}
}
};
// Start gentle lullaby music
LK.playMusic('lullaby', {
loop: true
}); ===================================================================
--- original.js
+++ change.js
@@ -11,87 +11,59 @@
var babyGraphics = self.attachAsset('baby', {
anchorX: 0.5,
anchorY: 0.5
});
- self.speed = 3;
+ self.speed = 2;
self.velocityX = 0;
self.velocityY = 0;
- self.directionChangeTimer = 0;
- self.directions = [{
- x: 1,
- y: 0
- },
- // right
- {
- x: -1,
- y: 0
- },
- // left
- {
- x: 0,
- y: 1
- },
- // down
- {
- x: 0,
- y: -1
- },
- // up
- {
- x: 1,
- y: 1
- },
- // diagonal down-right
- {
- x: -1,
- y: 1
- },
- // diagonal down-left
- {
- x: 1,
- y: -1
- },
- // diagonal up-right
- {
- x: -1,
- y: -1
- } // diagonal up-left
- ];
- self.currentDirection = 0;
- self.nextDirection = 1;
- self.setRandomDirection = function () {
- var newDirection = Math.floor(Math.random() * self.directions.length);
- self.currentDirection = newDirection;
- var dir = self.directions[self.currentDirection];
- self.velocityX = dir.x * self.speed;
- self.velocityY = dir.y * self.speed;
- // Set next random direction
- self.nextDirection = Math.floor(Math.random() * self.directions.length);
+ self.isMoving = false;
+ self.moveTimer = 0;
+ self.maxMoveTime = 120; // 2 seconds at 60fps
+ self.crawlToRandomDirection = function () {
+ // Choose random direction
+ var angle = Math.random() * Math.PI * 2;
+ self.velocityX = Math.cos(angle) * self.speed;
+ self.velocityY = Math.sin(angle) * self.speed;
+ self.isMoving = true;
+ self.moveTimer = 0;
+ // Add slight rotation to show movement direction
+ tween(babyGraphics, {
+ rotation: angle + Math.PI / 2
+ }, {
+ duration: 200
+ });
};
self.update = function () {
- // Move baby
- self.x += self.velocityX;
- self.y += self.velocityY;
- // Keep baby within room bounds
- if (self.x <= 60) {
- self.x = 60;
- self.setRandomDirection();
+ if (self.isMoving) {
+ // Move baby
+ self.x += self.velocityX;
+ self.y += self.velocityY;
+ self.moveTimer++;
+ // Keep baby within room bounds
+ if (self.x <= 40) {
+ self.x = 40;
+ self.velocityX = Math.abs(self.velocityX);
+ }
+ if (self.x >= 2048 - 40) {
+ self.x = 2048 - 40;
+ self.velocityX = -Math.abs(self.velocityX);
+ }
+ if (self.y <= 40) {
+ self.y = 40;
+ self.velocityY = Math.abs(self.velocityY);
+ }
+ if (self.y >= 2732 - 40) {
+ self.y = 2732 - 40;
+ self.velocityY = -Math.abs(self.velocityY);
+ }
+ // Stop moving after timer expires
+ if (self.moveTimer >= self.maxMoveTime) {
+ self.isMoving = false;
+ self.velocityX = 0;
+ self.velocityY = 0;
+ }
}
- if (self.x >= 2048 - 60) {
- self.x = 2048 - 60;
- self.setRandomDirection();
- }
- if (self.y <= 60) {
- self.y = 60;
- self.setRandomDirection();
- }
- if (self.y >= 2732 - 60) {
- self.y = 2732 - 60;
- self.setRandomDirection();
- }
};
- // Initialize with random direction
- self.setRandomDirection();
return self;
});
var Bottle = Container.expand(function () {
var self = Container.call(this);
@@ -102,101 +74,44 @@
// Add a subtle pulsing animation to make it more noticeable
self.pulseTimer = 0;
self.update = function () {
self.pulseTimer += 0.1;
- bottleGraphics.scaleX = 1 + Math.sin(self.pulseTimer) * 0.1;
- bottleGraphics.scaleY = 1 + Math.sin(self.pulseTimer) * 0.1;
+ bottleGraphics.scaleX = 1.2 + Math.sin(self.pulseTimer) * 0.2;
+ bottleGraphics.scaleY = 1.2 + Math.sin(self.pulseTimer) * 0.2;
+ // Add gentle glow effect by changing tint
+ var glowIntensity = 0.8 + Math.sin(self.pulseTimer * 2) * 0.2;
+ bottleGraphics.alpha = glowIntensity;
};
return self;
});
-var DirectionIndicator = Container.expand(function () {
+var NurseryFurniture = Container.expand(function (type) {
var self = Container.call(this);
- var currentArrow = null;
- self.setDirection = function (directionIndex) {
- // Remove current arrow if it exists
- if (currentArrow) {
- self.removeChild(currentArrow);
- currentArrow = null;
- }
- // Create appropriate arrow based on direction
- var arrowAsset = '';
- var rotation = 0;
- switch (directionIndex) {
- case 0:
- // right
- arrowAsset = 'arrow_right';
- rotation = 0;
- break;
- case 1:
- // left
- arrowAsset = 'arrow_right';
- rotation = Math.PI;
- break;
- case 2:
- // down
- arrowAsset = 'arrow_down';
- rotation = 0;
- break;
- case 3:
- // up
- arrowAsset = 'arrow_down';
- rotation = Math.PI;
- break;
- case 4:
- // diagonal down-right
- arrowAsset = 'arrow_diagonal';
- rotation = Math.PI / 4;
- break;
- case 5:
- // diagonal down-left
- arrowAsset = 'arrow_diagonal';
- rotation = 3 * Math.PI / 4;
- break;
- case 6:
- // diagonal up-right
- arrowAsset = 'arrow_diagonal';
- rotation = -Math.PI / 4;
- break;
- case 7:
- // diagonal up-left
- arrowAsset = 'arrow_diagonal';
- rotation = -3 * Math.PI / 4;
- break;
- }
- currentArrow = self.attachAsset(arrowAsset, {
- anchorX: 0.5,
- anchorY: 0.5
- });
- currentArrow.rotation = rotation;
- };
- return self;
-});
-var RoomObject = Container.expand(function (type) {
- var self = Container.call(this);
- var assetId = type || 'obstacle';
+ var assetId = type || 'toy_box';
var objectGraphics = self.attachAsset(assetId, {
anchorX: 0.5,
anchorY: 0.5
});
- // Static room objects don't move
- self.update = function () {
- // Room objects are static, no movement needed
- };
return self;
});
/****
* Initialize Game
****/
var game = new LK.Game({
- backgroundColor: 0x87CEEB
+ backgroundColor: 0xfff8dc // Warm cream color for nursery
});
/****
* Game Code
****/
-game.setBackgroundColor(0xfdf5e6);
-// Create colorful floor tiles for child's room
+// Sound effects
+// Nursery furniture
+// Bottle target
+// Baby crawling
+// Floor tiles for nursery
+// Set warm nursery background color
+game.setBackgroundColor(0xfff8dc);
+// Create soft pastel floor tiles for nursery
var floorTiles = [];
var tileColors = ['floor_tile_pink', 'floor_tile_blue', 'floor_tile_yellow', 'floor_tile_green'];
var tilesX = Math.ceil(2048 / 200);
var tilesY = Math.ceil(2732 / 200);
@@ -208,198 +123,204 @@
anchorY: 0
});
tile.x = col * 200;
tile.y = row * 200;
- tile.alpha = 0.3; // Make tiles semi-transparent so objects are visible
+ tile.alpha = 0.4; // Semi-transparent soft floor
floorTiles.push(tile);
game.addChild(tile);
}
}
// Game variables
var baby;
-var roomObjects = [];
-var gameStarted = false;
-var directionIndicator;
+var nurseryItems = [];
var bottle;
-var currentLevel = 1;
-// Create baby
+var gameStarted = false;
+// Create baby at center of room
baby = game.addChild(new Baby());
baby.x = 1024;
baby.y = 1366;
-// Score display
-var scoreTxt = new Text2('0', {
- size: 120,
- fill: 0x000000
+// Create instruction text
+var instructionTxt = new Text2('Tap screen to help baby crawl!', {
+ size: 80,
+ fill: 0x666666
});
-scoreTxt.anchor.set(0.5, 0);
-LK.gui.top.addChild(scoreTxt);
-// Create direction indicator in top right corner
-directionIndicator = new DirectionIndicator();
-directionIndicator.x = 1848;
-directionIndicator.y = 200;
-LK.gui.addChild(directionIndicator);
-// Create room objects (furniture and toys for nursery)
-function createRoomObjects() {
- // Clear existing objects
- for (var k = 0; k < roomObjects.length; k++) {
- if (roomObjects[k] && roomObjects[k].destroy) {
- roomObjects[k].destroy();
+instructionTxt.anchor.set(0.5, 0.5);
+instructionTxt.x = 1024;
+instructionTxt.y = 200;
+game.addChild(instructionTxt);
+// Function to create nursery furniture and items
+function createNurseryRoom() {
+ // Clear existing items
+ for (var k = 0; k < nurseryItems.length; k++) {
+ if (nurseryItems[k] && nurseryItems[k].destroy) {
+ nurseryItems[k].destroy();
}
}
- roomObjects = [];
+ nurseryItems = [];
// Baby bed in top left corner
- var bed = new RoomObject('obstacle');
- bed.x = 300;
- bed.y = 400;
- roomObjects.push(bed);
+ var bed = new NurseryFurniture('bed');
+ bed.x = 250;
+ bed.y = 300;
+ nurseryItems.push(bed);
game.addChild(bed);
- // Teddy bear next to bed
- var teddyBear = new RoomObject('toy');
- teddyBear.x = 500;
- teddyBear.y = 400;
- roomObjects.push(teddyBear);
- game.addChild(teddyBear);
- // Baby cabinet in top right
- var cabinet = new RoomObject('obstacle');
- cabinet.x = 1700;
- cabinet.y = 400;
- roomObjects.push(cabinet);
- game.addChild(cabinet);
- // Baby table in bottom left
- var table = new RoomObject('obstacle');
+ // Dresser in top right
+ var dresser = new NurseryFurniture('dresser');
+ dresser.x = 1800;
+ dresser.y = 350;
+ nurseryItems.push(dresser);
+ game.addChild(dresser);
+ // Table in bottom left
+ var table = new NurseryFurniture('table');
table.x = 300;
- table.y = 2200;
- roomObjects.push(table);
+ table.y = 2400;
+ nurseryItems.push(table);
game.addChild(table);
- // Chair next to table (slightly angled)
- var chair = new RoomObject('toy');
- chair.x = 500;
- chair.y = 2300;
- roomObjects.push(chair);
+ // Chair next to table
+ var chair = new NurseryFurniture('chair');
+ chair.x = 450;
+ chair.y = 2350;
+ nurseryItems.push(chair);
game.addChild(chair);
- // Scattered lego pieces in center area
- var lego1 = new RoomObject('toy');
- lego1.x = 1000;
- lego1.y = 1200;
- roomObjects.push(lego1);
- game.addChild(lego1);
- var lego2 = new RoomObject('toy');
- lego2.x = 1100;
- lego2.y = 1300;
- roomObjects.push(lego2);
- game.addChild(lego2);
- // Colorful ball near wall
- var ball = new RoomObject('ball');
- ball.x = 1600;
- ball.y = 1000;
- roomObjects.push(ball);
- game.addChild(ball);
- // Toy car in corner of carpet
- var toyCar = new RoomObject('toy');
- toyCar.x = 400;
- toyCar.y = 1800;
- roomObjects.push(toyCar);
- game.addChild(toyCar);
- // Wooden blocks tower near door
- var blockTower = new RoomObject('obstacle');
- blockTower.x = 200;
- blockTower.y = 1600;
- roomObjects.push(blockTower);
- game.addChild(blockTower);
- // Scattered toy books
- var book1 = new RoomObject('toy');
- book1.x = 800;
- book1.y = 1800;
- roomObjects.push(book1);
- game.addChild(book1);
- var book2 = new RoomObject('toy');
- book2.x = 1400;
- book2.y = 2000;
- roomObjects.push(book2);
- game.addChild(book2);
- var book3 = new RoomObject('toy');
- book3.x = 1200;
- book3.y = 800;
- roomObjects.push(book3);
- game.addChild(book3);
+ // Toy box in center area
+ var toyBox = new NurseryFurniture('toy_box');
+ toyBox.x = 1200;
+ toyBox.y = 1500;
+ nurseryItems.push(toyBox);
+ game.addChild(toyBox);
+ // Scattered toys around the room
+ var toyPositions = [{
+ x: 600,
+ y: 800,
+ type: 'toy_ball'
+ }, {
+ x: 1400,
+ y: 900,
+ type: 'toy_car'
+ }, {
+ x: 800,
+ y: 1800,
+ type: 'toy_block'
+ }, {
+ x: 1600,
+ y: 1200,
+ type: 'toy_ball'
+ }, {
+ x: 400,
+ y: 1600,
+ type: 'toy_car'
+ }, {
+ x: 1500,
+ y: 2100,
+ type: 'toy_block'
+ }, {
+ x: 900,
+ y: 2300,
+ type: 'book'
+ }, {
+ x: 1300,
+ y: 700,
+ type: 'book'
+ }, {
+ x: 500,
+ y: 1200,
+ type: 'book'
+ }];
+ for (var i = 0; i < toyPositions.length; i++) {
+ var toy = new NurseryFurniture(toyPositions[i].type);
+ toy.x = toyPositions[i].x;
+ toy.y = toyPositions[i].y;
+ nurseryItems.push(toy);
+ game.addChild(toy);
+ }
+ // Trash can in corner
+ var trashCan = new NurseryFurniture('trash_can');
+ trashCan.x = 1850;
+ trashCan.y = 2500;
+ nurseryItems.push(trashCan);
+ game.addChild(trashCan);
}
-createRoomObjects();
-// Create bottle at random position
+// Create nursery room
+createNurseryRoom();
+// Place bottle in a corner (target for baby)
bottle = new Bottle();
-do {
- bottle.x = 150 + Math.random() * (2048 - 300);
- bottle.y = 150 + Math.random() * (2732 - 300);
-} while (Math.abs(bottle.x - 1024) < 200 && Math.abs(bottle.y - 1366) < 200);
+// Place bottle in one of the corners, away from baby
+var corners = [{
+ x: 200,
+ y: 200
+},
+// top left
+{
+ x: 1848,
+ y: 200
+},
+// top right
+{
+ x: 200,
+ y: 2532
+},
+// bottom left
+{
+ x: 1848,
+ y: 2532
+} // bottom right
+];
+var randomCorner = corners[Math.floor(Math.random() * corners.length)];
+bottle.x = randomCorner.x;
+bottle.y = randomCorner.y;
game.addChild(bottle);
-// Initialize direction indicator to show baby's next direction
-directionIndicator.setDirection(baby.nextDirection);
-// Input handling - tap to change direction
+// Touch input - make baby crawl in random direction
game.down = function (x, y, obj) {
- if (baby) {
- baby.currentDirection = baby.nextDirection;
- var dir = baby.directions[baby.currentDirection];
- baby.velocityX = dir.x * baby.speed;
- baby.velocityY = dir.y * baby.speed;
- // Set new next direction
- baby.nextDirection = Math.floor(Math.random() * baby.directions.length);
- directionIndicator.setDirection(baby.nextDirection);
- LK.getSound('jump').play();
+ // Make baby crawl towards tap or in random direction
+ baby.crawlToRandomDirection();
+ // Play crawling sound
+ if (LK.getSound('crawl')) {
+ LK.getSound('crawl').play();
}
+ // Hide instruction text after first tap
+ if (instructionTxt && instructionTxt.parent) {
+ tween(instructionTxt, {
+ alpha: 0
+ }, {
+ duration: 1000,
+ onFinish: function onFinish() {
+ instructionTxt.destroy();
+ }
+ });
+ }
gameStarted = true;
};
// Game update loop
game.update = function () {
- if (!gameStarted) {
- // Update direction indicator even before game starts
- directionIndicator.setDirection(baby.nextDirection);
+ // Check if baby reached the bottle
+ if (bottle && baby.intersects(bottle)) {
+ // Baby got the bottle!
+ if (LK.getSound('bottle_get')) {
+ LK.getSound('bottle_get').play();
+ }
+ // Flash screen with happy colors
+ LK.effects.flashScreen(0xffff00, 1500); // Yellow flash
+ // Show success message
+ LK.showYouWin();
return;
}
- // Check collisions with room objects
- for (var i = 0; i < roomObjects.length; i++) {
- var roomObj = roomObjects[i];
- if (baby.intersects(roomObj)) {
- LK.getSound('collision').play();
- LK.showGameOver();
- return;
+ // Optional: Add some gentle background movement to toys
+ if (LK.ticks % 300 === 0) {
+ // Every 5 seconds
+ for (var i = 0; i < nurseryItems.length; i++) {
+ var item = nurseryItems[i];
+ if (Math.random() < 0.3) {
+ // 30% chance
+ // Gentle wiggle animation
+ tween(item, {
+ rotation: item.rotation + (Math.random() - 0.5) * 0.2
+ }, {
+ duration: 1000,
+ easing: tween.easeInOut
+ });
+ }
}
}
- // Check bottle collection
- if (bottle && baby.intersects(bottle)) {
- LK.getSound('collect').play();
- bottle.destroy();
- bottle = null;
- // Progress to next level
- currentLevel++;
- LK.setScore(LK.getScore() + 100); // Bonus points for collecting bottle
- scoreTxt.setText(LK.getScore());
- // Clear current room objects
- for (var j = 0; j < roomObjects.length; j++) {
- roomObjects[j].destroy();
- }
- roomObjects = [];
- // Create new room layout
- createRoomObjects();
- // Create new bottle
- bottle = new Bottle();
- do {
- bottle.x = 150 + Math.random() * (2048 - 300);
- bottle.y = 150 + Math.random() * (2732 - 300);
- } while (Math.abs(bottle.x - baby.x) < 200 && Math.abs(bottle.y - baby.y) < 200);
- game.addChild(bottle);
- // Reset baby to center
- baby.x = 1024;
- baby.y = 1366;
- baby.setRandomDirection();
- }
- // Update direction indicator
- directionIndicator.setDirection(baby.nextDirection);
- // 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', {
+// Start gentle lullaby music
+LK.playMusic('lullaby', {
loop: true
});
\ 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