Corona SDK – Fonksiyonlar, Koşullu İfadeler, Döngüler, Listeler
merhabalar, Corona SDK hakkındaki 3. dersimizle devam ediyoruz. Bu derste aşağıdaki konu başlıklarından bahsedilecek, ve Corona SDK ile yazdığım bir oyunun(4 Harf 1 Kelime) demo videosu ile bitireceğim.
Bu dersin konu başlıkları :
- Fonksiyonlar
- Koşullu İfadeler
- Döngüler
- Listeler / Tablolar
Fonksiyonlar
Corona SDK ile lua dilinde uygulama veya oyun yazarken çok kez fonksiyonlara ihtiyaç duyacaksınız. Fonksiyonlar ile genelde defalarca yazmak zorunda kalacağınız kod bloğunu bir kez yazar ihtiyaç duyduğunuzda çağırırsınız.
ÖNEMLİ NOT: ÖRNEK UYGULAMA CORONA SIMULATOR 2015.27.31 İLE TEST EDİLMİŞTİR. TEST EDİLİRKEN CİHAZ OLARAK Android(xxhdpi) CİHAZI SEÇİLMİŞTİR. LÜTFEN TÜM TESTLERİ BU CİHAZDA YAPINIZ. İÇERİĞİN EKRAN BOYUTUNA VE ÇÖZÜNÜRLÜĞÜNE GÖRE OPTİMİZASYONU KONULARINI İLERİKİ DERSLERİMİZDE ANLATACAĞIM. SABIRLI OLUN BİRAZ DAHA YOLUMUZ VAR
1. Corona Simulator ü çalıştırın. NEW PROJECT
butonu ile yeni bir proje başlatın.
2. Application Name
kısmına ben örnek amaçlı Corona Tutorial – 3 adını verdim siz de bunu veya başka birşey girebilirsiniz. Daha sonra OK
butonuna tıklayarak bitirin. Corona Simulator in projeyi oluşturmasını, proje klasörünü açmasını ve simulatörde projeyi çalıştırmasını göreceksiniz. Şimdilik karşınıza boş ve siyah bir ekran gelecektir.
3. Oluşturulan proje klasörüne gidin ve config.lua
dosyasını herhangi bir text editörde açın.
Aşağıdaki değişiklikleri yapıp dosyayı kaydedin.
width = 320 --> width = width height = 480 --> height = height
4. Oluşturulan proje klasörüne gidin ve main.lua
dosyasını herhangi bir text editörde açın. Ve içeriği aşağıda verdiğim satırlar ile değiştirip kaydedin.
-- durum çubuğunu kaldırma display.setStatusBar(display.HiddenStatusBar) -- arkaplan rengi gri bir dikdörtgen oluşturma local mainBg = display.newRect(display.contentCenterX,display.contentCenterY,display.contentWidth, display.contentHeight) mainBg:setFillColor(0.4,0.4,0.4)
Ne Yaptık ? Kod içerisine açıklamalar bıraktım lütfen onlara göz atın. Bildirim çubuğunu kaldırdık ve cihaz ekranı büyüklüğünde gri bir dikdörtgen oluşturduk.
Bu adımdan sonra simulatörde karşınıza şöyle bir ekran gelmiş olmalıdır :
5. Şimdi fonksiyon oluşturmak ve gerektiğinde kullanmak adına mini bir örnek yapalım. Aşağıdaki fonksiyonu main.lua
dosyasına ekleyin.
-- 100 px yarıçapında ekranın tam ortasında bir daire oluşturan fonksiyonumuz local function createCircle() local circle = display.newCircle(display.contentCenterX, display.contentCenterY, 100) end -- createCircle adlı fonksiyonumuzu işini yapması için çağırıyoruz createCircle()
Kod içine açıklamalar bıraktım lütfen okuyunuz ek olarak buradan başka açıklama yapmayacağım. Yine anlamadığınız şeyler olursa yorum atarak sorabilirsiniz.
Bu adımdan sonra Corona Simulator deki görüntü şöyle olmalıdır :
Koşullu İfadeler
Oyun yazarken çok kez koşullu ifadelere ihtiyaç duyacaksınız. Temelde bir veya birden fazla koşula göre bir iş yaptırma veya koşula göre uygun bir işi yaptırma gibi düşünebilirsiniz. Koşullu ifadeler için if Then Else
ve if then elseif then else then end
gibi ifadeler kullanılır. Örneğimizle rahatlıkla anlayacaksınız. Aşağıdaki kodu main.lua
dosyasına ekleyin.
-- color adında bir değişken oluşturup ilk değeri olarak 2 atadık local color = 2 -- koşullu ifademiz -- color değişkeni 1 ise ekranın ortasında kırmızı bir daire oluşturuyoruz if color == 1 then local circle = display.newCircle(display.contentCenterX, display.contentCenterY, 100) circle:setFillColor(1,0,0) -- color değişkeni 2 ise ekranın ortasında yeşil bir daire oluşturuyoruz elseif color == 2 then local circle = display.newCircle(display.contentCenterX, display.contentCenterY, 100) circle:setFillColor(0,1,0) -- color değişkeni 1 veya 2 değil ise ekranın ortasında mavi bir daire oluşturuyoruz else local circle = display.newCircle(display.contentCenterX, display.contentCenterY, 100) circle:setFillColor(0,0,1) end
Kod içine açıklamalar bıraktım lütfen okuyunuz.
Bu adımdan sonra Corona Simulator deki görüntü şöyle olmalıdır :
Döngüler
Bazen kod bloklarını defalarca çalıştırmanız gerekebilir bu ve buna benzer durumlarda yardımcınız döngülerdir. for
döngülerini içeren bir örnek ile devam edelim.
main.lua
dosyasına şunları ekleyin :
-- değişkeni i olan ve 1 den 4 e kadar 4 dahil birer birer artarak çalıştırılan bir for döngüsü oluşturuyoruz -- döngü içindeki kod bloğu 4 kez çalıştırılacak for i = 1, 4, 1 do local rectangle = display.newRect(200 + (i-1)*225, 200, 200, 200) -- i değişkeni 1 ise dikdörtgenin rengini kırmızı yap if i == 1 then rectangle:setFillColor(1,0,0) -- i değişkeni 2 ise dikdörtgenin rengini yeşil yap elseif i == 2 then rectangle:setFillColor(0,1,0) -- i değişkeni 3 ise dikdörtgenin rengini beyaz yap elseif i== 3 then rectangle:setFillColor(1,1,1) -- i değişkeni 1 veya 2 veya 3 değil ise dikdörtgenin rengini mavi yap else rectangle:setFillColor(0,0,1) end
Kod içine açıklamalar bıraktım lütfen okuyunuz.
Bu adımdan sonra Corona Simulator deki görüntü şöyle olmalıdır :
Listeler / Tablolar
Corona SDK ile oyun yazarken çokça kullanıcağınız yararlı araçlardan biri de listelerdir/dizilerdir. Lua programalama dilinde bunlara Tables
denmektedir. Listelerle alakalı daha detaylı bilgiye şuradan ulaşabilirsiniz.
Peki ne işe yarar bu listeler? Birden fazla farklı farklı nesneyi tek bir değişken/liste içerisinde saklamanızı ve her bir nesneye ulaşabilmenizi sağlar.
Örnek amaçlı şunları yapın :
main.lua
dosyasında for döngüsü hemen öncesine şu satırı ekleyin:
-- rectangles adında bir dizi/liste oluşturuyoruz local rectangles = {}
for döngüsünün hemen bitiminde end anahtar kelimesinden önce şu satırı ekleyin:
-- oluşturduğumuz dikdörtgenleri i indeksi ile birer birer rectangles adlı listemize ekliyoruz rectangles[i] = rectangle
main.lua
dosyasının en sonuna şu satırı ekleyin:
-- rectangles adlı listemizdeki ilk nesneye ulaşıp rengini mor olarak değiştiriyoruz rectangles[1]:setFillColor(0.6,0.5,1)
Kod içine açıklamalar bıraktım lütfen okuyunuz.
Bu adımdan sonra Corona Simulator deki görüntü şöyle olmalıdır :
Peyam – Gazeteler
Peyam Osmanlıcada Haber demektir bunu biliyor muydunuz?
Kaynak Kod
4 Harf 1 Kelime Oyunum
Bu derste ve önceki Corona SDK derslerinde sizlere anlattığım hemen hemen herşeyi ve çok daha fazlasını kullandığım 4 Harf 1 Kelime adlı oyunumun demo videosunu aşağıdan izleyebilirsiniz. Oyuncu temelde parmağını 4 harf üzerinde doğru sırada kaydırarak kelimeyi tahmin etmeye/oluşturmaya çalışıyor. Oyunun tüm projesini CodeCanyon‘a gönderdim 1-2 gün içinde mağazada yayında olmasını bekliyorum. Oyun hakkında merak ettiğiniz şeyler varsa mustafademir604@gmail.com email adresimden bana ulaşabilirsiniz.
Bunun gibi birçok ders hazırlayıp yayınlamak istiyoruz ancak bunun için gerçekten ciddi desteğe ihtiyacımız var arkadaşlar. Lütfen 1 dakikanızı ayırıp bu dersi facebook veya twitter hesabınız üzerinden paylaşarak bize destek olun.
Bir sonraki dersimizde görüşünceye dek,
Herkese İyi Çalışmalar!