xxxxxxxxxx
let x = 400; // Karakterin başlangıç pozisyonu (ortada)
let y = 400;
let j = false;
let increment = 4;
let increment2 = 6;
let increment3 = 7;
let increment4 = 3;
let myArrayR = [];
let myArrayU = [];
let myArrayD = [];
let i = 0;
let mySound, mySound1, img;
let musicPlaying = false;
let errors = [];
let numErrors = 7; // Kaç tane hata sembolü olacağını belirleyin
let score = 0; // Skor değişkeni
let startTime; // Oyun başlangıç zamanı
let scene = 0;
let scene1_bg;
let scene2_bg;
let start_btn, restart_btn;
let game_bg; // Oyun arkaplanı için değişken
function preload() {
soundFormats('mp3', 'ogg');
mySound = loadSound('CUTE-HAPPY-FUN.mp3');
mySound1 = loadSound('gameover.mp3');
scene1_bg = loadImage("start_bg.jpg");
scene2_bg = loadImage("bg_fail.jpg");
start_btn = loadImage("btn_start.png");
restart_btn = loadImage("btn_restart.png");
game_bg = loadImage("bg.jpg"); // Oyun arkaplanı resmini yükle
}
function setup() {
img = loadImage('hero2.png');
createCanvas(800, 800); // Updated canvas size
imageMode(CENTER);
myArrayR[0] = loadImage('herow.png');
myArrayR[1] = loadImage('heros.png');
myArrayR[2] = loadImage('heroa.png');
myArrayR[3] = loadImage('herod.png');
myArrayU[0] = loadImage('herow.png');
myArrayU[1] = loadImage('heros.png');
myArrayU[2] = loadImage('heroa.png');
myArrayU[3] = loadImage('herod.png');
myArrayD[0] = loadImage('herow.png');
myArrayD[1] = loadImage('heros.png');
myArrayD[2] = loadImage('heroa.png');
myArrayD[3] = loadImage('herod.png');
// Hata sembollerini oluştur
for (let i = 0; i < numErrors; i++) {
let error = {
x: random(width),
y: random(height),
xIncrement: random(3, 7),
yIncrement: random(3, 7),
size: 30
};
errors.push(error);
}
startTime = millis(); // Oyun başlangıç zamanını al
}
function draw() {
background(255, 120, 60);
// Intro scene
if (scene == 0) {
image(scene1_bg, width / 2, height / 2);
image(start_btn, width / 2, height / 2);
if (mouseIsPressed && isMouseOverButton(width / 2, height / 2, start_btn)) {
scene = 1;
startGame();
}
}
if (scene == 1) {
image(game_bg, width / 2, height / 2, width, height); // Oyun arkaplanını çiz
backgroundtext();
for (let error of errors) {
displayError(error);
checkHit(error);
}
let moved = false;
if (keyIsDown(RIGHT_ARROW) && x < width - 50) { // Sağa hareket, sağ sınır kontrolü
x += 5;
moved = true;
}
if (keyIsDown(LEFT_ARROW) && x > 50) { // Sola hareket, sol sınır kontrolü
x -= 5;
moved = true;
}
if (keyIsDown(UP_ARROW) && y > 50) { // Yukarı hareket, üst sınır kontrolü
y -= 5;
moved = true;
}
if (keyIsDown(DOWN_ARROW) && y < height - 50) { // Aşağı hareket, alt sınır kontrolü
y += 5;
moved = true;
}
if (moved) {
i = (i + 1) % 3;
}
displayCharacter();
updateScore(); // Skoru güncelle
displayScore(); // Skoru göster
}
// Scene End
if (scene == 2) {
image(scene2_bg, width / 2, height / 2);
image(restart_btn, width / 2, height / 2);
textSize(70);
fill(255);
textAlign(CENTER);
textSize(30);
text("Score: " + score, width / 2, height / 2 - 50);
if (mouseIsPressed && isMouseOverButton(width / 2, height / 2, restart_btn)) {
resetGame();
scene = 1;
}
}
}
function displayCharacter() {
if (keyIsDown(RIGHT_ARROW)) {
image(myArrayR[1], x, y, 100, 100);
} else if (keyIsDown(LEFT_ARROW)) {
image(myArrayR[2], x, y, 100, 100);
} else if (keyIsDown(UP_ARROW)) {
image(myArrayU[1], x, y, 100, 100);
} else if (keyIsDown(DOWN_ARROW)) {
image(myArrayD[2], x, y, 100, 100);
} else {
image(img, x, y, 100, 100);
}
}
function backgroundtext() {
textSize(30);
fill(255);
textAlign(CENTER);
}
function displayError(error) {
noStroke();
fill(255, 0, 0);
ellipse(error.x, error.y, error.size, error.size);
error.x += error.xIncrement;
error.y += error.yIncrement;
if (error.x > width || error.x < 0) {
error.xIncrement = -error.xIncrement;
}
if (error.y > height || error.y < 0) {
error.yIncrement = -error.yIncrement;
}
}
function checkHit(error) {
let myDist = dist(error.x, error.y, x, y);
if (myDist < (error.size / 2 + 50 / 2)) {
j = true;
if (j) {
textSize(70);
fill(255);
textAlign(CENTER);
text("Game Over", width / 2, height / 2 - 100);
scene = 2;
if (musicPlaying) {
mySound.pause();
mySound1.play();
}
}
}
}
function displayScore() {
textSize(20);
fill(255);
textAlign(CENTER);
text("Score: " + score, 400, 60); // Skoru ekrana yazdır
}
function updateScore() {
let elapsedTime = millis() - startTime; // Geçen süreyi al
score = floor(elapsedTime / 100); // Skoru saniyeye dönüştür
}
function isMouseOverButton(buttonX, buttonY, buttonImage) {
let halfWidth = buttonImage.width / 2;
let halfHeight = buttonImage.height / 2;
return mouseX >= buttonX - halfWidth && mouseX <= buttonX + halfWidth &&
mouseY >= buttonY - halfHeight && mouseY <= buttonY + halfHeight;
}
function startGame() {
if (!musicPlaying) {
mySound.play();
mySound.loop();
musicPlaying = true;
}
startTime = millis(); // Oyun başlangıç zamanını yeniden ayarla
score = 0; // Skoru sıfırla
}
function resetGame() {
x = 400; // Center position for the new canvas size
y = 400;
j = false;
if (!musicPlaying) {
mySound.play();
mySound.loop();
musicPlaying = true;
}
startTime = millis(); // Oyun başlangıç zamanını yeniden ayarla
score = 0; // Skoru sıfırla
errors = [];
for (let i = 0; i < numErrors; i++) {
let error = {
x: random(width),
y: random(height),
xIncrement: random(3, 7),
yIncrement: random(3, 7),
size: 30
};
errors.push(error);
}
}
function keyPressed() {
if (scene == 0 && key == ' ') {
scene = 1;
startGame();
}
if (scene == 2 && (keyCode === 82 || keyCode === 114)) { // 'R' or 'r' key
resetGame();
scene = 1;
}
}