×

Langue

Fermer
Atelier 801
  • Forums
  • Dev Tracker
  • Connexion
    • English Français
      Português do Brasil Español
      Türkçe Polski
      Magyar Română
      العربية Skandinavisk
      Nederlands Deutsch
      Bahasa Indonesia Русский
      中文 Filipino
      Lietuvių kalba 日本語
      Suomi עברית
      Italiano Česky
      Hrvatski Slovensky
      Български Latviešu
      Estonian
  • Langue
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • [e-Kitap] Lua Programlama Dili 2
[e-Kitap] Lua Programlama Dili 2
Benbirkralm
« Citoyen »
1399836780000
    • Benbirkralm#0000
    • Profil
    • Derniers messages
    • Tribu
#1
  0
Merhaba Arkadaşlar. Benim, Benbirkralm. Sizlere 4 ay sonra yazdığım yeni kitabımı göstermek istiyorum:

[e-Kitap] Lua Programlama Dili 2

~ Kontrol Yapıları
~ Kendi komutlarını oluşturma
~ Parametre Belirleme


1) KONTROL YAPILARI
1.1) if/then/else
'if' komutu, 'Eğer anlamına gelir.'. "Eğer birşey olursa" gibi işlevlerde kullanq ılır:
a dit :

if test==5 then

Bu komutun çalışması için, 'test' parametresi, 'end' ve bir fonksiyon gerekmektedir.
a dit :

test=5

function test() -- 'test' fonksiyonu
if test==5 then -- Eğer 'test' paranetresi, 5 ise;
print("Çalışıyor!")
end -- if'in sonu
end -- Fonksiyon sonu

'then' komutu, 'sonra' anlamına gelir. 'if', 'else', 'elseif' gibi komutlarda kullanılır.
'else' komutuysa, 'değilse' anlamına gelir. 'if' komutundan sonra kullanılır. "Birşey olmazsz" anlamına da gelir.
a dit :

if test=5 then
else
end

Komutları birleştirelim:
a dit :

test=5

function test() -- 'test' fonksiyonu
if test==5 then -- Eğer 'test' parametresi, 5 ise;
print("Çalışıyor!")
else -- (Eğer 'test' parametresi 5,) değilse;
end -- Fonksiyon sonu

--- Şimdi, fare ölünce, test() komutunun çalışmasını sağlayalım:

function eventPlayerDied(n)
test()
test = test + 1
end

1.2) While
'While' komutu, bir değerden diğer değere kadar geçen bölümü anlatır. Sadece sayısal değerlerde olur. Örnek olarak:
a dit :

local i = 1
while a do
print (a)
i = i + 1
end

1.3) Repeat/Until
Repeat komutu bir sayıyı düşürmeye, Untik ise durdurmaya yarar.
a dit :

i = 5
repeat
print(i)
i = i - 1
until i==0

1.4) for
for, değerlendirmeye yarar:
a dit :
for i=2,60,4 do
print(i)
end

1.5) break/repeat
break, bir döngüyü durdurmaya; repeat ise, bir döngüyü devam ettirmeye yarar. Örnek olarak bir fare ölene kadar devam edecek bir döngü yazalım:
a dit :

süre=0
function eventLoop(t, rm)
time=time+0.5
end

function eventPlayerDied(n)
if time >= 0 then
break time
time=-10
elseif time <= 0 then
return time
end
end

2) Kendi komutlarını oluşturma
Programlama Dillerinin ne kadar güçlü bir zekasının olduğunu bilirsiniz. Bunun en kolay ispatını Matematik İşlemlerinde görürüz. Şimdi bir bakalım Matematik İşlemleri Nasıl Yapılır:
En basitten işlem yazdırma:
a dit :
print(1+1) --- 1 + 1
print(1-1) --- 1 - 1
print(1*1) --- 1x1
print(1/1) --- 1:1 (1/1)
a dit :

Böyle yaparak bir işlemi bulabiliriz. Fakat bunun değişik bir yolunu da kullanabiliriz:
a dit :

function topla(birinciSayi, ikinciSayi) --- 'topla' fonksiyonu
print(birinciSayi+ikinciSayi) --- Sayıları topla ve yazdır
end

topla("5","4") -- 5 ve 4'ü topla

Yada bir yuvarlama script'i yazabiliriz:
Yuvarlama : math.ceil

function yuvarla(sayi)
print(math.ceil(sayi)) --- Sayıyı yuvarla yazdır
end

yuvarla("0.452") --- Sayıyı yuvarla ve yazdır

Birde komutla çalıştırılacak bir script yazalım. Örneğin bir öldürme komutu.
a dit :

function kill(n)
tfm.exec.killPlayer(n)
end
function eventChatCommand(n, cmd)
if cmd=="kill.me" then --- Eğer komu 'kill.me' ise
kill(n)
end
end
--- !kill.me

3) Parametre Belirleme:
Parametreler, oyun içi değerleri belirler. Bunlar birkaç koşul dışında herşey olabilir:
* PARAMETRELER SAYI İLE BAŞLAYAMAZ;
* PARAMETRELER, TÜRKÇE HARFLERDEN OLUŞAMAZ;
* PARAMETRELER, DEĞERSİZ OLAMAZ!

Örnek bir parametre olarak:
a dit :
parametre1="Bu bir parametredir!"

Parametreleri, çeşitli yerlerde kullanabiliriz:
a dit :
parametre1="Bu bir parametredir!"
print(parametre1) --- paramegre1'i yazdır.

Bunları, gerçekten heryerde kullanabiliriz:

