24 Şubat 2013 Pazar

Greenfoot Yerçekimi

Basit bir yerçekimi sistemi yazarak bir oyun yaptım. http://cl.ly/0o3l3F2p380e adresinden oyunun dosyalarını indirebilir ve inceleyebilirsiniz. Şimdi Oyuncu.java dosyasından başlayalım.
import greenfoot.*;
public class Oyuncu extends Actor
{
    // 1. bolum
    private static final int ivme = 1;
    private int baslangic_hizi = 0;
    public Oyuncu()
    {
        setImage("egg.png");
    }
    // 2. bolum
    public void act() 
    {
        kontroller();
        if(maksimumCevre())
        {
            baslangic_hizi = 0;
        }
        else
        {
            baslangic_hizi = baslangic_hizi+ivme;
            setLocation(getX(),getY()+baslangic_hizi);
        }
    }
    // 3.bolum
    private boolean maksimumCevre()
    {
        if(getY() < 1 || getY() >= getWorld().getHeight() - 30)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    private void kontroller()
    {
        if(Greenfoot.isKeyDown("left") || Greenfoot.isKeyDown("a"))
        {
            setImage("eggsol.png");
            setLocation(getX()-3,getY());
        }
        if(Greenfoot.isKeyDown("right") || Greenfoot.isKeyDown("d"))
        {
            setImage("egg.png");
            setLocation(getX()+3,getY());
        }
        if(Greenfoot.isKeyDown("up")  || Greenfoot.isKeyDown("w"))
        {
            setLocation(getX(),getY()-14);
        }
    }
}
Birinci bölüm: Bu bölümde değişkenlerimizi tanımladık ve Oyuncu sınıfının resmini egg.png olarak ayarladık.

İkinci bölüm: Burada maksimumCevre metodu ile y ekseninin sonuna gelip gelmediğimizi kontrol ediyoruz. Y ekseninin sonuna geldiysek baslangic_hizi değişkenini 0 yapıyor. Y eksenine gelmediysek yerçekimi devam ediyor.

Üçüncü bölüm: Bu bölümde ise maksimumCevre metodunu açıklamak istiyorum. Öncelikle bu bir boolean metoddur. Eğer y koordinatlarımız "dünyanın" uzunluğundan büyükse true değer gönderir, değilse false değer gönderir.

Anlatacaklarım bu kadar kolay gelsin.

18 Şubat 2013 Pazartesi

Matematik Kitapları Üzerine

Matematik Kitapları Üzerine Ali Nesin Geçen yaz [1992] Milli Eğitim Bakanlığı’nın çıkardığı matematik kitaplarını aldım. İlkokul 1’den lise 3’e dek tam onbir cilt... Okul kitabı yazmak, hele ilkokul kitabı yazmak, öyle küçümsenecek bir iş değildir. Bilimsel araştırmadan çok daha fazla sorumluluk isteyen bir uğraştır. Matematiğin yanısıra didaktik ve eğitbilim (pedagoji) de bilmek gerekir. Konuların nasıl işlenip, hangi sırayla sunulacağı, örneklerin, soruların, sözcüklerin seçimi, resimle yazı arasındaki oran, geçmişte bizim ve başka ülkelerin deneyimleri gibi önemli noktaların üstünde uzun uzun durulması, hatta herbirinin birer araştırma konusu olması gerekir. Örneğin ilkokul birinci sınıf öğrencilerine aritmetiği mi, geometriyi mi, yoksa küme kavramını mı öğretmeli ilk? Belki de “altında, üstünde, yanında, kenarında” gibi yedi yaşındaki bir çocuğa daha “doğal” gelebilecek kavramlara öncelik tanımalı. Yoksa ne öğretildiğinden çok, soru sorma alışkanlığını aşılamak mı önemlidir? Bu işe yıllarını verenlerin bile bu birincil soruların yanıtlarında anlaştıklarını sanmıyorum. Kısacası, bu iş öylesine karmaşık, öylesine zordur ki, kusursuz diyebileceğimiz bir okul kitabı yazmak nerdeyse olanaksızdır. Zorluğun bilincindeyim, ve amacım kesinlikle satın aldığım kitapları eleştirmek değil. Haddime mi? Uzmanlar bile bu konuda anlaşamazken... Benimkisi salt merak... Matematik eğitiminin nasıl yapılması konusunda tam bir uzlaşma sağlamak güç olabilir. Gene de matematik eğitiminde uzman olsun olmasın herkesin uzlaştığı biriki nokta vardır sanırım. Örneğin, matematik eğitiminin amacını saptamak pek zor olmasa gerek. Nedir matematik eğitiminin amacı, ya da amaçları? Matematiğin güzelliğini, yalınlığını ve gücünü göstermek, düşünmesini, yani bağımsız ve doğru düşünmesini öğretmek, bir alışkanlık haline getirmek. Unuttuklarım, okurun eklemek istedikleri olabilir. Pek önemli değil. Üç aşağı beş yukarı hepimizin matematik eğitiminin amacında birleşeceğimize eminim. Matematik kitaplarından rastgele birini açtım. Gözlerime inanamadım: İlk sayfada çatık kaşlı bir mehmetçik, göklerde dalgalanan bir bayrak ve İstiklal Marşı var. Atatürk’ün bir portresi ikinci, Gençliğe Söylevi üçüncü sayfada... Söylev günümüzün Türkçesine çevrilmemiş... Muhafaza’lı, müdafaa’lı, şerait’li ve de cebir’li! Neden çocuklarımızın anlayacağı dile çevirmemişler? Yoksa matematik kitabına Atatürk’ün Gençliğe Söylevi’ni koyanların amacı çocuklara Atatürk’ü anlatmak ve sevdirmek değil mi? Belli ki değil... Bir başka matematik kitabına Türkiye haritası koymuşlar. Bir an kuşkuya düşüp yanlışlıkla coğrafya kitabı aldığımı sandım. Hayır, yanılmamışım, kitabın kapağında İlkokullar İçin MATEMATİK I yazıyor. Her kitabın sonunda bir de Öğretmen Marşı var. Öğrenciler için yazılmış bir kitapta... Buyrun öğretmen marşına! Bu kadarla da yetinmemişler. İlkokul dörtlerin matematik kitabının aşağı yukarı tam ortasına bir okuma parçası koymuşlar: Atatürkçü Düşüncede Özellik Taşıyan Önemli Yaklaşımlar. Otuz sayfa ötede Tehdit başlıklı bir başka okuma parçası var. Türkiye’nin jeopolitik önemi diyor ve tahmin ettiğiniz gibi düşmanlarımızdan, yani Romanya, Bulgaristan ve Rusya’dan, sözediyor. Kitap 1991’de yazılmış1. Matematiğin yukarıda sıraladığımız amaçlarıyla yakından uzaktan hiçbir ilgisi olmayan bu resim ve yazıları matematik kitabına koyanların amacı ne olabilir? Acaba çocuklara Atatürk’ü ve yurdumuzu sevdirmek mi istiyorlar? Aklı başında kime sorulursa sorulsun, bir matematik kitabına Atatürk resminin konulmasını beyin yıkama olarak nitelendirir. Oysa Atatürk’ü sevdirmek ve anlatmak için, Atatürk’ün değerini kavratmak için, beyin yıkamaya gerek yoktur. Atatürk’ün Türkiye için yaptıklarını anlatmak yeterlidir. Hitler’i, Mussolini’yi, Pinochet’yi, Stalin’i sevdirmek için beyin yıkamaya gerek duyulabilir, ama Atatürk buna gereksinmez. Tam tersine, beyin yıkama, Atatürk’ü gençliğin gözünde yozlaştırır. Kaldı ki, matematik düşünmeyi öğretir. Sloganların, milliyetçiliğin, İstiklal Marşı’nın, bayrağın, askerin yeri değildir bir matematik kitabı. Hele beyin yıkamanın hiç ama hiç yeri yoktur matematik kitaplarında. Bu kitaplarla matematik okuyan çocuk ne matematiği, ne de Atatürk’ü sevebilir. Amaç bu mu? Matematik kitabında yeri olmayan bu resimleri, bu okuma parçalarını koymak kimin aklından çıkmıştır? Kimini tanıdığım yazarların, yani matematikçi arkadaşlarımın, böyle bir saçmalıkta parmakları olduğunu sanmıyorum. Hiçbir matematikçi böyle bir yönteme başvurmaz. Bu saçmalık, eğitim, matematik ve Atatürkçülükle kıyısından köşesinden en küçük bir ilgisi olmayan kişilerin eseri olmalı. Matematik kitabına resim ve okuma parçası konulmaz mı? Konulur. Örneğin düşündüren eğlenceli oyunlar, bilmeceler konulabilir. Ünlü matematikçilerin resimleri, yaşamöyküleri, oturdukları evin, çalıştıkları masanın, yazdıkları kalemin fotoğrafları konulabilir. Ünlü yapıtlardan alıntılar da yapılabilir. Çok da iyi olur. Böylece öğrenci hem rahat bir soluk alır, hem de kuramlarını okuduğu matematikçilerle içli dışlı olur, onlara yabancılık duymaz, bilimde yenilik yapanların kendisi gibi insan olduklarını görür. Eğer öğrencinin ülkesinden gurur duyması isteniyorsa hocamız Cahit Arf‘tan sözedilsin. İlla Atatürk’ten sözetmek gerekiyorsa, eski Türkçe Söylev’i değil, Atatürk’ün yaşamının son yıllarında öztürkçe bir geometri kitabı yazdığını, “üçgen, dikey, açı” gibi onlarca sözcüğü dilimize kazandırdığını anlatan bir okuma parçası konulsun. Milli Eğitim Bakanımız iki aydır Sayın Nahit Menteşe’dir2. Yılların deneyimi olan bir bakan. Bu saçmalıkların matematik kitaplarından kaldırılması gerektiğini düşündüğünden kuşkum yok. Umarım önümüzdeki yıllarda çocuklarımız ve gençlerimiz, aptallığın tüm çıplaklığıyla gözler önüne serilmediği matematik kitaplarından eğitim görürler. 2 Şimdi Milli Eğitim Bakanımız Sayın Nevzat Ayaz’dır. Sonradan (1999) eklenmiş not: O zamandan bu zamana, sosyal demokrattan ortanın sağına, ortanın sağından İslamcısına dek siyaset yelpazesinin hemen hemen her derecesinden bakan geldi geçti. Ders kitaplarında hâlâ daha bir değişiklik yok.

29 Ocak 2013 Salı

Işın Bisikleti Oyunu

Merhaba arkadaşlar. Kendi bilgilerim ve http://greenfoot.org adresinden aldığım yardımlarla yaptığım basit bir oyunun sistemini sizlere anlatmak istiyorum. Öncelikle oyunun açık kaynağını http://yadi.sk/d/sMqXmQND2AvXv adresinden indirerek dosyalara ulaşabilirsiniz. Şimdi gelelim kodlara:

import greenfoot.*;
import java.awt.Color;
public class Oyuncu1 extends Actor
{
    private boolean sol;
    private boolean sag;
    // bolum 1
    public Oyuncu1()
    {
        GreenfootImage g = getImage();
        g.drawRect(0,0,30,30);
        g.setColor(Color.BLUE);
        g.fill();
    }
    public void act() 
    {
        // bolum 2
        move(2);
        Oyuncu1Cizgi o = new Oyuncu1Cizgi();
        getWorld().addObject(o,getX(),getY());
        kontroller();
        if(carpisma())
        {
            getWorld().removeObjects(getWorld().getObjects(Oyuncu1Cizgi.class));
            getWorld().removeObject(this);
        }
    }    
    // bolum 3
    private boolean carpisma()
    {
        Actor Oyuncu2;
        Actor Oyuncu2Cizgi;
        Oyuncu2 = getOneObjectAtOffset(0,0,Oyuncu2.class);
        Oyuncu2Cizgi = getOneObjectAtOffset(0,0,Oyuncu2Cizgi.class);
        if(Oyuncu2 != null || Oyuncu2Cizgi != null)
        {
            return true;
        }
        else
        {
            return false;
        }
    }
    // bolum 4
    private void kontroller()
    {
        if(!sol && !Greenfoot.isKeyDown("left"))
        {
            sol = true;
        }
        if(sol && Greenfoot.isKeyDown("left"))
        {
            turn(-90);
            sol = false;
        }
        if(!sag && !Greenfoot.isKeyDown("right"))
        {
            sag = true;
        }
        if(sag && Greenfoot.isKeyDown("right"))
        {
            turn(90);
            sag = false;
        }
    }
}
Birinci Bölüm: İlk bölümümüzde sınıfımızın nasıl görüneceğini tanımladık. drawRect metodu ile bir kare çizdik, çizilen kareyi setColor metodu ile mavi yaptık ve son olarak fill metodu ile ekrana çizdirdik.
İkinci Bölüm: Bu bölüm daha çok dışardaki sınıflar ve içerdeki metodlar ile ilişkili. Burada move metodu ile hareket etmesini ve gittiği her yere Oyuncu1Cizgi sınıfını oluşturmasını istedik, ve diğer metodlarımızı çağırdık.
Üçüncü Bölüm: Burada Greenfoot'un Actor sınıfının getOneObjectAtOffset adlı metodunu kullanarak çarpışma kontrolü yaptırdık. Eğer çarpışma varsa true yoksa false değer geri döndürmesini istedik.
Dördüncü Bölüm: Burada ise sınıfımızı kontrol etmemizi sağlayacak kodlar var. isKeyDown metodu işi biraz "seriye" bağladığından dolayı burada sol ve sag adlı boolean değerlerimize değer atayarak bu sorunu gidermeyi denedik. Eğer sol yön tuşuna basılmıyorsa ve sol = true değilse koşul gerçekleşmiş yani sol = true olacaktı. Bu sayede basıldığı ve sol değerinin true olduğu zaman ise sol = false olacaktı ve böylece seri bir şekilde hareket edemeyecekti.
Evet oyunun sistemleri bu kadardı, umarım iyi bir şekilde anlatabilmişimdir. Sorunuz olursa çekinmeden sorabilirsiniz. Kolay gelsin.

16 Ocak 2013 Çarşamba

Greenfoot Hareket Sistemi

Merhaba arkadaşlar. Bir önceki dersimizde klavye olaylarından bahsetmiştik. Bu dersimizde ise klavye olayları ve birkaç metod yardımıyla oyunlarımızda çoğu zaman kullanacağımız bir sistem yapacağız. Şimdi kullanacağımız metodlara bakaraktan dersimize başlayalım.
move metodu: Bu metod sınıfımızın hareket etmesini sağlar. move() şeklinde kullanılır ve tek parametrelidir. O tek parametre ise hızı belirler.
turn metodu: Sınıfımızı 0 ile 360 derece(saat yönünde) döndürmemize yarar. turn() şeklinde kullanılır ve move metodu gibi tek parametrelidir. Aldığı parametre ise kaç derece döneceğini belirler.

import greenfoot.*;
public class Hareket extends Actor
{
    public void act() 
    {
        move(2);
        String key = Greenfoot.getKey();
        if("left".equals(key))
        {
            turn(-90);
        }
        else if("right".equals(key))
        {
            turn(90);
        }
    }    
}
Burada move metodu ile hareket edip turn metodu ile dönerek hareket ediyoruz. İstersek setLocation, getX ve getY metodlarını kullanarak aynı işlemi biraz daha farklı bir şekilde yapabilirdik. Şu şekilde:

import greenfoot.*;
public class Hareket extends Actor
{
    public void act() 
    {
        if(Greenfoot.isKeyDown("up"))
        {
            setLocation(getX(),getY()-3);
        }
        else if(Greenfoot.isKeyDown("down"))
        {
            setLocation(getX(),getY()+3);
        }
        else if(Greenfoot.isKeyDown("left"))
        {
            setLocation(getX()-3,getY());
        }
        else if(Greenfoot.isKeyDown("right"))
        {
            setLocation(getX()+3,getY());
        }
    }    
}
Burada setLocation metodu iki parametre alır. Bunlardan birisi x diğeri ise y'dir ve yeni bir değer vermemizi sağlar. Biz burada getX ve getY metodu ile var olan x ve y değerine değer ekleyerek yeni koordinatlarımızı belirlemiş olduk. Ayrıca Greenfoot'da koordinat sistemi biraz daha farklıdır. Orijin ekranın sol üst köşesindedir. Orijinden Sağ tarafa gidildikçe x değeri artar, aşağıya doğru gidildikçe y değeri artar.

4 Ocak 2013 Cuma

Gidin ve Oyun Yapın!

Kaynak Yazı
Herkese merhabalar. Adım Paolo Pedercini ve 2003den beri Mollindustria adı altında alternatif oyunlar geliştiriyorum. Bir yerde "Molleindustria muhtemelen yurtdışında en iyi bilinen İtalyan video oyun studiosu" diye birşey okudum. Aslında bunla gurur duymalıyım, ama asıl fikir boş zamanını flash oyun yapmakla geçiren 29 yaşındaki adamların "Bu ülkenin dünyaya sunabileceği en önemli şey" olması beni gerçekten üzüyor.
İtalya'nın oyun endüstirisnde gerçek bir varlık göstermeye ihtiyacı var. Kim bir grup Kanadalı'ya bizim Rönesans'ımız hakkında birşeyler söyleme hakkını verdi ? [=> Ubisoft'un Assasin's Creed : Brotherhood] Ve niye biz bir grup Amerikalı gerizekalının acıklı bir "İlahi Komedi" (Divine Comedy) adaptasyonuna tabi olalım ? [=> Electronic Arts'ın Dante's Inferno'su.] Ve neden hiçbir İtalyan kuruluşu bize organize suçların şiddet ve trajedisi hakkında bilgi vermiyor ve bunun yerine neden dersimizi holywood filmleri ve dizileri tarafından üretilen klişelerden çıkaralım ? [=> Electronic Arts'ın The Godfather'ı]
Bu hikayeyi çok kez duydum: İtalya'da "tam" bir oyun endüstrisi yok. Altyapısı yok. Biz nasıl yapılacağının eksikliğini çekiyoruz. Yatırım yok. Ve tek çözüm ABD'deki büyük şehirlerde bulunan önde gelen stüdyolara kaçmak gibi gözüküyor. Peki, Ben birkaç yıldır ABD'de yaşıyorum ve size şunları diyebilirim ki buradaki hiçbirşey sizin düşündüğünüz gibi sessiz sakin/rahat (cennet gibi) değil. Ve ben siz İtalyanların hayal bile edemeyeceği şeyler gördüm. Burada gördüm ki 25 yaşındaki adamlar Rockstar Games'teki işinden istifa ediyorlar. GTA'nın 3D modelcileri yoruluyor ve sadece mimarlık şirketlerinde rendering yapmak için ayrılıyor yani biliyorsunuz, onların da bir sosyal hayatı var. Ve yine gördüm ki Electronic Arts'daki programcılar kendi projelerini geliştirme şansları olmadığı için işlerinden ayrılıyorlar. Ve yine gördüm ki büyük stüdyolardan gelen iş tekliflerini geri çeviren genç oyun dizayncıları var.
Ve iyi haber ise bizim oyun geliştirmek için başka bir büyük oyun endüstrisine ihtiyacımız yok. Oyun şirketlerinin 15 yıl önce başlayan konsantrasyon süreci şimdi yavaşlamaya veya tersine dönmeye başladı. Moore Yasasının gerektirdiği ezici üretim modeli yaratmayı denemek, bir anlam ifade etmiyor. Oyunlarda innovasyon (Yenileşme) demek projenizde son teknolojiyi kullanmaktan veya elektronik tablolarda mantık aramaktan daha fazlasıdır.
Ayrıca, oyuncuların zevkleri ve hassasiyetleri değişmeye başladı. Bir çok insan için, bugünlerde, ekrandaki poligon sayısı gerçekten hiç önemli değil. Prodüksiyon araçları artık daha ucuz ve ulaşılabilir olmaya başladı. Artık genç geliştiriciler için sahneye çıkmak çok daha kolay. Herşeyden önce, dağıtım kanalları çoğalıyor. Kim kutulardan oluşan bir mağazaya ihtiyaç duyar ? Kim cesaretsiz,korkak,eski kafalı,yenilikten korkan ve raflara gidenlerin ve gitmeyenlerin üzerinde kontrol sahibi bir aracıya ihtiyaç duyarki ? Biz sadece bir şey geliştirmek için şirket başlatmak için, bir patrona kendimizi esir etmeye ihtiyacımız yok.Ve tahmin edin ? Son birkaç yıldaki en iyi, en ilgi çekici oyunlar küçük,bağımsız ofisi olmayan takımlar tarafından yapıldı.

