21 Ağustos 2013 Çarşamba

Greenfoot ile Top Sektirme Oyunu

Bu yazıda sizlere bir top sektirme oyunu üzerinden fare olaylarını anlatmaya çalışacağım. Öncelikle fareyi kontrol etmek için hangi sınıfların hangi metodlarını kullanacağımıza bir göz atalım.

Greenfoot sınıfının mousePressed() metodu farenin tuşlarından birine basıldığında true değer döndürür. Bir önceki cümleden anlaşıldığı üzere boolean bir metoddur. Parametre olarak this veya null değerini alır. This değerini alırsa sadece fare kendi üzerine tıklarsa koşul gerçekleşir. Null değerindeyse herhangi bir yere tıklandığında koşul gerçekleşmiş olur.
turnTowards(fare.x,fare.y) metodu nesnenin açısını farenin açısına eşitler.
mouseClicked() metodu mousePressed() metoduna benzer. Aralarındaki fark şudur: mousePressed() metodunda farenin herhangi bir tuşuna basma ile çekme arasında sonsuz defa işlem yapabilir. Ancak mouseClicked() metodu bu arada sadece bir defa işlem yapar. Şimdi diğer sınıfımıza geçelim. MouseInfo sınıfını kullanabilmek için bir MouseInfo türünden bir referans oluşturmamız gerekir. Şu şekilde:

MouseInfo fare = Greenfoot.getMouseInfo();
Şimdi sınıfın metodlarına bakalım.

getX(): Farenin x koordinatı üzerindeki değerini geri döndürür.
getY(): Farenin y koordinati üzerindeki değerini geri döndürür.
getButton(): Farenin hangi tuşuna basıldığını gösterir. Eğer döndürdüğü değer bire eşitse sol tuşa, ikiye eşitse ortadaki tuşa ve üçe eşitse sağ tuşa bastığı anlamına gelir. Sınfıfların metodlarını gördüğümüze göre oyunumuzu yapmaya başlayabiliriz. Öncelikle yeni bir Greenfoot Projesi açıyoruz.

Hemen ardından "Top" adında bir aktör ve "Oyun" adında bir dünya yaratıyoruz. "Oyun" adlı dünyamıza çift tıklayıp açılan pencereye şu kodları yazıyoruz:

Oyun.java
import greenfoot.*;
import java.awt.Color;
public class Oyun extends World
{
public Oyun()
{
super(300,300,1); // 300x300 boyutlarında bir dünya yarattık.
getBackground().setColor(Color.GREEN);
getBackground().fill(); // arkaplanı yeşil yaptık.
Top top = new Top(); // top nesnesi oluşturduk.
addObject(top,150,150); // nesnemizi dünyaya ekledik.
}
}
Şimdi "Top" adlı aktörümüze çift tıklayıp açılan pencereye şu kodları
yazıyoruz:

Top.java
import greenfoot.*;
public class Top extends Actor
{
private int yercekimi;
public Top()
{
setImage("top.png");
}
private void yercekimi(int ekle) // bununla ilgili bir yazı yazmıştım.
{
yercekimi += ekle;
setLocation(getX(),getY() + yercekimi);
}
private void sektir()
{
if(Greenfoot.mouseClicked(this))
{
yercekimi = 0;
setLocation(getX(),getY() - 10);
}
}
public void act()
{
yercekimi(1);
sektir();
if(getY() >= getWorld().getHeight() - 1)
{ /* eğer y koordinatımız dünyamızın boyunun 1 eksiğine eşitse
ölürüz. */
getWorld().removeObject(this);
}
}
}
Gördüğünüz gibi öğrendiklerimizi uygulayarak basit bir oyun yaptık. Siz isterseniz oyuna skor ekleyebilir ve topun x koordinatında hareket etmesini de sağlayabilirsiniz.

Hiç yorum yok:

Yorum Gönder