![](images/logo.gif)
Blitz3d - Başlangıç
Blitz3d Nedir?
Blitz3D sanıldığının aksine hazır bir 3d motor değildir. Blitz3D;
DirectX7 teknolojisinin üzerine kurulmuş, 3d, 2d, network
dallarında hazır komutlar barındıran bir programlama
ortamıdır.Günümüzün güçlü
programlama dilleri
ile yapabileceğiniz herşeyi Blitz3d ile de yapabilirsiniz.Blitz3d'nin
avantajları nelerdir? Öncelikle programcının
yükünün büyük bir kısmını üzerine alır ve
oyunu şekillendirme işini size bırakır.Bunun yanında, öğrenmesi
basittir. Compiler'ın içinde tüm komutları açıklayan
ve her komut için örnek barındıran bir yardım
bölümü mevcuttur.Ucuzdur, hazır motorlar veya programlama ortamları ele alındığında $100 fazla
bir para değildir.Pek çok dosyaya desteği vardır, bunların
arasında .3ds, .X, .MD2, .B3D, tüm resim formatları, .raw, .wav,
.mp3, .ogg, .gif, .avi, .mpeg de bulunmaktadır. External .dll lere
desteği vardır.Böylece C++ ile hazırladığınız herhangi bir
kütüphaneyi programa ekleyebilirsiniz. Çeşitli fizik
motorlarına da desteği .dll desteği sayesinde bulunmaktadır.
Yani sizin anlayacağınız, minimum 3-4 kişilik bir grupla 6 - 12 ay
süre zarfında full time çalışarak kaliteli
oyunlar hazırlanabilecek bir programlama aracıdır Blitz3d.Bu kadar
açıklama yeter şimdi biraz kodlara ve syntax'a bakalım.
Blitz3d ile Programlama
Klasik "Hello World!" programını yazmayan yoktur sanırım.Eğer
yazmadıysanız bu ilk olacak, yok yazdıysanız bir de Blitz3d ile yazmış olacaksınız.
(not:Blitz3d ile comment [açıklama satırı]vermek için ";"
kullanılır.)
;Kod:
;///////////////////////
AppTitle "Hello World
Programı" ;Bu satır ile pencere başlığında ve
araç çubuğunda yazacak program
;ismi belirlenir.
Graphics3d
800,600,16,2 ;Direct3d hazır hale
getirilir.Ekran çözünürlüğü, renk
derinliği ve pencere modu
;ayarlanır.Pencere modu; 1 - Tam ekran, 2 -
sabit pencerede, 3 - Büyütülüp
küçül-
;tülebilir pencere olarak ayarlanmıştır.
SetBuffer Backbuffer()
;Double buffering aktif hale getirilir.
Hidepointer()
;Program sınırları içerisinde fare imlecinin
kaldırılmasına yarar.Bu komutun kar-
;şıtı ShowPointer() dır.
Cls
;Bu komut
ekranın temizlenmesine yarar.Clear Screen anlamına gelir.Dos sistemine
;aşina olanlarınız anlayacaklardır zaten...
Print "Hello World!"
;Print
komutu ekrana birşeyler yazdırmak için kullanılır.
While Not Keyhit(1)
;Burası programın
döngüsünün başladığı yer.Bu satırda programa şunu
söylüyoruz;
;ESC tuşuna basılmadığı sürece...Bu
satırın devamı döngünün içinde yazdıklarınıza
;bağlı olacak.
Wend
;Burası
döngünün bittiği yer.Şimdilik döngünün
içinde hiçbir komut kullanmadık.
;Çünkü tek istediğimiz şey
ESC tuşuna basılana kadar programı devam ettirmek.
;Eh bunu da döngünün bu hali
hallediyor.
EndGraphics
;Graphics3d ile Direct3d yi
yüklemiştik bu komutla Direct3d yi kaldırıyor ve
;hafızayı boşaltıyoruz.
End
;Bu satır sayesinde programda
geri kalan herşeyi hafızadan silerek kapatma
;işlemini tamamlıyoruz.
Gördüğünüz üzere Blitz3D ile kod yazmak
oldukça basit.Bu sadece "Hello World" demeyin, Blitz3d nin
tüm komutları ingilizce bilen birisinin anlayacağı seviyede. Şimdi
isterseniz biraz da matematik işlemi yapalım...
;Kod:
;///////////////////////
Apptitle "Matematik"
Graphics3d 800,600,16,2
Setbuffer Backbuffer()
Hidepointer()
Cls
Global A_Sayisi = 5
;Böylece global bir değişken
tanımlıyoruz.Şimdilik global olması şart değil fakat
;ilerde birden fazla kaynak dosyasıyla
uğraşırken include edeceğimiz kaynak
;dosyalarında bulunan değişkenler tanınsın
isteyebiliriz.
B_Sayisi = 2
;Bakın mesela buna da
global eklemedim.Dediğim gibi şimdilik tek kaynak olduğu
;için fark etmeyecek.
Toplam = A_Sayisi + B_Sayisi
;Bu
değişken ise iki sayının toplamını tutuyor.
print "5 + 2 = " + Toplam
;Eğer print komutunda +
kullanılırsa bu demektir ki; Tırnak içinde yazılan yazının
;yanına değişkenin
içerdiği değeri yazdır.
While Not Keyhit(1)
Wend
EndGraphics
End
İşte matematiğin dört işlemi de böyle basitçe
uygulanabiliyor....Birde bu dökümanın sonu olarak kullanıcı
girdisi
alan bir kod yazalım...
;Kod:
;///////////////////////
AppTitle "Kullanıcı Girdisi"
Graphics3d 800,600,16,2
Setbuffer Backbuffer()
Hidepointer()
Cls
kullanici_adi$ = input("Adin ne?
") ;İşte
burada yeni bir komut...input komutu ile kullanıcı girdisi alabiliyoruz.
;Unutmayın ki parantez
içine "+" ile bir değişken eklemesini de söyleyebiliriz.
;Dikkatinizi
çektiyse burada birde $ işareti kullandık.Bu dolar işareti
değişken
;türünün
string olduğunu programa söyler.Eğer bu işareti eklemeseydik harfi
;değerleri bu değişken
tutamayacaktı.Dolar işareti koymayın ve sonucun
; ne olacağını siz görün...
print "Senin adin " +
Kullanici_adi$ ;İşte
burada az önce kullanıcı girdisini tuttuğumuz değişkeni ekrana
yazdırıyoruz.
While Not Keyhit(1)
Wend
EndGraphics
End
Şimdilik bu kadar Blitz3d yeter.En azından benim ilk
dökümanım olduğu için daha ileri gitmem ne kadar
yararlı olur bilemiyorum.Umarım yardımcı olmuşumdur.Eğer bir problem çıkmazsa
daha çok döküman yazmaya çalışacağım. Sizde o
zamana kadar Blitz3d ile oynayın, yardım dosyalarını falan karıştırın
inanın ki bu dökümandan daha yararlı olacak.En azından ben
böyle öğrendim.Hepinize kolay gelsin...
Nomax :: 2005 :: www.oyunyapimi.org
|
|