Cevapla
 
Konu Seçenekleri
Eski 07-12-07, 18:10 Çevrimdışı   #1

 
ares - ait Avatar
Genel Mesajlar: 6.690
Teşekkür etti: 773
Teşekkür edildi: 2.169
RepForum Gücü: 500
Forum Puanı:49631
ares tanımayanı zamansız forum da kimse adam yerine koymazares tanımayanı zamansız forum da kimse adam yerine koymazares tanımayanı zamansız forum da kimse adam yerine koymazares tanımayanı zamansız forum da kimse adam yerine koymazares tanımayanı zamansız forum da kimse adam yerine koymazares tanımayanı zamansız forum da kimse adam yerine koymazares tanımayanı zamansız forum da kimse adam yerine koymazares tanımayanı zamansız forum da kimse adam yerine koymazares tanımayanı zamansız forum da kimse adam yerine koymazares tanımayanı zamansız forum da kimse adam yerine koymazares tanımayanı zamansız forum da kimse adam yerine koymaz
Ders-43 'OYUN'

OYUN
MSDos' a göre Windows' ta oyun yazmak oldukça kolaydir. Oyun yazilirken esas olarak DirectX.Pas dosyasina ihtiyaç duyariz.Bu dosyanin avantaji oyundaki bazi efectleri kendisinin yapmasidir. Örnegin DirectXSound' u ele alalim. Bize 2 avantaji vardir.
* Bir sesi belli bir anda oynatmamizi saglar. Bir oyun olusturdugumuzu ve 2 karekterin temas ettikleri anda bir ses çikartmasi gerektiginde çarpisacak sekil ile sesin ayni anda çikmasi gerekir. Bu sesi oynatmamiz istedigimiz anda oynatmamiza olanak verir.
* DirectSound ayni anda 2 veya daha fazla sayida ses oynatmamizi olanak verir.

NOT : DirectX özelliklerini kullanmak istiyorsak bunun için DirectX.pas dosyalari satin alinmasi gerekir. Uzman bir sekilde oyun yazmak istiyorsaniz DirectX' i kullanmaniz gerekir. DIRECTX KULLANILMADAN YAPILABILECEK OYUNLAR Delphinin kendi komutlarini kullanarak yapabileceginiz oyunlardir. Örnegin DXBall ve ateri gibi oyunladir. Bunladan bir Ateri oyununu inceleyelim. ÖRNEK : Basit bir oyun. KODU : Bu oyun için 17 tane Image resmi kullanildi. Ve bu resimlerin hareketleri ayri ayri saglanmistir.2 Imagelein açiklamalari.
ADI : Virus
Kodadi
: Image1
ADI : AntiVirus
Kodadi
: Image2
ADI : System Dosyasi
Kodadi
: Image3

Code:
 procedure TForm2.Timer1Timer(Sender: TObject);
var
s:byte;
begin
// 2. image basi ---------------------------------------
Image2.left:=Image2.left-10;// Ilk baslangiçta soldan 10 br. bosluk birakir.
if image1.Left=image2.Left-30 then //Virüsün yiyecegi nesne önüne geldi ise
begin
if image1.Top=image2.Top then // Karsisinda ise
begin
Image2.left:=650; // Virüsün yedigi nesneyi ilk basa gönder.
c:=c-1; // Canini 1 düsür.
mediaplayer1.FileName:='ölüm.wav'; // Media Player' de Ölüm.Wav atanir.
mediaplayer1.Open; //Ölüm.Wav açilir.
mediaplayer1.Play; // Ölüm.Wav çalistirilir.
label4.Caption:=inttostr(c);//Oyundaki can kismi azalir.
if c=0 then // Can 0 ' a esitse
begin
form2.Close;//Form2 kapatilir.
s:=0; //Puan sifirlanir.
showmessage('OYUN BITTI !!!');// Oyun bitti mesaji verir.
end;
end;
if image1.Top-20=image2.Top then //Antivirus 20 br üstünde ise
begin
Image2.left:=650; // Virüsün yedigi nesneyi ilk basa gönder.
c:=c-1; // Canini 1 düsür.
mediaplayer1.FileName:='ölüm.wav';// Media Player' de Ölüm.Wav atanir.
mediaplayer1.Open;//Ölüm.Wav açilir.
mediaplayer1.Play; // Ölüm.Wav çalistirilir.
label4.Caption:=inttostr(c); //Oyundaki can kismi azalir.
if c=0 then // Can 0 ' a esitse
begin
label4.Caption:=inttostr(c); //Oyundaki can kismi azalir
form2.Close;//Form2 kapatilir.
s:=0; //Puan sifirlanir.
showmessage('OYUN BITTI !!!'); // Oyun bitti mesaji verir.
end;
end;
if image1.Top+20=image2.Top then // Virüsün yedigi nesneyi ilk basa gönder.
begin
Image2.left:=650; // Virüsün yedigi nesneyi ilk basa gönder.
c:=c-1; // Canini 1 düsür.
mediaplayer1.FileName:='ölüm.wav'; // Media Player' de Ölüm.Wav atanir.
mediaplayer1.Open; //Ölüm.Wav açilir.
mediaplayer1.Play; // Ölüm.Wav çalistirilir.
label4.Caption:=inttostr(c); //Oyundaki can kismi azalir.
if c=0 then // Can 0 ' a esitse
begin
c:=3;
label4.Caption:=inttostr(c); //Oyundaki can kismi azalir
form2.Close;//Form2 kapatilir.
s:=0; //Puan sifirlanir.
showmessage('OYUN BITTI !!!');// Oyun bitti mesaji verir.
end;
end;
end;
if image2.Left<13 then //virus anti vürüse yakalanmadiysa
begin
Image2.left:=650;// Virüsün yedigi nesneyi ilk basa gönder.
for a:=1 to 11 do //1 'den 11'e kadar dolan
x:=random(a);//1-11 arsinda bir sayi seç
x:=x*40;// Seçtigin sayiyi 40 ile çarp
image2.Top:=X; //Form2' nin üzerinde o yükseklige yerlestir.
end;
if image1.top<0 then image1.top:=400; //virüs asagidan en yukari çikarsa asagi gönder
if image1.top>400 then image1.top:=0;//virüs yukaridan en asagii inerse yukari gönder
if image1.left<10 then image1.left:=670;// Soldan en saga giderse soldan çikar

// 3. image basi ---------------------------------------
.
.
. 

procedure TForm2.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
clientheight:=476; //form büyüklügü
clientwidth:=715; //form büyüklügü
case key of
VK_up:Image1.Top:=Image1.Top-20; //yukariya 20br çikart
VK_down:Image1.Top:=Image1.Top+20; //asagiya 20br indir
VK_left:image1.Left:=image1.Left-20; //sola 20 br git
VK_right:image1.Left:=image1.Left+20; //sag 20br git
end;

procedure TForm2.FormActivate(Sender: TObject);
begin
timer1.Enabled:=true; //timer1 çalistir
timer2.Enabled:=true; //timer2 çalistir
timer3.Enabled:=true; //timer3 çalistir
c:=3; //cani 3 ver
s:=0; //puani sifirla
label2.Caption:=inttostr(s); //puani göster
end;

  Alıntı ile Cevapla
Cevapla

Konu Seçenekleri

Yetkileriniz
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı

Powered by vBulletin Copyright © 2000-2009 Jelsoft Enterprises Limited.
SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.
http://www.zamansiz.com

Bütün Zaman Ayarları WEZ +2 olarak düzenlenmiştir. Şu Anki Saat: 20:58 .