Ve İtalya'ya geri dönersek, bu istikrarsızlığı, yüksek düzeydeki işsizliği, kelimenin tam anlamıyla parçalanan/yıkılan bir akademik sistem bize veriyor, paradoksal, hepsinden önce en önemli hammadde; boş zamandır. Kendi projelerinizi geliştirmek için, bağımsızca... Projeler belki başarısız olur, eminim, ama başarısızlık ille de kötü değildir, başarısızlık öğrenmenin, birşeyleri denemenin bir aşamasıdır.İnsanlarla tanışmak, bağlantılar kurmak için iyi bir yoldur.
İtalya'da eğer 30 yaş altındaysanız ortak olan şey; geleceğinizin olmadığıdır. Ve yine de, bu ülke,bu ülkenin mafyası, ırkçıları, şarlatanları, size hiç beklemediğiniz mucizelerin çalışarak yapıldığını dünyaya kanıtlamıştır.Neorealizm hareketini düşünün, İtalya'nın sinemaya yaptığı en önemli katıkıdır. Sinema endüstrisi harabe iken 2.Dünya savaşından hemen sonra başladı. Neorealist yönetmenler profesyönel olmayan aktörleri kiraladı ve elindeki araçlar ile film yapmaya başladı, gişe canavarlarını ve efsanevi yapımları ortaya çıkardı, ve onlar şehirlerinin sokaklarında ne gördülerse filmlerinde ona karar verdiler. İtalyan Neorealizm'inin Fransız Nouvelle Vague üzerindeki etkisi, İngiliz Serbest Sineması için muazzam oldu. Bugün bile, dünyanın her yerinden belgesel film yapımcılarına ilham vermeye devam ediyor.
Tabii ki, çağdaş İtalya, savaş sonrası İtalyası'ndan farklıdır. Burada gerçek bir gerginlik yok, statükoyu değiştirmek için gerçek bir arzu yok. Burada hiç demokrasiyi benimseme dürtüsü yok, ama bu dürtü çatışma sonrası çok canlı bir şekilde hissedildi. Biz 30 yıldan fazladır Berlusconi'nin üstünlüğü- Videocracy'si tarafından oluşturulan kültürel bir çölün ortasında yaşıyoruz.
Ama kültür endüstrilerinin bir vakumlama faaliyeti olmadığını unutmayalım (Ne biçim bir cümledir bu ?). Ama onlar birbirinden ayrılmadı. İnnovasyon (yenileşme) sadece bir bağlamda ortaya çıkabilir. Örneğin, Vespa scooter bir dünya fenomen olduğunda, [Carlo Emilio] Gadda RAIcorporation'da çalışıyordu. [Italo] Calvino ve [Cesare] Pavese Einaudi yayıncılık şirketinde ve Almanya gibi filmlerde çalışıyordu. "Year Zero" yerli film tiyatrosunda sahne alıyordu.
Berlusconi çağının sonuna geliniyor olabilir. Veya gelinmiyordur. Her neyse, bu sinen/yayılmacı ahmaklığa direnen tüm kültürel enklavlar ile birlikte bağlılık kurma açısından çok önemlidir. Eğer İtalya'da değerli/geçerli oyun dizayncıları bulamazsanız, etrafınıza bakın, dizaynörler,çizgi film grafikerleri,müzisyenler ile çalışmaya başlayın... İndie scene içindeki en iyi şeyler ilginç,acayip küçük oyunlar yaratmak değildir. Gerçek ürünler arkadaşlıklar,ilişkiler,durumlardır... Bu kargaşa etkinlikler,sergiler,konferanslar,toplantılar, forumlar, yarışmalar ve game jamler aracılığıyla çevrimiçi ve çevrimdışı yer alıyor ...
Demek istediğim, İsveçi örnek alın. Ve Neredeyse elle tutulur hiçbir scene yapmamış inanılmaz sayıda genç geliştiricisi olan İskandinav ülkelerini ele alın... İtalya bu adamlardan ilham almalıdır. Yani İtalya'nın alt tabakasındaki "Kaybetme Zihniyeti"nin var olması için hiçbir sebep yok. Punkların KY (Kendiniz Yapın / DIY / Do It Yourself) zihniyetini ele alın: "İşte bu bir akor,işte bir diğeri,buradaki de üçüncü. Hadi bir grup kuralım.". Benim teklifim ? "İşte bir bilgisayar, işte bir internet bağlantısı, işte biraz bedava yazılım, ve hadi oyun yapalım.
Ve lütfen İngilizce Öğrenin.
Paolo Pedercini, İtalyanca'dan İngilizce'ye çeviri Matteo Bittanti.
İngilizce'den Türkçe'ye çeviri Atahan Bozkurt.

