xxxxxxxxxx
let cageOpen = false;
let birdX = 300;
let birdY = 450;
let keyX = 100;
let keyY = 450; // Anahtar başlangıç konumu
let lockX, lockY; // Anahtar deliği konumu
let dragging = false;
let offsetX, offsetY;
let timer = 30;
let gameOver = false;
let gameStarted = false;
// Görseller
let keyImg, cageImg, birdImg, birdFly;
// Yazı Tipleri
let birdsunFont, brighamFont;
function preload() {
keyImg = loadImage('key.png'); // Anahtar
cageImg = loadImage('cage.png'); // Kafes
birdImg = loadImage('bird.png'); // Sabit kuş
birdFly = loadImage('birdFly1.png'); // Uçan kuş
// Yazı Tipleri
birdsunFont = loadFont('Birdsun.otf'); // SAVE THE BIRD, GAME OVER ve THE BIRD IS FREE yazı tipi
brighamFont = loadFont('BRIGHAM-Regular.ttf'); // TIME LEFT ve talimat yazıları
}
function setup() {
createCanvas(600, 600);
// Rastgele kilit konumu (kafesin sınırları içerisinde)
lockX = random(width / 2 - 70, width / 2 + 70); // X: Kafes genişliği içinde
lockY = random(height / 2 + 30, height / 2 + 120); // Y: Kafes yüksekliği içinde
}
function draw() {
background(255);
// Zamanlayıcı yazısı (sadece oyun başladıktan sonra görünür)
if (gameStarted) {
fill(0); // Siyah renk
textAlign(LEFT, CENTER);
textFont(brighamFont);
textSize(20);
text(`Time Left: ${timer}`, 10, 20);
}
if (gameOver) {
// Game Over yazısı (Birdsun fontu ile, siyah renk)
fill(0); // Siyah renk
textFont(birdsunFont);
textAlign(CENTER, CENTER);
textSize(64); // Daha büyük font boyutu
text("Game Over", width / 2, height / 2);
return;
}
if (cageOpen) {
// Kuş serbest, uçuyor
image(birdFly, birdX, birdY, 80, 80);
birdY -= 2; // Kuş yukarı hareket eder
birdX += random(-1, 1);
// The Bird is Free! yazısı (Birdsun fontu, SAVE THE BIRD ile aynı renkte)
fill(102, 204, 204); // SAVE THE BIRD ile aynı renk
textFont(birdsunFont);
textSize(64); // Daha büyük font boyutu
textAlign(CENTER, CENTER);
text("The Bird is Free!", width / 2, height / 2);
} else {
// Kafesi ortala ve büyüt
image(cageImg, width / 2 - 100, height / 2 - 70, 200, 250);
// Anahtar
image(keyImg, keyX, keyY, 70, 35);
// Oyuna başlanmadıysa başlık ve talimatlar
if (!gameStarted) {
// SAVE THE BIRD (Birdsun.otf fontu ile)
fill(102, 204, 204); // Açık mavi renk
textFont(birdsunFont);
textAlign(CENTER, CENTER);
textSize(56); // Biraz daha büyük font boyutu
text("SAVE THE BIRD", width / 2, 100);
// İlk talimat (BRIGHAM-Regular fontu ile)
fill(0);
textFont(brighamFont);
textSize(16);
text("Drag the key to the cage to start", width / 2, 150);
// İkinci talimat (BRIGHAM-Regular fontu ile, alta yerleştirildi)
textSize(14);
text("Find the key hole", width / 2, height - 30);
}
// Sabit kuş
image(birdImg, width / 2 - 35, height / 2 + 50, 70, 70);
}
}
function mousePressed() {
// Anahtarı sürüklemeye başlama kontrolü
if (mouseX > keyX && mouseX < keyX + 70 && mouseY > keyY && mouseY < keyY + 35) {
dragging = true;
if (!gameStarted) {
gameStarted = true; // Oyun başlıyor
// Timer başlatma
setInterval(() => {
if (!cageOpen && !gameOver) {
timer--;
if (timer <= 0) gameOver = true;
}
}, 1000);
}
offsetX = mouseX - keyX;
offsetY = mouseY - keyY;
}
}
function mouseDragged() {
if (dragging) {
keyX = mouseX - offsetX;
keyY = mouseY - offsetY;
}
}
function mouseReleased() {
dragging = false;
// Anahtar deliği kontrolü (görünmese bile çalışır)
if (keyX > lockX - 20 && keyX < lockX + 20 && keyY > lockY - 20 && keyY < lockY + 20) {
cageOpen = true;
}
}