Flash ile Helikopter Oyunu Yapımı

Flash ile Helikopter Oyunu Yapımı

Merhaba

Bu dersimizde Flash ile Uçak oyunu yapmayı öğreneceğiz. Oyun yaparken öncelikle oyunun amacını ve görüntüleri bulmanız gerek. Aynı zamanda oyunun kurgusu da oynayıcı kitleye hitap edecek tarzda olmalı. Oyuncuya hitap etmeyen oyun hiçbir işi yaramayacağını unutmayalım. Öncelikle derse başlamadan sonucun nasıl olacağını görelim.

Yaptığımız oyunun sonucu şunun gibi olacak:

Oyun’u yapmaya başlayalım. Oyunu yapmak için öncelikle Flash programını açmanız gerekiyor, yoksa yapamazsınız !

Yapmanız gerekenleri aşamaları şu şekilde:

1)Oyunu kafanızda kurgulayın

Tabii ki bu derste size oyunun yapım aşamalarını anlatacak değilim. Sadece bu işi merak sararsanız aklınızda bulunması için yazıyorum.

Bu aşamada yapmanız gereken oyunda (bizim yapacağımız oyunda uçak olacak)ki cisimleri Photoshop, Illıstrator gibi bir çizim programında çizmek. Bunun için Flash’ı da kullanabilirsiniz.

Ben çizimi Illustrator’de yaptım. Sonuç şöyle;

Uçak

Resmin. ai şeklinde dosyası yazının altındaki ekte.

Bunu Flash’ta bir A.s 2 dosyası açarak açtığımız dosyanın içine çekiyoruz.

2)Kodlayın!

Oyunu kurguladık, tasarladık şimdi geldik kodlamaya…Bu aşamada bilmeniz gereken bir dil var As2.Bu dil Flash adlı programımızın kullandığı değişik bir dildir. Bu yazda bu dili bilmedize gerek kalmayacak çünkü ben size kodları hazır olarak vereceğim.Kodlamaya başlamadan önce size Ali Oğul abimizin hazırlamış olduğu siteye bir uğrarsanız bayağı bir iyi olur.Sitenin adresi;

http://www.flasharsivi.com

 Kodlamaya başlayalım.Yapacağımız oyunda uçak fareyi takip edecek.Cismin fareyi takip etmesini sağlamak için farklı kodlar mevcut fakat bizim uçağımızın dönüşleri yumuşak olmalı.

Bunu sağlamak için kodumuz aşağıda;

 

dx = _parent._xmouse-_x;
 dy = _parent._ymouse-_y
angle = Math.atan2(dy, dx);
distance = Math.sqrt(dx*dx + dy*dy)
_rotation = angle * 180/Math.PI;
if (speed < distance) {
_x += Math.cos(angle) * speed;
 _y += Math.sin(angle) * speed; }

Şimdi bu kodu nasıl uygulayacağız resimli olarak anlatalım.

a)Öncelikle sahne alanına aldığımız uçak resmini F8 tuşuna basarak yeni sembol oluşturun.Ardından sembolümüzün adını hib koyalım.

1

b)Ardından bir iniş alanı oluşturalım.Uçağımız bu iniş alanına geldiğinde yeni bir kareye gidip ‘Kazandın’ onayını alacak.İniş alanımızı oluşturup,sembol yapın. İsmini goal koyun.

2

c)Ana katmanın dışında yeni bir katman oluşturun ve oluşturduğunuz katmanın ismini Kodlar olarak değiştirin.

3

d)Kodlar katmanında 1.kareye tıklayıp F9 a basarak kodlar bölümünü açın.

Buraya şu kodları yapıştırın;

// the difference of the current position with the mouse
dx = _parent._xmouse-_x;dy = _parent._ymouse-_y            
 // angle with respect to mouse (radians)
  angle = Math.atan2(dy, dx);    
  // distance from mouse
distance = Math.sqrt(dx*dx + dy*dy)               
  // set rotation to angle converted to degrees
 _rotation = angle * 180/Math.PI;
// move if the distance is more than speed
 if (speed < distance) {
 // cos and sin used to move based on angle and speed
_x += Math.cos(angle) * speed;
_y += Math.sin(angle) * speed;
}
 //helihib alana geldiğinde
 if (_root.goal.hitTest(_x, getBounds(_root).yMax, true)) {
gotoandstop(3);   }

e)Bu kodları yapıştırdıktan sonra sıra uçağımıza uygulayacağımız kodlara geliyor. Uçak için oluşturmuş olduğumuz sembole tıklayın ardından F9 a basıp şu kodları yapıştırın:

onClipEvent(load){

                // how fast to move

                speed = 5;

}

 

onClipEvent(enterFrame){

                

                // the difference of the current position with the mouse

                dx = _parent._xmouse-_x;

                dy = _parent._ymouse-_y

                

                // angle with respect to mouse (radians)

                angle = Math.atan2(dy, dx);

                

                // distance from mouse

                distance = Math.sqrt(dx*dx + dy*dy)

                

                // set rotation to angle converted to degrees

                _rotation = angle * 180/Math.PI;

                

                // move if the distance is more than speed

                if (speed < distance) {

                               // cos and sin used to move based on angle and speed

                               _x += Math.cos(angle) * speed;

                               _y += Math.sin(angle) * speed;

                }

}

Evet … İşlem tamam, artık yaptığımız oyunu önizleme yapabiliriz. Ctrl + Enter ile önizleme yapın. Sonuç;

Kaynak dosyayı indirmek için tıklayın..

Bu dersimizde Flash ise fareyi takip eden uçağı iniş alanına götürme oyununu yapmayı öğrendik.

Bir dahaki derste buluşmak üzere takipte kalın. Ve kalın selametle…

Sorularınız var ise çekinmeyin sorun.

Yazı nasıldı ama?
1 Yıldız2 Yıldız3 Yıldız4 Yıldız5 Yıldız (7 votes, average: 2,71 out of 5)
Loading...
Etiketler : AS2, fareyi takip eden obje, flash, Flash Arşivi, Oyun yapımı, Uçak oyunu,
adet güzel yorum :)
    • Bir yorumda anlatılacaktan fazla şey sormuşsunuz.İnşallah yazılacak yazılar listeme bir yazı notu düşüyorum. Off of… çok yazılacak yazı var 🙂

  1. ya ben yapmaya çalıştım fakat olmadı neden bilmiyorum . ve ben yarına bi oyun yapmam gerekiyo . yardımcı olurmusunuz grafik ödevime 🙂

Yorumlar,bizi seven insanlar!