29 Ocak 2015 Perşembe

Corona SDK 2.Ders Lua Diline Giriş

  Ahmet Şimşek       29 Ocak 2015 Perşembe

Corona SDK derslerimize kaldığımız yerden devam ediyoruz. İlk dersimizde Corona nın kurulumunu yapmış ve çalışma ortamımızı oluşturmuştuk. Bu dersimizde oyun veya uygulamalarımızın script kısmını yazacağımız dil olan Lua dilinden bahsedeceğiz. Bu ders hem Corona SDK konusunda kendini geliştirmek isteyenlere hemde Lua dili konusunda fikir sahibi olmak isteyenlere hitap eden bir yazı olacak.

Nedir bu Lua?
Lua 1993 yılında C dili ile yazılmış ve cross platform bir script dilidir. Birçok oyun ve yazılımın geliştirilmesinde script dili olarak kullanılmıştır ve kullanılmaktadır. (Lua dilini kullanan bilgisayar oyunları derlemesi http://en.wikipedia.org/wiki/Category:Lua-scripted_video_games) Lua nın bu kadar yaygın olarak kullanılmasının belli başlı nedenlerinden bazıları ücretsiz olması,diğer script dillerine göre daha kolay öğrenilebilir bir dil olması.

Lua hakkında genel kültür seviyesinde bilgi edindiğimize göre şimdi Lua dilinde değişken,koşul yapıları ve fonksiyonlar gibi ana programlama elemanlarına göz atalım. Önce ilk dersimizde kurmuş olduğumuz Corona SDK yı ve bir kod editörünü açıp başlayalım.

Değişkenler
Lua dinamik tipli bir script dilidir. Dinamik tipli script dillerinde değişken oluşturulurken değişken türü tanımlaması yapılmaz buna program çalıştırıldığında derleyici yada yorumlayıcı karar verir. Değişkenler erişim alanlarına göre global yada lokal olarak oluşturulabilirler. Alttaki kodları main.lua olarak kaydedip Corona Simulator ile çalıştırırsanız komut satırında Corona SDK yazdığını göreceksiniz. Bu Corona SDK için küçük sizin için büyük bir adım tarzı klişe bir cümle ile dersimize devam edelim. Daha önce başka bir programlama dili ilgilendiyseniz gözünüze çarpan ilk detay noktalı virgül olmamasıdır. Lua dilinde noktalı virgül kullanma zorunluluğu yoktur. Kullanırsanızda farketmez.

degisken = "Corona SDK"
print(degisken)

Örneğin yukarıdaki kodları tek satırda yazarak tekrar çalıştırırsanız sorunsuz çalışacağını görürsünüz.

degisken = "Corona SDK" print(degisken)

Operatörler
İfadeler,operatörler veya işleçler diyebileceğimiz programlama elemanlarına gelelim şimdide. Operatörler programlamada aritmatik işlemler,mantıksal sınamalar gibi ana işlemler için kullanılırlar.

Aritmatik operatörler
  • +
  • -
  • *
  • /
  • ^
Değişkenler yada direk sayısal değerler üzerinde aritmatik işlemleri yapabilmemizi sağlarlar. Klasik dört işlem. Sonuncu "^" karakteri ile örneğin 3^5 yazarak 3 ün 5 inci kuvvetini hesaplıyoruz.

degisken1=5
degisken2=10

print(degisken1+degisken2)
print(degisken1-degisken2)
print(degisken1*degisken2)
print(degisken1/degisken2)
print(degisken1^degisken2)








Mantıksal operatörler
  • and
  • or
  • not
Bu operatörler ile değerleri kendi içerisinde sınayabiliriz.
and operatörü sınadığı iki değişken/değer eşit değilse sağdaki değişkeni/değeri geri döndürür.
or operatörü sınadığı iki değişken/değer eşit değilse soldaki değişkeni/değeri geri döndürür.
not operatörü önüne geldiği değişkenin mantıksal değerinin tersini döndürür.

print(5 and 10)
print(5 or 10)
print(not 5)
print(not not 5)
print(not nil)
print(not false)
print(not "indatawetrust")









*nil değeri Lua dilinde tanımsız anlamına gelmektedir. Değer atanmamış bir değişkeni çağırdığınızda nil olarak gözüktüğünü görebilirsiniz.


İlişkisel operatörler
  • <
  • >
  • <=
  • >=
  • ==
  • ~=
Bu operatörler ile veriler arasındaki ilişkileri sınayabiliyoruz. Örneğin x değişkeni y değerinden den büyük mü? z değişkeni k değişkenine eşit mi? gibi. Bu sınamalardan geri dönecek değerler eğer istenen ilişki sağlanıyorsa true sağlanmıyorsa false olur.

degisken1 = 1
degisken2 = 2

print(degisken1<degisken2)
print(degisken1>degisken2)
print(degisken1<=degisken2)
print(degisken1>=degisken2)
print(degisken1==degisken2)
print(degisken1~=degisken2)


Yukarıdaki kodları simulator de çalıştırırsanız aşağıdaki şekildeki gibi bir çıktı alırsınız.
İlk sınamada degisken1 degisken2 den küçük olduğu için bu şart sağlandığından true döndü.
İkincisinde ise büyük olup olmadığı soruldu ve bu şart sağlanmadığından false döndü.
Üçüncüsünde küçük veya eşit olup olmadığı soruldu ve küçüklük şartı sağlandığından true döndü.
Dördüncüde ise büyüklük ve eşitlik sağlanmadığından false döndü.
Beşinci sınama değerlerin eşit olup olmadığını sorguladı. Eşit olmadıkları için false döndü.
Altıncı sınama ise ~= operatörü ile değişkenlerin eşit olmamalarını sınadı. Eşit olmadıkları için true döndü.







Birleştirme

String değişkenleri/değerleri birleştirmek için aralarına .. koymak yeterlidir.

a = "Corona"
b = "SDK"
c = a..b
print(c)





Bu dersimizde Lua dilinde değişkenlerin ve operatörlerin nasıl kullanacağımızı gördük. Sonraki dersimizde kontrol yapıları ve fonksiyonları nasıl kullanacağımızı göreceğiz. Sonraki yazılarımızda görüşmek üzere. Yazılarda hertürlü soru,öneri ve eleştirilerinizi yazarsınız sevinirim.
logoblog

Thanks for reading Corona SDK 2.Ders Lua Diline Giriş

Previous
« Prev Post

3 yorum:

  1. Merhaba ders için teşekkürler yalnız bi sorum olucak corona programı ile oyun dışında android uygulama yazmak mümkünmü? Lua bu konuda ne kadar yeterli java dahamı iyi?

    YanıtlaSil
    Yanıtlar
    1. Lua'dan ziyade Corona SDK bir android uygulaması geliştirmek için sunduğu birçok api var. Uygulamanın ihtiyacına göre istenilen api kullanılıyor burada Lua dilinin kolaylaştırdığı şey modüler yapısı ile kullanmak istediğiniz api yi koda dahil etmeniz yeterli oluyor. Örneğin farklı sahneler arasındaki ilişkileri yönetmeyi sağlayan "storyboard" apisini

      local storyboard = require "storyboard"

      diyerek kullanabilme imkanı veriyor. Özetle çok gelişmiş bir uygulama olmadıkça Corona SDK ile android uygulamaları geliştirmek mümkün. Daha gelişmiş uygulamalar geliştirilebilir elbette ama Java,C++ gibi diller ile geliştirmeye göre performans açısından kayıp olması muhtemel.

      Sil
  2. Sitenin sahibi benle iletişime geç.

    https://www.facebook.com/profile.php?id=100009192902287

    YanıtlaSil