Hareketler ve Tuş Algılama
Bu tutorial'da GreenFoot ekranında hareketlerin nasıl yapılacağı ve tuşlar ile nasıl kontrol edileceğini çalışacağız.Yengecin Senaryosu
Crab.zip dosyasını indirin ve bilgisayarınızda GreenFoot programlarınızı koyduğunuz konuma dosyaları açın. GreenFoot programında senaryoyu açın. Standart bir GreenFoot ekranı ve kumsal desenli bir arkaplan görürüz.Crab class'ına sağ tuş tıklayın ve 'new Crab()' metodunu seçin, sonra world üzerinde herhangi bir yere tıklayarak yengeci yerleştirin.
Sonra da 'Run' butonunu tıklayın. Yengecin enteresan danslar yapmasını bekliyor olabilirsiniz ancak yerinden bile kımıldamadığı görülür. Çünkü bu tembel bir yengeç. Şimdi Crab sınıfı kodunu açalım ve bakalım. Crab class üzerine sağ tıklayıp 'Open editor' seçin ya da Crab class'ına çift tıklayın kod penceresi açılır:
Burda gördüğünüz şey Crab sınıfının Java kodudur. Şimdilik bu kodun hepsini anlamanıza gerek yok, sadece public void act() satırıyla başlayan ve süslü parantezler arasında kalan kısma odaklanalım. Burada şimdilik bir şey yazmıyor:
Parantezler ve anlamları üzerine kısa bir bilgi verelim. Java dilinde 3 değişik parantez biçimi bulunur. Kısaca bakarsak:
Normal parantez (yani sadece parantez denince anladığımız) Java dilinde matematik işlemleri gruplandırmak ve metod parametrelerini girmek amaçlış kullanılır.
Köşeli parantez, Java dilinde Array veri bloklarını tanımlamak için kullanılır.
Süslü parantez, Java dilinde metod tanımları ya da class tanımları gibi kod bloklarını tanımlamak için kullanılır.
Herneyse koda geri dönelim, gördükki hareket komutu olan 'act()' bloğu içinde hiçbir komut satırı yok. Eğer yengecimizin 'Run' emri verince bişeyler yapmasını istiyorsak buraya yazacağız. Hadi biraz hareket etmesi için 'move()' komutu kullanalım:
Bu resimde gördüğünüz kodu aynen birebir yazmanız lazım. 'move' kelimesi , arkasından parantez içinde 4 sayısı ve en sona bir noktalı virgül işareti. En çok yapılan hatalardan biri m harfini büyük yazmak (Java'da büyük-küçük harf önemlidir, derleyici hata yapar). Noktalı virgülü unutmak , yanlış çeşit parantez koymak ya da kazara süslü parantez işaretlerini silmek diğer en çok karşılaşılan hatalar. Eğer bir hata mesajı alırsanız buradaki resim ve sizin yazdığınız kodu dikkatle karşılaştırın.
Yazmayı bitirdiyseniz editörün üst tarafında bulunan 'Compile' butonu ile yazılan kodu derleyin. Hata mesajı almazsanız gidin ve world üzerine yeni bir Crab objesi yerleştirip 'Run' tuşuna basın. Yengeç ekranda ileri doğru hareket ederek world sınırına kadar gidecektir. Eğer tekrar görmek isterseniz, 'Pause' butonuyla yengecin hareketini durdurun yengeci mouse ile tutup ekran ortasına getirin ve tekrar 'Run' butonunu tıklayın. Ekrana birkaç yengeç daha koyun ve hep beraber hareket etmelerine bakın. Parantez içindeki 4 parametresini değişitirin ve yengeçlerin hızlarının değişimini deneyin. Tahmin edin bakalım negatif sayı verirseniz ne oluyor?
Şimdi yengecimize dümdüz gitmekten başka hareketler de yaptıralım. 'move' komutu satırı sonunda enter basıp yeni bir satır açın ve 'turn(3)' komutunu girin:
Çalıştırınca bizim yengeçlerin daireler çizmeye başladığını görürüz. Parametrelerle oynayarak daire hareketlerinin boyutunu nasıl isterseniz ayarlayabilirsiniz.
Artık yengeçler world sınırına kadar gidip orada kalmıyor dönerek hareketlerine devam ediyorlar. Peki eğer yengeçlerin dönüşlerini biz kontrol edersek nasıl olur? Hadi senaryo koduna biraz kullanıcı ile etkileşim ekleyelim. Yengecin ok tuşlarına basıldığında dönmesi için şu kodu yazalım:
GreenFoot dahili metodu 'isKeyDown()' metodu ile klavyeden bir tuş girildiği ve ve tuşun ne olduğu test ediliyor. Eğer bu tuş "left" ise sola ok tuşu basılıyordur, "right" ise sağa ok tuşu basılıyordur. Çok isterseniz "a" ve "d" tuşlarına da bağlayabilirsiniz. Kodu Compile edin ve çalıştırın. Parametreler ile oynayarak hareket hızlarının nasıl değiştiğini gözlemleyin. Eminim herkes sonsuz işareti ve sekiz çizmeye çalışmıştır.
Eğer ekrana birden fazla yengeç yerleştirirseniz muhteşem uyumla hareketlerini seyredersiniz. Peki iki tuşa aynı anda basılınca ne oluyor? Bunu da inceledikten sonra Tutorial-3 için hazır olun.
Kolay gelsin..
Hiç yorum yok:
Yorum Gönder