Buraya eklediğim Animasyon'lar sdlBasic için yazılmış. SdlBasic'i Ubuntu ve Mint'te, Yazılım Merkezi'nden indirebilirsiniz. Kod'ların işlevlerini sdlBasic yardım bölümünden inceleyebilirsiniz. Yardım bölümünün yeterli ve açıklayıcı olduğunu düşündüğüm için, işlemleri açıklamaya gerek duymadım. Böyle bir girişim çok vakit alıcı oluyor ve de okuyucu için de ince detaylar okumak, yorucu ve caydırıcı olabilir.
Dikkat edilmesi gerekenler:
Dosyaları kayıt ederken, dosya isimlerinde Türkçe karakterler kullanmayın. Ve de dosya adına ".sdlbas" uzantısını ekleyin. (Örnek= ciceksiparisi.sdlbas)
Uygulama içinde Türkçe karakterler içeren metin kullanılıyorsa, dosyayı kayıt ederken, önce "File / Encoding / UTF-8 Cookie" seçin. Türkçe karakterler, sdlBasic editöründe yine de farklı karakterler olarak görünecektir. Ancak kayıt edilmiş dosyada doğru olarak görünür ve de uygulama çalışırken de düzgün olarak çıkar.
merhaba.sdlbas
' merhaba.sdlbas
for x = 1 to 300
ink(rgb(16+(x/1.5),x/1.5,0))
text(300-x*2.3,100+x,10+x,"MERHABA")
wait(60)
next
wait(6000)
golgeleme.sdlbas (Encoding / UTF-8 Cookie seçerek kayıt edin)
' golgeleme.sdlbas
' Encoding UTF-8 Cookie seçerek kayıt edin
ink(rgb(255,255,255))
setDefaults(800,600,32,1)
rectangle(0,0,800,600,1)
ink(rgb(0,0,255))
rectangle(10,10,780,580,1)
for a = 0 to 255
ink(rgb(196,0,a))
for x = 10 to 790 step 4
line(400,300,x,10)
next
for x = 10 to 600 step 4
line(400,300,790,x)
next
for x = 790 to 10 step -4
line(400,300,x,590)
next
for x = 590 to 10 step -4
line(400,300,10,x)
next
wait(12)
next
for a = 0 to 196
ink(rgb(196,a,255))
for x = 10 to 790 step 4
line(400,300,x,10)
next
for x = 10 to 600 step 4
line(400,300,790,x)
next
for x = 790 to 10 step -4
line(400,300,x,590)
next
for x = 590 to 10 step -4
line(400,300,10,x)
next
wait(12)
next
for a = 196 to 32 step -1
ink(rgb(a,a,255))
for x = 10 to 790 step 4
line(400,300,x,10)
next
for x = 10 to 600 step 4
line(400,300,790,x)
next
for x = 790 to 10 step -4
line(400,300,x,590)
next
for x = 590 to 10 step -4
line(400,300,10,x)
next
wait(12)
next
for a = 255 to 0 step -1
ink(rgb(32,32,a))
for x = 10 to 790 step 4
line(400,300,x,10)
next
for x = 10 to 600 step 4
line(400,300,790,x)
next
for x = 790 to 10 step -4
line(400,300,x,590)
next
for x = 590 to 10 step -4
line(400,300,10,x)
next
wait(12)
next
for a = 32 to 255
ink(rgb(32,a,0))
for x = 10 to 790 step 4
line(400,300,x,10)
next
for x = 10 to 600 step 4
line(400,300,790,x)
next
for x = 790 to 10 step -4
line(400,300,x,590)
next
for x = 590 to 10 step -4
line(400,300,10,x)
next
wait(12)
next
for a = 0 to 255
ink(rgb(32,255,a))
for x = 10 to 790 step 4
line(400,300,x,10)
next
for x = 10 to 600 step 4
line(400,300,790,x)
next
for x = 790 to 10 step -4
line(400,300,x,590)
next
for x = 590 to 10 step -4
line(400,300,10,x)
next
wait(12)
next
for a = 32 to 255
ink(rgb(a,255,255))
for x = 10 to 790 step 4
line(400,300,x,10)
next
for x = 10 to 600 step 4
line(400,300,790,x)
next
for x = 790 to 10 step -4
line(400,300,x,590)
next
for x = 590 to 10 step -4
line(400,300,10,x)
next
wait(12)
next
for a = 255 to 0 step -1
ink(rgb(255,a,255))
for x = 10 to 790 step 4
line(400,300,x,10)
next
for x = 10 to 600 step 4
line(400,300,790,x)
next
for x = 790 to 10 step -4
line(400,300,x,590)
next
for x = 590 to 10 step -4
line(400,300,10,x)
next
wait(12)
next
for a = 255 to 0 step -1
ink(rgb(255,0,a))
for x = 10 to 790 step 4
line(400,300,x,10)
next
for x = 10 to 600 step 4
line(400,300,790,x)
next
for x = 790 to 10 step -4
line(400,300,x,590)
next
for x = 590 to 10 step -4
line(400,300,10,x)
next
wait(12)
next
ink(rgb(255,0,127))
text(280,500,32,"Kapatabilirsiniz",1)
ink(rgb(255,255,0))
text(250,550,24,"(Herhangi bir tuşa basınız)",2)
waitkey()
renkler.sdlbas
' renkler.sdlbas
setDefaults(800,600,32,0)
dim renk[7]
renk[1] = rgb(255,0,255)
renk[2] = rgb(255,255,0)
renk[3] = rgb(255,0,0)
renk[4] = rgb(0,255,255)
renk[5] = rgb(0,255,0)
renk[6] = rgb(0,0,255)
renk[7] = rgb(255,255,255)
for a = 1 to 7
ink(renk[a])
for x = 0 to 800
line(400,300,x,0)
wait(12)
next
for x = 0 to 600
line(400,300,800,x)
wait(12)
next
for x = 800 to 0 step -1
line(400,300,x,600)
wait(12)
next
for x = 600 to 0 step -1
line(400,300,0,x)
wait(12)
next
next
boyakutusu.sdlbas
' boyakutusu.sdlbas
for a = 1 to 10
for x = 1 to 649
ink(rgb(255/a,a*15,a*15))
line(320,240,x,0)
ink(rgb(a*15,a*15,255/a))
line(320,240,640,(x/32)*24)
ink(rgb(255/a,255/a,a*15))
line(320,240,(x+640)-x*2,480)
ink(rgb(a*15,255/a,a*15))
line(320,240,0,(((x+640)-x*2)/32)*24)
wait(12)
next
next
wait(6000)
naber.sdlbas
' gezgin.sdlbas
dim naber[100]
dim renk[100]
dim yatay[100]
dim dikey[100]
dim boy[100]
for a = 1 to 100
renk[a] = rgb(rnd(255),rnd(255),rnd(255))
naber[a] = "NABER ?"
yatay[a] = rnd(50)*25
dikey[a] = rnd(480)
boy[a] = 10+rnd(20)
next
for x = 640 to -1300 step -5
cls
for y = 1 to 20
ink(renk[y])
text(x+yatay[y], dikey[y], boy[y], naber[y])
next
wait(6)
next
for x = 600 to -1260 step -5
cls
for y = 21 to 40
ink(renk[y])
text(x+yatay[y], dikey[y], boy[y], naber[y])
next
wait(6)
next
for x = 600 to -1260 step -5
cls
for y = 41 to 60
ink(renk[y])
text(x+yatay[y], dikey[y], boy[y], naber[y])
next
wait(6)
next
for x = 600 to -1260 step -5
cls
for y = 61 to 80
ink(renk[y])
text(x+yatay[y], dikey[y], boy[y], naber[y])
next
wait(6)
next
for x = 600 to -1260 step -5
cls
for y = 81 to 100
ink(renk[y])
text(x+yatay[y], dikey[y], boy[y], naber[y])
next
wait(6)
next
cls
wait(3000)
desenler.sdlbas
' desenler.sdlbas
setDefaults(800,600,32,1)
ink(rgb(255,255,255))
rectangle(0,0,800,600,1)
ink(rgb(0,32,255))
rectangle(200,100,400,400,1)
for x = 2 to 14 step 6
for a = 1 to 400 step 2
ink(rgb(a/x,0,a/x))
line(200+a,100,600-a,500)
ink(rgb(0,a/x,0))
line(600,100+a,200,500-a)
wait(60)
next
next
for x = 2 to 14 step 6
for a = 1 to 400 step 2
ink(rgb(a/x,a/x,0))
line(200+a,100,600-a,500)
ink(rgb(a/x,0,0))
line(600,100+a,200,500-a)
wait(60)
next
next
waitkey()
gezgin.sdlbas
' gexgin.sdlbas
setDefaults(800,600,32,1)
ink(rgb(255,255,255))
rectangle(0,0,800,600,1)
ink(rgb(255,255,0))
rectangle(0,100,400,400,1)
ink(rgb(255,255,255))
rectangle(50,150,300,300)
rectangle(100,200,200,200)
for a = 1 to 400 step 2
ink(rgb(a/2,0,a/2))
line(400+a,100,800-a,500)
ink(rgb(0,a/2,0))
line(800,100+a,400,500-a)
next
wait(600)
for x = 0 to 400
cls
ink(rgb(255,255,255))
rectangle(0,0,800,600,1)
ink(rgb(255,255,0))
rectangle(x,100,x+400-x,400,1)
ink(rgb(255,255,255))
rectangle(x+50,150,x+300-x,300)
rectangle(x+100,200,x+200-x,200)
for a = 1 to 400 step 2
ink(rgb(a/2,0,a/2))
line(400+a-x,100,(800-a)-x,500)
ink(rgb(0,a/2,0))
line(800-x,100+a,400-x,500-a)
next
wait(12)
next
wait(600)
for x = 400 to 0 step -1
cls
ink(rgb(255,255,255))
rectangle(0,0,800,600,1)
for a = 1 to 400 step 2
ink(rgb(a/2,0,a/2))
line(400+a-x,100,(800-a)-x,500)
ink(rgb(0,a/2,0))
line(800-x,100+a,400-x,500-a)
next
ink(rgb(255,255,0))
rectangle(x,100,x+400-x,400,1)
ink(rgb(255,255,255))
rectangle(x+50,150,x+300-x,300)
rectangle(x+100,200,x+200-x,200)
wait(12)
next
waitkey()
evimiz.sdlbas
' evimiz.sdlbas
setDefaults(800,600,32,1)
ink(rgb(255,0,0))
rectangle(0,0,800,600,1)
renk = rgb(255,255,0)
for a = 1 to 200
plot(100,500-a,renk)
wait(12)
next
for a = 1 to 100
plot(100+a,300-a,renk)
wait(12)
next
for a = 1 to 100
plot(200+a,200+a,renk)
wait(12)
next
for a = 300 to 100 step -1
plot(a,300,renk)
wait(12)
next
for a = 1 to 200
plot(100+a,300+a,renk)
wait(12)
next
for a = 1 to 200
plot(300,500-a,renk)
wait(12)
next
for a = 1 to 200
plot(300-a,300+a,renk)
wait(12)
next
for a = 1 to 200
plot(100+a,500,renk)
wait(12)
next
fprints(" Hayalimdeki Ev Budur")
waitkey()
mavitop.sdlbas
' mavitop.sdlbas
ink(rgb(0,0,255))
while not inkey()
b = 1
for a = 600 to 320 step -2
cls
b = b + 1
fillcircle(a,300+b,40)
wait(15)
b = b
next
b = 1
for a = 320 to 40 step -2
cls
b = b + 2
fillcircle(a,440-b,40)
wait(15)
b = b
next
b = 1
for a = 40 to 290 step 2
cls
b = b + 1
fillcircle(a,160-b,40)
wait(15)
b = b
next
b = 1
for a = 300 to 600 step 2
cls
b = b + 1.7
fillcircle(a,40+b,40)
wait(15)
b = b
next
wend
doner.sdlbas
' doner.sdlbas
while not inkey()
for a = 0 to 200 step 2
ink(rgb(0,0,255))
fillellipse(326-(a/40),240,a,200)
ink(rgb(255,0,0))
fillellipse(320,240,a,200)
wait(24)
next
for a = 200 to 8 step -2
cls
ink(rgb(0,0,255))
fillellipse(314+(a/40),240,a,200)
ink(rgb(255,0,0))
fillellipse(320,240,a,200)
wait(24)
next
for a = 0 to 200 step 2
ink(rgb(0,0,255))
fillellipse(326-(a/40),240,a,200)
ink(rgb(255,255,0))
fillellipse(320,240,a,200)
wait(24)
next
for a = 200 to 8 step -2
cls
ink(rgb(0,0,255))
fillellipse(314+(a/40),240,a,200)
ink(rgb(255,255,0))
fillellipse(320,240,a,200)
wait(24)
next
wend
silindir.sdlbas
' silindir.sdlbas
while not inkey()
' sola donus
for b = 5 to 200
cls
for a = 120+b to 520-b
ink(rgb(0,0,a/2-b/4))
ellipse(a,240,10+(b/3.2),50+(a/32))
next
ink(rgb(0,64,191))
fillellipse(a,240,10+(b/3.2),50+(a/32))
wait(30)
next
' sola devam
for b = 200 to 5 step -1
cls
for a = 520-b to 120+b step -1
ink(rgb(0,0,a/2-b/4))
ellipse(a,240,10+(b/3.2),60)
next
ink(rgb(0,64,191))
fillellipse(a,240,10+(b/3.2),60)
wait(30)
next
' ikinci tur
for b = 10 to 200
cls
for a = 120+b to 520-b
ink(rgb(0,0,a/2-b/4))
ellipse(a,240,10+(b/3.2),50+(a/32))
next
ink(rgb(0,64,191))
fillellipse(a,240,10+(b/3.2),50+(a/32))
wait(30)
next
' yukai donus
for b = 200 to 5 step -1
cls
for a = 440-b to 40+b step -1
ink(rgb(0,0,a/2-b/4))
ellipse(320,a,60,10+(b/3.2))
next
ink(rgb(0,64,191))
fillellipse(320,a,60,10+(b/3.2))
wait(30)
next
' asag donus
for b = 10 to 200
cls
for a = 40+b to 440-b
ink(rgb(0,0,a/2-b/4))
ellipse(320,a,50+(a/32),10+(b/3.2))
next
ink(rgb(0,64,191))
fillellipse(320,a,50+(a/32),10+(b/3.2))
wait(30)
next
' sola yeniden devam
for b = 200 to 5 step -1
cls
for a = 520-b to 120+b step -1
ink(rgb(0,0,a/2-b/4))
ellipse(a,240,10+(b/3.2),60)
next
ink(rgb(0,64,191))
fillellipse(a,240,10+(b/3.2),60)
wait(30)
next
wend
Bu bölümdeki Animasyon'larda fare imleç'iini sol tıklama ile kullanıyoruz.
imlec.sdlbas
' imlec.sdlbas
while not key(k_esc)
cls
ink(rgb(255,0,0))
fillcircle(320,240,50 + mousex/4)
wait(60)
wend
imlec2.sdlbas
' imlec2.sdlbas
while not key(k_esc)
cls
ink(rgb(0,255,0))
fillellipse(320,240,50 + mousex/4, 50 + mousey/4)
wait(60)
wend
kaydir.sdlbas
' kaydir.sdlbas
' UTF-8 Cookie seçerek kayıt edin
text(10,100,24,"Topu kaydırabimek için, fareyi sol tıklayın ve tutun.")
wait(6000)
ink(rgb(0,255,0))
x = 320
y = 240
while not key(k_esc)
cls
fillcircle(x,y,50)
if mousebutton = 1 then
x = mousex
y = mousey
end if
waitvbl
wend
cizdir.sdlbas
' cizdir.sdlbas
' UTF-8 Cookie seçerek kayıt edin
ink(rgb(255,255,0))
text(40,100,20,"İmleci istediiniz noktaya yerleştirin ve Çizime balşayn.")
wait(4000)
cls
ink(rgb(255,0,255))
x = mousex
y = mousey
while not key(k_esc)
fillcircle(x,y,5)
if mousebutton = 1 then
x = mousex
y = mousey
end if
waitvbl
wend
Editör Ayarları
Yardım bölümü varsayılan tarayıcı ile açılıyor. Bunu değiştirmek mümkün. SdlBasic editörü ile doğrudan ayar dosyalarına erişebilirsiniz.
Dosya yolu : Options/Edit Properties/SdlBasic.properties
Düzenlenecek satır : 655 numaralı satırda "BROWSER = " sonuna, SdlBasic yardım bölümü için kullanmak istediğiniz tarayıcının adını yazabilirsiniz.
Varsayılan olarak "Default Browser" yazıyor ve Yazılım depolarında SdlBasic varsayılan olarak bulunmayan dağıtımlarda, bu seçenek, yardım bölümüne ulaşılabilinmesine engel oluyor.
Hızlı (veya kısaltılmış) yardım bölümüne erişim de, yine sourceforge.net'ten kurulum yapıldığında, bir hata'dan ötürü erişilemiyor. Düzeltebilmek için biraz uğraşmak gerekiyor. Puppy Linux'a kurduğum SdlBasic için düzelttiğim ayarlarım aşağıdaki gibidir.
654 SDLBRT=$(ARTSDSP) $(BASEDIR)/bin/sdlBrt
655 BROWSER=links -g
656 command.go.*.sdlbas=$(SDLBRT) "$(FilePath)"
657 command.help.*=$(BROWSER) "file:$(BASEDIR)/share/doc/sdlBasic/english/QuickHelp.html"
Firefox bende biraz yavaş açıldığı için burada bulabildiğim en hafif tarayıcıyı ekledim. Siz kendi sebeplerinize göre kendi tercihinizi ekleyebilirsiniz.
Editörde yazılan karakterlerin boyutunu düzenlemek için. /Options/Global Options ile erişebileceğiniz ayarlarda 301 numaralı satırın sonundaki rakamı değiştirebilirsiniz. Bana yazılar çok küçük geldikleri için, "18" olarak düzelttim. Bu benim tercihim tabii'ki.
SdlBasic'i sourceforge.net'ten kurmak zorunda kaldığınız durumlarda gereken kurulum dosyaları, Linux için SdlBasic.tar.gz, SdlBrt.tar.gz, ve kurulu değilseler, (Bunlar genelde yazılım depolarında mevcut olurlar) libsdl, (veya sdl.xxx) ve libsmpeg (veya smpeg.xxx)
Diğer Programlama dillerinden bilinen konsol (Terminal ) programları SdlBasic'te varsayılan olarak çalışmazlar. Bir tek "print" komutu desteklenir ve hata bildirimlerinin alındığı çıktı panelinde bildiri verir.
Bu konudaki azmini ve istikrarını takdir ediyorum @ekremsenturk. Bir işe başlamak kolay ama gerisini getirmek, istikrarı sağlamak cidden zor.
Teşekkür ederim @heartsmagic
Her girişim başlangıçta eğlenceli ve istekli oluyor. Ancak bir süre sonra, yine her girişim sıkıcı olmaya başlıyor. Ve ilk mola'dan sonra gerisi gelemeyebiliyor. Uzun bir mola'dan sonra da insan ilk başlarda kullandığı anlatım dilini tutturamayabiliyor. Bir yazının bütünlüğü için bu önemli bir durum. Yazı dili, görsel ifadeler içermediğinden, insanı bazen doğru ifadeler kullanabilme konusunda zorlayabilir. Bir de yeterince vakit ayırabilmek herkes için mümkün olmayabilir. Ben artık bir kaç senedir emekli olduğum için daha şanslıyım.
Vakit ayırabilmek elbette önemli bir kriter burada ancak emin ol vakit olsa da devam edemeyenler var :) Sen hem üzerine koyuyor hem de bunu anlatıyorsun, eline sağlık.
Mutlu Yıllar (Dağıtılabilir animasyon)
32 bit dosyaları:
http://s7.dosya.tc/server/qov78w/Mutlu_Yillar.zip.html
64 bit (Linux) dosyaları:
http://www.mediafire.com/file/6tydkkii0ualsh1/Mutlu_Y%C4%B1llar.tar.gz
Not Sürüm veya dağıtım farkları bazen sorun olabilir. (Fedora ve diğer Redhat türevlerinde çalışmayacak)