ÖzÜ Oyun Atölyesi

< Biraz fizik (Zıplayan top) Alıştırma: Top Sektirmece >


Oyun: Sapan

Kod

void setup() {
  size(800, 500);
  textSize(40);
}

int yer = 450;
int topCapi = 40;
float x = 60;
float y = yer - topCapi/2;

float hizX = 0;
float hizY = 0;
float yercekimi = 0.5;

int hedefCapi = 40;
float hedefX = 750;
float hedefY = y;

int durum = 0; //0: nisan aliniyor
//1: top ucusta
//2: top hedefi vurmus
//3: top hedefi iska gecmis

void draw() {
  background(255, 255, 255);

  if (durum == 0) { 
    // yer cizgisi
    line(0, yer, width, yer);
    // top
    fill(0, 0, 255);
    ellipse(x, y, topCapi, topCapi);
    // nisan alma cizgisi
    line(x, y, mouseX, mouseY);
    // hedef
    fill(255, 0, 0);
    ellipse(hedefX, hedefY, hedefCapi, hedefCapi);    
  } else if (durum == 1) {
    x = x + hizX;
    y = y + hizY;
    hizY = hizY + yercekimi;
    // yer cizgisi
    line(0, yer, width, yer);
    // top
    fill(0, 0, 255);
    ellipse(x, y, topCapi, topCapi);
    // hedef
    fill(255, 0, 0);
    ellipse(hedefX, hedefY, hedefCapi, hedefCapi); 

    if (dist(x, y, hedefX, hedefY) < (topCapi+hedefCapi)/2) {
      durum = 2;
    } else if (y > yer-topCapi/2) {
      durum = 3;
    }
  } else if (durum == 2) {
    text("Bravo!", width/2, height/2);
  } else if (durum == 3) {
    text("Iskaladın!", width/2, height/2);
  }
}

void mousePressed() {
  if (durum == 0) {
    hizX = (mouseX-x)*0.1;
    hizY = (mouseY-y)*0.1;
    durum = 1;
  }
}