a dit :
parametre1="Bu bir parametredir!"
function eventLoop(t, rm)
print(parametre1)
end

Parametre değerleri sayı da olabilir:
a dit :
parametre2=666

Bunları da heryerde kullanabiliriz:
a dit :
parametre2=666
function eventNewGame()
if parametre2==666 then
print("The end is near,")
else
print("Be careful!")
end
end

Bu parametrelere, true/false değerlerini de ekliyebiliriz:
a dit :
parametre3=true

Bunları, heryerde kullanamayız. Örneğin, print(parametre3) yapamayız. Bu, 'nil' hatasını verir. Ama eğer parametre3==true ise, diyebiliriz. Yada bu komutu tersine çevirebiliriz:
a dit :
parametre3=true
function test()
if parametre3==true then
parametre3=false
end
end
test()

Sadece, parameter değeri de kullanabiliriz:
a dit :

function eventNewGame()
if parametre4 then
print("Çalışıyor!")
elseif not parametre4 then
print("Böyle bir komut yok ^_^")
end
end


Benbirkralm
1399836780000
    • Benbirkralm#0000
    • Profil
    • Derniers messages
    • Tribu
#2
[Modéré par Ediz]
Enginfener
« Citoyen »
1399837140000
    • Enginfener#0000
    • Profil
    • Derniers messages
    • Tribu
#3
  0
Teşekkür ederim
Benbirkralm
« Citoyen »
1399837260000
    • Benbirkralm#0000
    • Profil
    • Derniers messages
    • Tribu
#4
  0
Enginfener a dit :
Teşekkür ederim

Ben teşekkür ederim.
Thewildnes
« Citoyen »
1399837260000
    • Thewildnes#0000
    • Profil
    • Derniers messages
    • Tribu
#5
  0
Güzel konu emeğine sağlık
Bilmemfarene
« Censeur »
1399837440000
    • Bilmemfarene#0000
    • Profil
    • Derniers messages
    • Tribu
#6
  0
Teşekürler.
Neonstrayzer
« Citoyen »
1399837440000
    • Neonstrayzer#0000
    • Profil
    • Derniers messages
    • Tribu
#7
  0
Teşekkürler ancak ;
a dit :

test=5

function test() -- 'test' fonksiyonu
if test==5 then -- Eğer 'test' parametresi, 5 ise;
print("Çalışıyor!")
else -- (Eğer 'test' parametresi 5,) değilse;
end -- Fonksiyon sonu

--- Şimdi, fare ölünce, test() komutunun çalışmasını sağlayalım:

function eventPlayerDied(n)
test()
test = test + 1
end

Eğer testi test() fonksiyonundan sonra arttırıorsak bir işe yaramaz :d
Fatihmilano
« Citoyen »
1399838280000
    • Fatihmilano#0000
    • Profil
    • Derniers messages
    • Tribu
#8
  0
Ooo bir bakalim.
Oyga
« Citoyen »
1399842120000
    • Oyga#0000
    • Profil
    • Derniers messages
    • Tribu
#9
  0
Bilmeyenler öğrenebilir. Teşekkürler.

Ayrıca quote içinde quote olmaz. Konuyu düzenlemen gerekir. Örnek:

http://i.imgur.com/JaaITBL.png
-

http://i.imgur.com/VQeClp5.png
:D
Enginfener
« Citoyen »
1399842780000
    • Enginfener#0000
    • Profil
    • Derniers messages
    • Tribu
#10
  0
Benbirkralm a dit :



1) KONTROL YAPILARI
1.1) if/then/else
'if' komutu, 'Eğer anlamına gelir.'. "Eğer birşey olursa" gibi işlevlerde kullanq ılır:


kullanq ??
Vaporous
« Citoyen »
1399893360000
    • Vaporous#0999
    • Profil
    • Derniers messages
    • Tribu
#11
  0
Teşekkürler.
Fatihmilano
« Citoyen »
1399894260000
    • Fatihmilano#0000
    • Profil
    • Derniers messages
    • Tribu
#12
  0
Benbirkralm a dit :
Örneğin, print(parametre3) yapamayız.

a=true print(a)
Opsfentek
« Citoyen »
1399896660000
    • Opsfentek#0000
    • Profil
    • Derniers messages
    • Tribu
#13
  0
Güzeel
Edit : while hatası ## Init Error : Opsfentek.lua:2: attempt to index ? (a nil value)
## [Opsfentek] Lua script loaded in 0 ms (4000 max)
Benbirkralm
« Citoyen »
1399986300000
    • Benbirkralm#0000
    • Profil
    • Derniers messages
    • Tribu
#14
  0
Değerli yorumlarınıza teşekkür ederim. Hata olması normaldir. Konunun tamamını telefondan yazdım. Düzelteceğim.
Keinja
« Citoyen »
1399986420000
    • Keinja#0000
    • Profil
    • Derniers messages
    • Tribu
#15
  0
Benbirkralm a dit :
Değerli yorumlarınıza teşekkür ederim. Hata olması normaldir. Konunun tamamını telefondan yazdım. Düzelteceğim.

Güzel bir konu ihtiyacım olan bilgilere ulaştım.
+Benbirkralm
« Citoyen »
1405075620000
    • +Benbirkralm#0000
    • Profil
    • Derniers messages
    • Tribu
#16
  0
http://atelier801.com/topic?f=512054&t=780217
Kilitlermisiniz?
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • [e-Kitap] Lua Programlama Dili 2
© Atelier801 2018

Equipe Conditions Générales d'Utilisation Politique de Confidentialité Contact

Version 1.27