3D Game Studio & Ders - 1

PoisonScorpion

Uzman üye
15 Eki 2011
1,382
0
İstanbul
PoisonScorpion ;

Selamun aleyküm // aleyküm selam

Öncelikle Oyun Motorunu biraz tanımak lazım:

Program 3.Kısımdan oluşmaktadır WED,MED,SED
WED:Haritalarımızı bu programla oluşturcaz.
MED:Modellerimizi bu programla oluşturcaz veya import edeceğiz.
SES:Kodlama işini bununla yapılır ben notpad 2.0 tercih ediyorum.veya renklendiren bir derleyicide kullanıla bilir.Dev C gibi
NoT:Ben Harita tasarımına girmicem harita tasarımı için bYfABS ın derslerine bakın.Modellemeyede girmicem.

İlk önce yazdığımız kodları derlemek gereklidir.Bunun için wedi açıp yeni proje oluşturun.

File>>>Map Propites
orda script yazan yerin yanındaki sayfa gibi olan simgeye tıklayın.GELEN LİSTEDEN Empty Scripti seçiniz.

Otomatik olarak aynı klosörde dosyaadı.c dosyası oluşcaktır işte bu dosyaya kodlarımızı yazcaz.

İlk dersimiz olarak değişkenleri anlatacağım.GameMakerdaki adıyla Veriablemiydi neydi.Öle duymustum forumda neyse.

Öncelikle kodun ilk satırına

Kod:
[B]#include <acknex.h>
#include <default.c>[/B]

bunu koyun.Her oyun yazarken ana .c dosyasının başına konur.Ne işe yarar diye sorarsanız.Oyun motorunun temel kütüphane kodları ve gerekli olan kodlarımızı programa yükler.İlerde daha detaylı olarak includeyi işleyeceğiz.

Değişkenler Türlere ayrılır.
Bir değişken bilgisayarınızın belleğinde yer edinir ve belli bir isme sahiptir. İçinde belli sayıları
saklayabilir ve bu ismi sayesinde ulaşılır/kullanılır. Örneğin;
var mermi = 7;
var saglik;
var hak = 3; // oyuncunun 3 hakkı var
Bu birkaç küçük satır için söyleyebileceklerimiz:
1) Değişkenler kullanılmadan önce var anahtar kelimesi kullanılarak tanımlanmalıdır. Eğer
tanımlamadan önce saglik = 100; derseniz, motor saglik kelimesinin ne olduğunu bilmediğinden
kodunuz derleme sırasında hata verir ve çalışmaz.
Not: Normal C dilindeki int,long,float,double gibi anahtar kelimelerde geçerlidir.

2) Değişkenlere ilk değer atayabilirsiniz. var mermi = 7; dediğinizde mermi değişkeni
tanımlanır ve içinde 7 değerini tutar. Ama bunu yağmak şart değildir. var saglik; yazdığımızda saglik
değişkeni tanımlanır ama bir ilk değeri yoktur.
3) Kodumuza “yorum” ekleyebiliriz. var hak = 3; // oyuncunun 3 hakkı var da // dan sonraki
kısım yorumdur ve ne yazarsa yazsın kodun çalışmasında bir değişiklik meydana getirmez. Bunu bir
önceki derste açıklamıştım.
4) Her tanımlama işi ; (noktalı virgül) ile biter. Çoğu yeni başlayan bunları koymayı unuttuğu
için garip hatalar alır.
5) var ile tanımlanan değişkenler en fazla 6 haneli(+en fazla 3 virgülden sonra) sayı tutabilir.
Yani var değişkenler en fazla 999999.999 en az -999999.999 olabilirler. Eğer daha büyük/küçük
sayılara ihtiyacınız varsa c/c++ daki diğer değişken türlerini(int,long,double vb.) kullanabilirisniz. Bu
ders serisinde “var” üzerinden gideceğiz.
6) Değişkenler bir harf veya _ ile başlamak zorundadır. Değişken isimleri rakam ile başlayamaz
Harf,sayılar ve _ dışında simge ve Türkçe karakterler(öÖ,çÇ,şŞ,ıİ,ğĞ,üÜ) içeremez.


