- 27 Ocak 2007
- 3,176
- 1
- 578
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 OYUNLARDelphinin kendi komutlarini kullanarak yapabileceginiz oyunlardir. Örnegin DXBall ve ateri gibi oyunladir. Bunladan bir Ateri oyununu inceleyelim.ÖRNEK : Basit bir oyun.
Kodadi : Image1
Kodadi : Image2
Kodadi : Image3
Kod:
[LEFT][B][SIZE=2][COLOR=#333333]procedure TForm2.Timer1Timer(Sender: TObject);
var[/COLOR][/SIZE][SIZE=2][COLOR=#0000ff]
[/COLOR][/SIZE][/B][SIZE=2][COLOR=#0000ff][COLOR=#000000]s:byte;[/COLOR][B]
[COLOR=#000000]begin[/COLOR]
// 2. image basi ---------------------------------------[/B][/COLOR]
Image2.left:=Image2.left-10;[COLOR=#0000ff]// Ilk baslangiçta soldan 10 br. bosluk birakir.[/COLOR]
[B]if[/B] image1.Left=image2.Left-30 [B]then[/B] [COLOR=#0000ff]//Virüsün yiyecegi nesne önüne geldi ise[/COLOR]
[B]begin[/B]
[B]if[/B] image1.Top=image2.Top[B] then[/B] [COLOR=#0000ff]// Karsisinda ise [/COLOR]
[B]begin[/B]
Image2.left:=650; [COLOR=#0000ff]// Virüsün yedigi nesneyi ilk basa gönder.[/COLOR]
c:=c-1; [COLOR=#0000ff]// Canini 1 düsür.[/COLOR]
mediaplayer1.FileName:='ölüm.wav'; [COLOR=#0000ff]// Media Player' de Ölüm.Wav atanir.[/COLOR]
mediaplayer1.Open; [COLOR=#0000ff]//Ölüm.Wav açilir.[/COLOR]
mediaplayer1.Play; [COLOR=#0000ff]// Ölüm.Wav çalistirilir.[/COLOR]
label4.Caption:=inttostr(c);/[COLOR=#0000ff]/Oyundaki can kismi azalir.[/COLOR]
[B]if[/B] c=0 [B]then [/B][COLOR=#0000ff]// Can 0 ' a esitse[/COLOR]
[B]begin[/B]
form2.Close;[COLOR=#0000ff]//Form2 kapatilir.[/COLOR]
s:=0; [COLOR=#0000ff]//Puan sifirlanir[/COLOR].
showmessage('OYUN BITTI !!!');[COLOR=#0000ff]// Oyun bitti mesaji verir.[/COLOR]
[B]end;
end;[/B]
[B]if [/B]image1.Top-20=image2.Top [B]then[/B] [COLOR=#0000ff]//Antivirus 20 br üstünde ise [/COLOR]
[B]begin[/B]
Image2.left:=650; [COLOR=#0000ff]// Virüsün yedigi nesneyi ilk basa gönder.[/COLOR]
c:=c-1; [COLOR=#0000ff]// Canini 1 düsür.[/COLOR]
mediaplayer1.FileName:='ölüm.wav';[COLOR=#0000ff]// Media Player' de Ölüm.Wav atanir.[/COLOR]
mediaplayer1.Open;[COLOR=#0000ff]//Ölüm.Wav açilir.[/COLOR]
mediaplayer1.Play; [COLOR=#0000ff]// Ölüm.Wav çalistirilir.[/COLOR]
label4.Caption:=inttostr(c); [COLOR=#0000ff]//Oyundaki can kismi azalir.[/COLOR]
[B]if[/B] c=0 [B]then[/B] [COLOR=#0000ff]// Can 0 ' a esitse[/COLOR]
[B]begin[/B]
label4.Caption:=inttostr(c); [COLOR=#0000ff]//Oyundaki can kismi azalir[/COLOR]
form2.Close;[COLOR=#0000ff]//Form2 kapatilir.[/COLOR]
s:=0; [COLOR=#0000ff]//Puan sifirlanir.[/COLOR]
showmessage('OYUN BITTI !!!'); [COLOR=#0000ff]// Oyun bitti mesaji verir.[/COLOR]
[B]end;
end;[/B]
[B]if[/B] image1.Top+20=image2.Top [B]then[/B] [COLOR=#0000ff]// Virüsün yedigi nesneyi ilk basa gönder.[/COLOR]
[B]begin[/B]
Image2.left:=650; [COLOR=#0000ff]// Virüsün yedigi nesneyi ilk basa gönder.[/COLOR]
c:=c-1; [COLOR=#0000ff]// Canini 1 düsür.[/COLOR]
mediaplayer1.FileName:='ölüm.wav'; [COLOR=#0000ff]// Media Player' de Ölüm.Wav atanir.[/COLOR]
mediaplayer1.Open; [COLOR=#0000ff]//Ölüm.Wav açilir.[/COLOR]
mediaplayer1.Play; [COLOR=#0000ff]// Ölüm.Wav çalistirilir.[/COLOR]
label4.Caption:=inttostr(c); [COLOR=#0000ff]//Oyundaki can kismi azalir.[/COLOR]
[B]if[/B] c=0 [B]then[/B] [COLOR=#0000ff]// Can 0 ' a esitse[/COLOR]
[B]begin[/B]
c:=3;
label4.Caption:=inttostr(c); [COLOR=#0000ff]//Oyundaki can kismi azalir[/COLOR]
form2.Close;[COLOR=#0000ff]//Form2 kapatilir.[/COLOR]
s:=0; [COLOR=#0000ff]//Puan sifirlanir.[/COLOR]
showmessage('OYUN BITTI !!!');[COLOR=#0000ff]// Oyun bitti mesaji verir.[/COLOR]
[B]end;
end;
end;[/B]
[B]if[/B] image2.Left<13 [B]then[/B] [COLOR=#0000ff]//virus anti vürüse yakalanmadiysa[/COLOR]
[B]begin[/B]
Image2.left:=650;[COLOR=#0000ff]// Virüsün yedigi nesneyi ilk basa gönder.[/COLOR]
[B]for[/B] a:=1 [B]to[/B] 11 [B]do[/B] [COLOR=#0000ff]//1 'den 11'e kadar dolan[/COLOR]
x:=random(a);[COLOR=#0000ff]//1-11 arsinda bir sayi seç[/COLOR]
x:=x*40;[COLOR=#0000ff]// Seçtigin sayiyi 40 ile çarp[/COLOR]
image2.Top:=X; [COLOR=#0000ff]//Form2' nin üzerinde o yükseklige yerlestir. [/COLOR]
[B]end;[/B]
if image1.top<0 then image1.top:=400; [COLOR=#0000ff]//virüs asagidan en yukari çikarsa asagi gönder[/COLOR]
if image1.top>400 then image1.top:=0;[COLOR=#0000ff]//virüs yukaridan en asagii inerse yukari gönder[/COLOR]
if image1.left<10 then image1.left:=670;[/SIZE][SIZE=2][COLOR=#0000ff]// Soldan en saga giderse soldan çikar[/COLOR][/SIZE][/LEFT]
[CENTER][SIZE=2][COLOR=#0000ff]// 3. image basi ---------------------------------------[/COLOR][/SIZE][SIZE=2]
[COLOR=#ff0000][B].
.
. [/B][/COLOR][/SIZE][/CENTER]
[SIZE=2][B][SIZE=2]procedure TForm2.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin[/SIZE][/B][SIZE=2]
clientheight:=476; [COLOR=#0000ff]//form büyüklügü[/COLOR]
clientwidth:=715; [COLOR=#0000ff]//form büyüklügü[/COLOR]
[B]case[/B] key [B]of[/B]
VK_[B]up[/B]:Image1.Top:=Image1.Top-20; [COLOR=#0000ff]//yukariya 20br çikart[/COLOR]
VK_[B]down[/B]:Image1.Top:=Image1.Top+20; [COLOR=#0000ff]//asagiya 20br indir[/COLOR]
VK_[B]left[/B]:image1.Left:=image1.Left-20; [COLOR=#0000ff]//sola 20 br git[/COLOR]
VK_[B]right[/B]:image1.Left:=image1.Left+20; [COLOR=#0000ff]//sag 20br git[/COLOR]
[/SIZE][B][SIZE=2]end;[/SIZE][/B]
[B][SIZE=2]procedure TForm2.FormActivate(Sender: TObject);
begin[/SIZE][/B][SIZE=2]
timer1.Enabled:=true; [COLOR=#0000ff]//timer1 çalistir[/COLOR]
timer2.Enabled:=true; [COLOR=#0000ff]//timer2 çalistir[/COLOR]
timer3.Enabled:=true; [COLOR=#0000ff]//timer3 çalistir [/COLOR]
c:=3; [COLOR=#0000ff]//cani 3 ver[/COLOR]
s:=0; [COLOR=#0000ff]//puani sifirla[/COLOR]
label2.Caption:=inttostr(s); [COLOR=#0000ff]//puani göster[/COLOR]
[B]end; [/B][/SIZE][/SIZE]