Programlama | Programlama Dilleri | C Programlama Dili |C++

Anasayfa Programlama C++ Builder Pacman Oyunu (Prototip)


Pacman Oyunu (Prototip)

AÇIKLAMA

C++ Builder 6 ile uyumludur. Bu program pacman oyunu için ufak bir prototip olarak tasarlanmıştır. Bu programda tam olarak bir pacman yapılmamıştır, buradaki en önemli özellik pacmani yaparken kullanılan Pie bileşeninin ağzının açılıp kapanmasını sağlayacak kodun yazılmış olmasıdır. Programda ekran rastgele renklerle doldurulmuştur, bunu yaparken belirli uzaklıklar için bir algoritma kullanılmış ve bu kod formun FormPaint olayında yapılmıştır. Aynı algoritma kullanılarak Pacman'in bu renkleri (yada kutucuk yada sekil) yiyecek şekilde hareket etmesi sağlanabilir. Bu yüzden pacman'e verilecek hareket özelliğinde bu hususa dikkat edilmesi gerekir. Programda sadece bazı kutucukları farklı renkte yapıp bunların yenmemesi halinde level atlama gibi özellikler eklenebilir yada pacman'i kovalayacak yaratıklar eklenebilir. Yaratık algoritması için pacman'in bulunduğu piksel değerlerinin izlenmesi örnek olarak gösterilebilir. Program oldukça geliştirilebilir.

Programın Tamamını Aşağıdaki Linkten İndirebilirsiniz

Linki Görebilmeniz İçin Üye Olmanız Gerekmektedir...

Üye Kayıt 

Program Kodu:

Unit1.cpp

  1. //---------------------------------------------------------------------------
  2.  
  3. #include <vcl.h>
  4. #pragma hdrstop
  5.  
  6. #include "Unit1.h"
  7. //---------------------------------------------------------------------------
  8. #pragma package(smart_init)
  9. #pragma link "pies"
  10. #pragma resource "*.dfm"
  11. TForm1 *Form1;
  12. static kontrol=0;
  13. static durum=0;
  14. //---------------------------------------------------------------------------
  15. __fastcall TForm1::TForm1(TComponent* Owner)
  16.         : TForm(Owner)
  17. {
  18. }
  19. //---------------------------------------------------------------------------
  20.  
  21.  
  22. void __fastcall TForm1::FormShow(TObject *Sender)
  23. {
  24. Pie1->Angles->StartAngle=36;
  25. Pie1->Angles->EndAngle=324;
  26.  
  27. }
  28. //---------------------------------------------------------------------------
  29. void __fastcall TForm1::Timer1Timer(TObject *Sender)
  30. {
  31.  
  32.   if(Pie1->Angles->StartAngle>0&&kontrol==0)
  33.   Pie1->Angles->StartAngle=Pie1->Angles->StartAngle-2;
  34.   if(Pie1->Angles->StartAngle==0)
  35.   kontrol=1;
  36.   if(Pie1->Angles->StartAngle<36&&kontrol==1)
  37.   Pie1->Angles->StartAngle=Pie1->Angles->StartAngle+2;
  38.   if(Pie1->Angles->StartAngle==36)
  39.   kontrol=0;
  40.  
  41.   if(Pie1->Angles->EndAngle<360&&durum==0)
  42.   Pie1->Angles->EndAngle=Pie1->Angles->EndAngle+2;
  43.   if(Pie1->Angles->EndAngle==360)
  44.   durum=1;
  45.   if(Pie1->Angles->EndAngle>324&&durum==1)
  46.   Pie1->Angles->EndAngle=Pie1->Angles->EndAngle-2;
  47.   if(Pie1->Angles->EndAngle==324)
  48.   durum=0;
  49. }
  50. //---------------------------------------------------------------------------
  51. void __fastcall TForm1::FormCreate(TObject *Sender)
  52. {
  53. Caption="PACMAN";
  54. KeyPreview=true;
  55. Form1->WindowState=wsMaximized;
  56. }
  57. //---------------------------------------------------------------------------
  58.  
  59. void __fastcall TForm1::FormPaint(TObject *Sender)
  60. {
  61. for(int y=24;y<=700;y+=Pie1->Height*2/3)
  62. {
  63.   Canvas->Brush->Color=random(16000000L);
  64.   for(int x=15;x<=1004;x+=20)
  65.   Canvas->Ellipse(x,y,x+10,y+10);
  66. }
  67. }
  68. //---------------------------------------------------------------------------
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  

Yorumlar (0)
Sadece kayıtlı kullanıcılar yorum yazabilir!