xxxxxxxxxx
164
var numItems = 2;
var faceArray = [];
var margin = 60;
var y = 0; // Y konumu başlangıçta sıfır
var startScreen, song, clickSound, endScreen; // Oyunda gözükecek ekrnlar ve sesler
var gameStarted = false; // Oyun başlangıç
var gameEnded = false; // Oyun bitiş
var timer; // Zamanlayıcı
var player; // mama kabı
var score = 0; // skor
var missedCats = 0;
var maxMissedCats = 3; // Oyuncunun kaybetmesi için çarpmaması gereken kedi sayısı
var fontJack;
var startButtonX = 220;
var startButtonY = 420;
var startButtonW = 160;
var startButtonH = 60;
function preload() {
startScreen = loadImage("catgameui.jpeg"); // Açılış ekranı
endScreen = loadImage("end.jpg"); // bitiş ekranı
song = loadSound("cat.mp3");
clickSound = loadSound("meow.mp3");
fontJack = loadFont("JackArmstrong.ttf");
}
function setup() {
createCanvas(600, 600);
timer = new Timer(); // Zamanlayıcıyı başlat
timer.setCountDown(60); // 60 saniyelik geri sayım
userStartAudio(); // Seslerin çalmaya başlaması
song.loop();
for (var i = 0; i < numItems; i++) {
// Kedileri oluştur
let newCat = new CatFace(); //
newCat.x = random(margin, width - margin); // rastgele X pozisyonu
newCat.y = random(-300, -500); // Kediyi ekrandan yukarıda at
faceArray.push(newCat);
}
player = new Player("mamakabi.png", width / 2 - 100, height - 50, 200, 100); // Mama kabı pozisyonu
}
function draw() {
background(255);
if (!gameStarted) {
player.hide(); // oyun başlangıcında mama kabını sakla
background(startScreen); // Açılış ekranını göster
return;
}
if (gameEnded) {
player.hide(); // Oyun bittiğinde mama kabını sakla
background(endScreen); // Bitiş ekranını göster
fill(0);
stroke(0);
textSize(75);
textAlign(CENTER, CENTER);
textFont(fontJack);
text(score, width / 2, height / 2 - 30);
return;
}
player.show(); // Oyun başladığında mama kabını göster
timer.draw(); // Zamanlayıcıyı göster
player.draw(); // Mama kabını göster
fill(0);
textSize(32);
textAlign(RIGHT);
textFont(fontJack);
text("Score: " + score, width - 20, 50); // Puan sağ üstte
text("Missed: " + missedCats, width - 20, 80); // Kaçırılan kedi sayısı
textAlign(LEFT);
textFont(fontJack);
text("Time: " + timer.getRemainingTime(), 20, 50); // Geriye kalan süre
for (let i = faceArray.length - 1; i >= 0; i--) {
faceArray[i].y += faceArray[i].speed;
if (faceArray[i].y > height) {
missedCats++;
faceArray[i].y = random(-300, -500); // Kediyi yukarıya taşı, yeniden at
faceArray[i].x = random(margin, width - margin); // X pozisyonunu rastgele belirle
}
if (checkCollision(faceArray[i], player)) {
// Eğer kedi ile mama kabı çarpışıyorsa
faceArray.splice(i, 1); // Kediyi kaldır
score++; // Puanı artır
clickSound.play(); // Kediyle mama kabı çarpışınca ses çal
let newCat = new CatFace(); // Yeni bir kedi oluştur
newCat.x = random(margin, width - margin); // X pozisyonunu rastgele seç
newCat.y = random(-300, -500); // Y pozisyonunu yukarıda başlat
faceArray.push(newCat);
}
faceArray[i].display();
}
if (missedCats >= maxMissedCats) {
gameEnded = true; // Oyunu bitir
}
}
function mousePressed() {
if (!gameStarted) {
// Eğer oyun başlamadıysa
if (
mouseX > startButtonX &&
mouseX < startButtonX + startButtonW &&
mouseY > startButtonY &&
mouseY < startButtonY + startButtonH
) {
// Başlat butonuna tıklanmışsa
clickSound.play(); // Tıklama sesini çal
gameStarted = true; // Oyunu başlat
player.setPosition(width / 2 - 100, height - 50); // Mama kabını konumlandır
timer.start(); // Zamanlayıcıyı başlat
}
}
if (gameEnded) {
// Eğer oyun bitmişse
if (mouseX > 220 && mouseX < 380 && mouseY > 420 && mouseY < 480) {
// Restart butonuna tıklanmışsa
resetGame(); // Oyunu sıfırla
}
}
}
function resetGame() {
player.show(); // Oyunu sıfırlarken mama kabını tekrar göster
player.setPosition(width / 2 - 100, height - 50); // Mama kabının canvas pozisyonu
score = 0; // Puanı sıfırla
missedCats = 0; // Kaçan kedi sayısını sıfırla
gameEnded = false;
gameStarted = false;
faceArray = []; // Kedileri sıfırla
timer.setCountDown(60); // Zamanlayıcı 60 saniye
timer.start(); // Zamanlayıcıyı başlat
for (var i = 0; i < numItems; i++) {
// Kedileri yeniden oluştur
let newCat = new CatFace();
newCat.x = random(margin, width - margin);
newCat.y = random(-300, -500);
faceArray.push(newCat);
}
}
function checkCollision(cat, player) {
let d = dist(cat.x, cat.y, player.x, player.y); // Kedi ile oyuncu arasındaki mesafe
return d < player.width / 2 + 20; // mesafe mama kabınun genişliğiyle kedinin mesafesinden küçükse çarpışma say
}