6 Temmuz 2009 Pazartesi

Processing Ders Notları - Temel 3

Void
Processing, her modern programlama dili gibi obje tabanlı programlamayı destekler. Bunu kek yapımına benzetebiliriz. Önce gerekli mazemeyi temin edersiniz. Sonra yumurta ile şeker ve yağı çırparsınız. Ardından un ekleyip iyice karıştırıp kakao ilave edersiniz. Ve fırına koyup pişirirsiniz. Burada önemli olan nokta herşeyin bir sırası olmasıdır. Bütün mazemeyi aynı anda kaba koyup karıştırırsak kekimiz pek bir halta benzemez. İşin sırrı gereken mazemeyi doğru zamanda kek hamuruna karıştırmaktır.
Programlama yaparken de aynı şey söz konusudur. Önce genel olarak ihtiyacımız olan şeyleri belirleriz, ardından adım adım programa eklemeler yaparız. Void komutu burada devreye girer.
Bu derste

Void setup(){ }
Void draw(){ }

komutlarını işleyeceğiz.

Daha önce yaptığımız örnek üzerinden gidelim.

size(200,200);
background(255);
stroke(0,255,0);
strokeWeight(5);
fill(255,0,0);
rectMode(CENTER);
rect(100,100,50,50);

bu kodu parçalara bölüyoruz.

void setup(){
size(200,200);

}

void draw(){

background(255);
stroke(0,255,0);
strokeWeight(5);
fill(255,0,0);
rectMode(CENTER);
rect(100,100,50,50);

}

Programın yeni halini çalıştırdığımız zaman, değişen hiçbirşey olmamış gibi geliyor bize. Halbuki büyük değişiklikler var. Açıklayayım

void setup(){
size(200,200);

}

void setup programımızın genel ayarlarının yapıldığı yer oluyor. Burada ki kodlar bir kez okunur ve birdaha okunmazlar.


void draw(){

background(255);
stroke(0,255,0);
strokeWeight(5);
fill(255,0,0);
rectMode(CENTER);
rect(100,100,50,50);

}

void draw ile başlayan komut seti ise, şu durumda, program kapatılana kadar sürekli devam edecek komutlarımızı içeriyor. Aslında program çalıştırıldığında sürekli aynı dörtgen sürekli üst üste çiziliyor. Dörtgenin konumu değişmediği için biz onu durağan görüyoruz. Ufak bir değişiklik yaparak processing ile ilk animasyonumuzu yapalım.


void setup(){
size(200,200);


}

void draw(){

background(255);
stroke(0,255,0);
strokeWeight(5);
fill(255,0,0);
rectMode(CENTER);
rect(mouseX,mouseY,50,50);

}

Burada mouseX ve mouseY değişkenlerini kullanarak, dörtgenin mouse pointerının o andaki pozisyonunu orta nokta olarak aldık ve 50 x 50 pixellik kutu çizdirdik. Yukarda belirttiğim gibi program çalıştığı sürece bu kutu void draw() komutu sayesinde sürekli çizildiğinden biz kutuyu mouseun hareket ettirdiğini algıladık.

Bu arada background(255); satırnın void draw(); ın içinde void setup a taşırsak bakın neler oluyor.

void setup(){
size(200,200);
background(255);

}

void draw(){

stroke(0,255,0);
strokeWeight(5);
fill(255,0,0);
rectMode(CENTER);
rect(mouseX,mouseY,50,50);

}



background(255);
satırını void setup() ın içine taşıdığımızda artık bu komut bir kez okunacağından kutunun mouse tarafından kontrol edilen pozisyonları ekranda kalıyor ve bu efekt vasıtasıyla ekrana çizim yapılıyormuş gibi bir izlenim oluşuyor.

Örnek verelim ;

void setup(){
size(200,200);
background(255);

}

void draw(){


stroke(0);
strokeWeight(2);
line(mouseX,mouseY,100,100);

}



--------------------




void setup(){
size(200,200);
background(255);

}

void draw(){


stroke(0);
strokeWeight(2);
line(pmouseX,pmouseY,mouseX,mouseY);

}

Buradaki pmouseX ve pmouseY komutu mouseun pozisyonunu sürekli güncelliyor ve bu sayede sanki çizgi çiziyormuş gibi bir izlenim ediniyoruz.

Hiç yorum yok:

Yorum Gönder