Flash ActionScript 3.0 Klavye ile Çapraz Hareket Etme

Daha önceki derslerimizde actionscript 3.0 kullanarak sahnedeki bir nesneyi aşağı,yukarı,sağa ve sola olmak üzere dört yöne hareket ettirdik. O uygulamamızda ara yönlere hareket yoktu. Şimdi ise dört ana yönle beraber ara yönlere de hareket ettireceğiz. Ayrıca arabamız hareket ettiği yöne dönecek.

Bunun için aşağıdaki ufak açıklamayı dikkate almanızı tavsiye ederim. İlk önce resmi verelim ve açıklamasını yapalım.

arayonKırmızı okla gösterilen temsili araba resmi. Etrafındaki sayılar ise nesnenin nesneyi hangi yöne hareket ettireceksek o açıyı göstermektedir. Nesnelerini döndüreceğiniz zaman bunu da dikkate alırsanız daha kolay olacaktır.

Şimdi uygulamamıza geçelim.
Bir flash as3 uygulaması oluşturun ve hareket ettireceğiniz nesneyi çizin.
Çizdiğiniz nesneyi F8 tuşuna basın ve film klibine çevirin. Burada XY merkezi olarak (KAYIT kısmı) orta noktayı belirlemeyi unutmayın.
Nesnenin <Örnek Adı>‘nı araba olarak belirledim. Sizde kodları nesnenize göre düzenleyin.
Sahnede boş bir alana tıklayın ve F9 tuşuna basarak aşağıdaki kodları yazın.

araba.addEventListener(Event.ENTER_FRAME, hareket);
stage.addEventListener(KeyboardEvent.KEY_DOWN, tusabasildi);
stage.addEventListener(KeyboardEvent.KEY_UP, basmaisibitti);
var keys:Array = [];
function hareket(e:Event):void
{
    if (keys[Keyboard.UP] && keys[Keyboard.RIGHT])
    {
        araba.y -=  3;
		araba.x +=  3;
		araba.rotation=315;
    }
	else if (keys[Keyboard.UP] && keys[Keyboard.LEFT])
    {
        araba.y -=  3;
		araba.x -=  3;
		araba.rotation=225;
    }
	else if (keys[Keyboard.DOWN] && keys[Keyboard.LEFT])
    {
        araba.y +=  3;
		araba.x -=  3;
		araba.rotation=135;
    }
	else if (keys[Keyboard.DOWN] && keys[Keyboard.RIGHT])
    {
        araba.y +=  3;
		araba.x +=  3;
		araba.rotation=45;
    }

	else if (keys[Keyboard.RIGHT])
    {
        araba.x +=  3;
		araba.rotation=0;
    }
    else if (keys[Keyboard.LEFT])
    {
        araba.x -=  3;
		araba.rotation=180;
    }
    else if (keys[Keyboard.UP])
    {
        araba.y -=  3;
		araba.rotation=270;
    }
    else if (keys[Keyboard.DOWN])
    {
        araba.y +=  3;
		araba.rotation=90;
    }
}
function tusabasildi(e:KeyboardEvent):void
{
    keys[e.keyCode] = true;
}
function basmaisibitti(e:KeyboardEvent):void
{
    keys[e.keyCode] = false;
}

Uygulamamız aşağıdaki gibidir.

[kml_flashembed publishmethod=”static” fversion=”8.0.0″ movie=”http://www.mustafaakbal.com.tr/wp-content/uploads/2013/05/capraz.swf” width=”550″ height=”300″ targetclass=”flashmovie”]

Get Adobe Flash player

[/kml_flashembed]

Bir cevap yazın

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