Değişkenlerle kafanızı ağrıtmak istemem ama değişkenlerin türleri vardır.
Bunlar İNT,LONG,STRING,BMAP,SOUND ve C dilindeki tüm değişken türleri dahildir.Motorun eklediği ekstra değişkenler vardır bunlarla resim yada ses dosyaları tanımlana bilir.

Değişkenleri ekranda göstermek istersek panelleri kullanmamız gerekir.Ekranda herhangi bir GUI denen resimleri göstermek için paneller kullanılır.Sadece resimler herşey bunlarla gösterilir nerdeyse.Kısaca buna pencere diyebiliriz.Ama ilerde pencerelere ayrıca gircez.Oyüzden panel diye bilin.


Kod:

Kod:
////////////////////////////////////////////////////////////////////
var a = 0;
var b = 0;
var c = 0;
/////////////////////////////////////////////////////////////////////
PANEL* panDisplay =
{
digits(35, 10, "a = %0.f", *, 1, a);
digits(35, 19, "b = %0.f", *, 1, b);
digits(35, 28, "c = %0.f", *, 1, c);
flags = VISIBLE;
}
/////////////////////////////////////////////////////////////////////
function main()
{
video_mode = 1; // görüntüyü 320x200 e ayarlar
screen_color.red = 150; // ve arkaplanını kırmızı yap.
while (1)
{
c = a + b;
wait (1);
}
}

Burda kafanızı anlatmadığım şeylere takmanızı istemiyorum while tekrar etmektir.While arasına alınan kodlar sürekli tekrar edilir.ama buna girmiyem şimdi.

function main() c dili ile **** main() le aynı şeydir.Tabi elmayı elma diye anlatılamaz o yüzden açıklayayım

Programınız yüklenmeye başlarken önce main function una yazdığınız kodlar yüklenir.

c = a + b; SANIRIM bunu açıklamaya gerek yok her matematik bilen bunu anlar.


Şimdi Panelleri açıklayayım


PANEL* paneladı = // burda panelin adı yazılır.Değişkenle aynı gibi.

{
//panelde neler var
} // panel sonu.

digits ekranda rakam göstermek içindir.

Sırada biraz karışık gibi gözüken digits(35, 10, "a = %0.f", *, 1, a);
vardır.Oldukça basitdir.

35 VE 10 Rakamları rakamları gösterilcek olan rakamın ekranın x,y konumundaki yeridir.Matematik dersinde görmüşsünüzdür kordinatları.


"a = %0.f" burda biçim demektir.Ondalık tam sayı nasıl gösterilceği vardır.

*, 1 Burda ise rakamın ekrandaki boyutu vardır. a ise bizim göstermek istedğimiz değişkendir.





 

Fukaraa

Yeni üye
12 Ağu 2012
50
0
Abi senin kusurunu bulmak gibi olmasında yanlıi bilgilendirme olur tepede Sed yazıyor açıklama kısmında Ses yani yanlış anlamaada
 

IKLAWYEI

Yeni üye
5 Eki 2012
1
0
hani siz böyle demişsiniz ya File>>>Map Propites
orda script yazan yerin yanındaki sayfa gibi olan simgeye tıklayın.GELEN LİSTEDEN Empty Scripti seçiniz. Empty Script diye bişey gelmiyor yardım lütfen..
 

Axionit

Yeni üye
25 Eyl 2013
49
0
Çok teşekkürler geçen yıl indirmiştim nasıl yapıldığını anlamamıştım yavaş yavaş anlıyorum
 

hunter58

Yeni üye
23 Tem 2013
25
0
Bende öyle birşey yok wed açım file new tekrar file map properties script yanında sayfa gibi birşey ona tıklıyorum untitled level yazıyor.Orayı resimli gösterirmisin ?
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.