Citrus Engine nedir?
ActionScript 3.0 ile yazılmış oyun motoru.
Kısaca; hazır sınıfları kullanarak kısa zamanda oyun (platform oyunu) hazırlayabiliyorsunuz.
Zaman zaman burada Citrus Engine hakkında bilgi ekleyeceğim.
Bu arada mutlaka şu videoları izlemelisiniz:
SAYFA 1
04.08.2011
Citrus Engine ile çok az kod ile şunu yapabilirsiniz:
05.08.2011
Citrus motorunu kullanabilmek için şunlar gereklidir :
- Adobe Flash Builder 4 ve üstü
- şu dosyalar : source (gerekli sınıflar ve swc)
İlk adımlar :
1. üstteki klasörü indirip düzgün bir yere açınız (açılan dosya ismi Source kaldığını varsayıyorum)
2. Adobe Flash Builder 'i açın (bendeki FB 4.5 versiyonu)
3. File-> New -> Actionscript Project
4. Project name : Citrus1
5. Folder : masa üstünde Citrus1 adlı yeni bir klasör oluşturup seçelim
6. Diğer ayarlar kalsın ve NEXT tıklayın
7. Source Path 'i seçip Add Folder ile birinci adımda oluşturduğumuz klasörü (Source) seçelim. Bu klasörün içeriği şu şekilde olmalı:
Klasör Yapısı
8. Library path 'ı seçip Add SWC ile bu aynı klasörde bulunan Box2D.swc dosyasını seçelim.
9. Ayrıca mecbur değiliz ama Türkçe olması için attaki ayarları şu şekilde yapalım:
ince ayarlar
10. Son olarak Finish tıklayalım.
11. Projemizde ufak bir ayar yapalım. Project menüsünden Properties i açalım ve alttaki ayarları şu şekilde değiştirelim:
HTML ayarı
Böylece her kontrol ettiğimizde boşu boşuna HTML sayfası oluşmaz .
12. Açılmış olması gereken Citrus1.as dosyasını şu şekilde değiştirin:
| package { import com.citrusengine.core.CitrusEngine; import flash.display.Sprite; public class Citrus1 extends CitrusEngine { public function Citrus1() { super(); } } } |
CitrusEngine sınıfını extend ediyoruz gördüğünüz gibi. Aslında sınıf olaylarına fazla takılmadan ilerlemek en iyisi. Bizim için önemli olan CitrusEngine 'in asıl kısımları. O yüzden kullanacağımız as dosyaları üzerinde zaman harcamak istemiyorum.
13. Asıl kodlarımızı biz bu Citrus1.as dosyasında değil de CitrusEngine'in State sınıfını extend ettiğimiz ayrı bir AS dosyasında kullanacağız.
6.8.2011
14. Bunun için File -> New -> ActionScript Class seçerek yeni bir sınıf dosyası açalım. İsmine Oyun diyelim ( Name = Oyun ) ve Finish tıklayalım.
15. Bu Oyun.as dosyasını şu şekilde düzenleyin:
package |
16. Bu iki dosyayı şablon dosya olarak görebilirsiniz. Bu şekilde olmalı bunlar. Bundan sonra ise asıl kodlarımızı yazacağız. Şu anki hali ile hatasız boş bir swf çıktısı almanız gerekiyor. Eğer hata var ise üstteki 15 adımı tekrar gözden geçiriniz.
13.8.2011
Şimdi hemen ilk karakterimizi ve bir zemin yerleştirelim:
17. Oyun.as dosyamıza bazı satırlar ekleyeceğiz. Şu şekilde olsun:
package // Açıklama 2 // Açıklama 3 |
Açıklama 1 : Box2D sınıflarını kullanmak için bunu mutlaka eklemeliyiz. Diğer unsurları eklemeden görsel olarak bize birşey vermese de standart bir işlem. Burada box2D.visible=true; ifadesi önemlidir. Eğer true ise; oluşan swf'de karakterler temsili olarak görünür (yani etki alanları dikdörtken olarak görünür). İleride grafiklerimiz hazır olduğunda bunu false yaparak sadece asıl grafiklerimizi görmemizi sağlarız, true olduğu sürece tüm objelerin kodlara etki eden alanları görünür. Objelerimizi test etmek için true yapmak gerekir genel olarak.
add ile bunu ekliyoruz. (Citrus'un addChild benzeri bir methodu)
Açıklama 2 : İşte bu bizim yön tuşları, Space tuşu ile yön vereceğimiz karakterimizi ekleyeceğimiz kısım. Bunun için Hero sınıfını kullanıyoruz. Citrus'da her objeye bir isim vermek durumundayız. " " arasındaki isimleri kastediyorum. Ben hakan demişim. İsterseniz kedinizin veya arkadaşınızın ismini de verebilirsiniz. Şu an için nasıl bir önemi var bunun ben de bilmiyorum. Daha sonra bu objeyi de sahneye add ile ekliyoruz. Sonrada koordinat özelliklerini veriyoruz. Başka özellikleri de var, ileri de zamanla kullanacağız; hero dan sonra . (nokta) yaparsanız liste olarak karşınıza çıkması gerekiyor.
Açıklama 3'ü yazmadan bu şekilde swf'nizi oluşturursanız göreceksiniz ki, hero'muz düşüveriyor. Yerçekimi var yani.....
Açıklama 3 : Bu yüzden ayak basacak zemin lazım bize. Bunu da en temelinden Platform sınıfı ile yapıyoruz. Aynı şekilde buna da isim vermemiz gerekiyor pl1 dedim ben. Asıl önemli olay burada: Bazı özellikleri objeleri oluştururken vermemiz gerekiyor. Bu özellikleri {özellik1:kırmızı,özellik2:sarı,özellik3:20} gibi {} arsında virgüller ayırarak yapıyoruz. Açıklama 2' de koordinatları da bu şekilde verebilirdik, ama mecburi değildi. Fakat width ve height özellikleri mecburi. Bunları ilk anda belirlememiz gerekiyor.
Tüm kodları yazdıktan sonra swf mizi oluşturup test edelim. Sayfanın üstündeki sonuca ulaşmış olmanız gerekir.