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 :

enter image description here
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

tanıtım_gorsel

Peyam ile gündemi kolay, akıllı,
ücretsiz ve hızlı yoldan yakalayın.

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!

Şunlar da ilginizi çekebilir

LEAVE A COMMENT