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.

Hiç yorum yok:

Yorum Gönder