3 Ocak 2013 Perşembe

Greenfoot Klavye Olayları

İlk yazımızda Greenfoot'un ne olduğundan kısaca bahsetmiştik. Umarım verdiğim linkten Greenfoot'u indirip arayüzünü kurcalamışsınızdır. Çünkü basit bir arayüzü olduğundan anlatmaya ihtiyaç duymuyorum ve ilk dersimize klavye olayları ile başlıyorum. Bu konumuzda temel olarak iki metoda ihtiyaç duyacağız. Bunlar isKeyDown ve getKey metodları olacak. Her iki metodda Greenfoot sınıfının metodlarıdır ve statik metodlardır. isKeyDown metodu boolean bir metoddur ve string değer alır. getKey metodu ise string bir metoddur ve equals ile beraber kullanılır.
Örnek Kullanım:
if(Greenfoot.isKeyDown("left")) // şeklinde kullanılabilir. isKeyDown metodu boolean bir metod olduğundan koşul gerçekleşince true değer üretecektir.
Örnek Kullanım:
String key = Greenfoot.getKey();
if("space".equals(key)) burada ise boolean değeri equals üretir. getKey ise string ile koşulu belirler
İkisinin arasındaki farkı anlamanız için birde örnek hazırladım. Buradan indirebilirsiniz.

Greenfoot Nedir

Greenfoot Greenfoot Team tarafından oluşturulmuş Java programlama dilini kullanan bir oyun motorudur. Oyun motoru olmasına rağmen Java'nın tüm sınıflarını erişilebilir kılar, ama kendisi World, Actor, Greenfoot, GreenfootImage, GreenfootSound ve MouseInfo olmak üzere 6 sınıftan oluşur. Ubuntu,Debian,Mac OS X,Windows ve JDK'nın kurulu olduğu tüm sistemlerde sorunsuzca çalışabilir. Yaptığınız oyunları ister jar dosyası halinde ister applet sayesinde html sayfasına gömülü bir şekilde yayınlayabilirsiniz. Ben bu kategoride elimden geldiğince Greenfoot hakkında dersler yayınlayacağım. Eğer sizde benimle birlikte uğraşmak isterseniz http://www.greenfoot.org adresinden sisteminize uygun olan kurulum dosyasını indirip kurabilirsiniz. Yararlı olması dileğimle.