Sayfayı Yazdır | Pencereyi Kapat

balon patlatma oynu

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Genel İşlemler
Forum Tanımlaması: TRObject dili ile programlama yaparken karşılaşılan genel işlemler
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=1082
Tarih: 29 Kasım 2025 Saat 19:40
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: balon patlatma oynu
Mesajı Yazan: Hatice snk
Konu: balon patlatma oynu
Mesaj Tarihi: 13 Temmuz 2025 Saat 12:50

var

  anaForm, oyunForm: TclForm;

  baslaBtn: TclProButton;

  baslikLbl, balonLbl: TclProLabel;

 

  skorLabel: TclProLabel;

  balonBtn: TclProButton;

  sureLabel: TclProLabel;

 

  skor, kalanSure: Integer;

  zamanlayici: TclTimer;

 

function IntToStr(i: Integer): string;

var

  s: string;

begin

  s := '';

  if i = 0 then

    s := '0'

  else

    while i > 0 do

    begin

      s := Chr(48 + (i mod 10)) + s;

      i := i div 10;

    end;

  Result := s;

end;

 

procedure BalonaTikla;

var

  x, y: Integer;

begin

  if kalanSure > 0 then

  begin

    skor := skor + 1;

    skorLabel.Caption := 'Skor: ' + IntToStr(skor);

 

    x := Random(400);  // Genişlik sınırı

    y := Random(200);  // Yükseklik sınırı

    balonBtn.Left := x;

    balonBtn.Top := y;

  end;

end;

 

procedure BaslaTikla;

begin

  anaForm.Hide;

 

  oyunForm := TclForm.Create(nil);

  skor := 0;

  kalanSure := 30;

 

  skorLabel := oyunForm.AddNewProLabel(oyunForm, 'skorLabel', 'Skor: 0');

  skorLabel.Left := 200;

  skorLabel.Top := 20;

  skorLabel.Width := 200;

  skorLabel.Height := 30;

 

  sureLabel := oyunForm.AddNewProLabel(oyunForm, 'sureLabel', 'Süre: 30 sn');

  sureLabel.Left := 200;

  sureLabel.Top := 50;

  sureLabel.Width := 200;

  sureLabel.Height := 30;

 

  balonBtn := oyunForm.AddNewProButton(oyunForm, 'balonBtn', '🎈');

  balonBtn.Left := 220;

  balonBtn.Top := 100;

  balonBtn.Width := 60;

  balonBtn.Height := 60;

  balonBtn.OnClick := BalonaTikla;

 

  // Stil uygulama

  clComponent.SetupComponent(balonBtn, '{

    "BackColor": "#FFD700",

    "FontSize": 24,

    "FontColor": "#000000",

    "BorderRadius": 30,

    "BorderWidth": 2,

    "BorderColor": "#FF0000"

  }');

 

  // Zamanlayıcı başlat, anonim prosedürle bağla

  zamanlayici := oyunForm.AddNewTimer(oyunForm, 'zamanlayici', 1000);

  zamanlayici.OnTimer := procedure(Sender: TObject)

  begin

    kalanSure := kalanSure - 1;

    sureLabel.Caption := 'Süre: ' + IntToStr(kalanSure) + ' sn';

 

    if kalanSure <= 0 then

    begin

      zamanlayici.Enabled := False;

      balonBtn.Enabled := False;

      ShowMessage('Süre doldu! Toplam skor: ' + IntToStr(skor));

    end;

  end;

 

  oyunForm.Run;

end;

 

begin

  anaForm := TclForm.Create(nil);

 

  baslikLbl := anaForm.AddNewProLabel(anaForm, 'baslikLbl', '🎈 BALON PATLATMACA 🎈');

  baslikLbl.Left := 150;

  baslikLbl.Top := 50;

  baslikLbl.Width := 300;

  baslikLbl.Height := 40;

 

  balonLbl := anaForm.AddNewProLabel(anaForm, 'balonLbl', '💥🎈💥');

  balonLbl.Left := 200;

  balonLbl.Top := 100;

  balonLbl.Width := 200;

  balonLbl.Height := 30;

 

  baslaBtn := anaForm.AddNewProButton(anaForm, 'baslaBtn', 'BAŞLA');

  baslaBtn.Left := 220;

  baslaBtn.Top := 160;

  baslaBtn.Width := 120;

  baslaBtn.Height := 40;

  baslaBtn.OnClick := BaslaTikla;

 

  anaForm.Run;

end.

 

 

 Bu kodda ne eksik söyleye bilirmisiniz ya da fazla

 




Cevaplar:
Mesajı Yazan: iclal
Mesaj Tarihi: 14 Temmuz 2025 Saat 09:20
Merhaba, Syntax hatan çok fazla var.
Clomosy de := kullanımı yok sadece = kullanman yeterli, Begin ve end de yok {} kullanıyoruz, if den sonra then kullanmıyoruz, while dan sonra da do yok,  Stil uygulama kısmındaki JSON formatı artık geçerli değilmiş, if ten sonra kontrol yaparken == kullanıyoruz. 
Çok ayrıntılı bakamadım ama genel olarak bunları ilk başta düzeltmen gerekiyor.


Mesajı Yazan: iclal
Mesaj Tarihi: 14 Temmuz 2025 Saat 09:23
En sonda da Eventler öyle tanımlanmıyor
https://www.docs.clomosy.com/index.php?title=AddNewEvent" rel="nofollow - https://www.docs.clomosy.com/index.php?title=AddNewEvent

Doküman sitesine bakabilirsin.


Mesajı Yazan: dannyachami
Mesaj Tarihi: 14 Temmuz 2025 Saat 09:27
Merhaba Hatice, 

TRObject programlama dilinde, operator atamaları ":=" yerine "=" kullanılıyor ayrıca proObjectlerde bu yapı 

"// Stil uygulama

  clComponent.SetupComponent(balonBtn, '{

    "BackColor": "#FFD700",

    "FontSize": 24,

    "FontColor": "#000000",

    "BorderRadius": 30,

    "BorderWidth": 2,

    "BorderColor": "#FF0000"

  }');" artik kullanilmiyor, onun yerine örnek olarak bu yapının kullanıldığını gösterebilirim :

 "ModalPanel.clProSettings.isRound=True;

    ModalPanel.clProSettings.RoundWidth=20;

    ModalPanel.clProSettings.RoundHeight=20;

    ModalPanel.clProSettings.BorderWidth=2;

    ModalPanel.clProSettings.BorderColor = clAlphaColor.clHexToColor('#FFFFFF');

    ModalPanel.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#FFFFFF'); // Beyaz arka plan

    //ModalPanel.clProSettings.ShadowVisible = True;

    ModalPanel.SetclProSettings(ModalPanel.clProSettings);   "



Dikkat etmen gereken birkac diğer konu ise   


anaForm := TclForm.Create(nil); burada nil yerine self ,


 "if kalanSure <= 0 then" yapısında "then" kullanılmıyor, koşul parantez içinde yazılıyor ve begin ile end yazmana gerek yok.

Youtube ve Github kodlarını incele ve kodunda syntax ile ilgili tüm düzeltmeleri yaptıktan sonra bir mantıksal hata yok ise kodun çalışması gerekmektedir.

İyi çalışmalar 



Mesajı Yazan: Hatice snk
Mesaj Tarihi: 15 Temmuz 2025 Saat 13:47
teşekkürler



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 12.07 - https://www.webwizforums.com
Copyright ©2001-2024 Web Wiz Ltd. - https://www.webwiz.net