Openframeworks Ders 3 (Şekillerde Hareket)

talhakoc 27 Ağustos 2015Openframeworks

Openframeworks görüntüyü kullanıcılarına video mantığıyla sunmaktadır. Nasıl ki video saniyede videonun kalitesine göre 24,30,45,60 gibi framelerin(resim) arka arkaya gösterilmesiyle oluşuyorsa openframeworks programı da görseli frameleri arka arkaya koyarak kullanıcılara göstermektedir. Yani sabit bir şekil görüyorsak arka arkaya aynı resmin gösterilmesi sonucu görürüz. Openframeworks’ün bu interaktif yapısı kullanıcılara güzel bir görsel deneyim imkanı sunmaktadır. Bu şekilde rahatlıkla hareketli animasyonlar, görseller hazırlanabilmektedir.

Bir önceki derste şekil çizimi ve renklendirmesi gösterilmiştir. Bu derste de bu şekillerin nasıl hareket ettirilebileceği üzerine çalışılacaktır. Öncelikle şeklin hareketi için iki değişken tanımlanır. testApp.h  dosyasında bu iki tanımlama yapılabilir. Veya testApp.cpp de #include satırından sonra da tanımlanabilir.

#include “ofApp.h”

int xeksen;
int yeksen;

Şeklin harekete nereden başladığını belirtmek için bu değişkenlere ilk değerler tanımlanmalıdır. Hatırlanacağı üzere programın başında bir defa çalışan ve ilk değerlerin de tanımlandığı nokta setup() fonksiyonun bulunduğu bölme idi. bu fonksiyonda ilk değerler tanımlanır.

void ofApp::setup(){
xeksen = 300;
yeksen = 200;
}

Değişkenlerin ilk değeri atandıktan sonra bu değişkenlerin gösterdiği koordinata bir daire çizdirilebilir. Bu işlem bir önceki dersten hatırlanılacağı üzere draw() fonksiyonunda gerçekleştirilir.

void ofApp::draw(){

ofSetColor(155,255,155);

ofCircle(xeksen,yeksen,50);

}

bu şekilde bırakıldığı taktirde belirtilen renkte ve ilk değerlerin bulunduğu noktada daire sürekli olarak duracaktır. Ancak update() fonksiyonunda değişkenlerimizin değerini değiştirirsek hareketli bir daire elde edebiliriz.

void ofApp::update(){
xeksen=xeksen+4;

}

Bu komutları çalıştırdığınızda sağa doğru hareketli bir daire cisim göreceksiniz. her bir frame’de şeklin yeni bir yeri olacaktır ve şekil hareket edecektir. Ancak belli bir yerden sonra cismin kaybolduğunu göreceksiniz. Bu noktada cisim ekranımızdan çıkmaktadır. Bunun için bir kontrol mekanizması konularak cisim belli bir noktayı geçtikten sonra geri yerine döndürülebilir ya da hareket tersine çevrilebilir. Yani cisim ekran içinde ileri geri hareket ettirilecektir. Bunun için bir bayrak değişkenine ihtiyaç vardır.  # include satırının altındaki değişkenlere bir de bayrak değişkeni eklenebilir.

int yon;

bu değişkene setup() fonksiyonu bölgesinde ilk değişken olarak “1” değeri verilir. bu pozitif yönde gideceğini gösterecektir. ve update() fonksiyonu aşağıdaki gibi güncellenmelidir.

void ofApp::update(){
xeksen=xeksen+(yon*4);
if (xeksen>1024||xeksen<100)
{
yon=yon*-1;
}

}

Yukarıdaki komutlarda 100 ile 1024 arasında gidip gelme hareketi tanımlanmıştır. yon değişkeni 1024 e ulaştığında ve 100 e ulaştığında yön değiştirecektir ve xeksen değişkenine çarpım pozisyonunda olduğu için sağ ve sol hareketi sağlayacaktır.

Openframeworks default olarak saniyede ortalama 60 frame göstermektedir. Hareketin daha yavaş olması istenilirse ya da ağır işlemleri olan programlar yazılırsa ofSetFrameRate() fonksiyonu ile bu rakam düşürülebilir. Ancak programın daha yavaş çalışacağı göz önünde bulundurulmalıdır.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Arama

Twitterda

© 2014 - Talha Koç. All Rights Reserved. Powered by Wordpress and Design by We Create Web Designs