Sayfayı Yazdır | Pencereyi Kapat

Basit Yılan oyunu ilerleme

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Form Oluşturma
Forum Adı: TclForm Oluşturma
Forum Tanımlaması: Standart bir form oluşturma
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=1430
Tarih: 16 Haziran 2026 Saat 16:26
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: Basit Yılan oyunu ilerleme
Mesajı Yazan: Alper
Konu: Basit Yılan oyunu ilerleme
Mesaj Tarihi: 30 Mart 2026 Saat 12:40
Sadece yukarı aşağı giden bu çok basit yılan oyunum yukarı aşağı gitmiyor bunu nasıl çözerim? 

var

MyForm : TclGameForm
kare : TClProButton
 void KeyDown
 {
   if (MyForm.clSenderKeyChar == 32)
   {
    kare.margins.top = 5
   }
   else if (MyForm.clSenderKeyChar == 119)
   {
     kare.margins.bottom = -5
   }
 }
 
 
void asagi
{
  kare.margins.top = 5
  
  kare.margins.bottom = -5
}
{
MyForm = TclGameForm.Create(Self);

  kare = MyForm.AddNewProButton(MyForm, 'kare', '')
  kare.Align = alCenter;
  kare.Width = 50;
  kare.Height = 60;
  kare.clProSettings.BorderColor = clAlphaColor.clHexToColor('#fabd2');
  kare.clProSettings.RoundHeight = 10;
  kare.clProSettings.RoundWidth = 10;
  kare.clProSettings.BorderWidth = 2;
  kare.clProSettings.IsFill = True; 
  kare.clProSettings.IsRound = True;
  kare.clProSettings.PictureSource = ' https://clomosy.com/demos/computerNetwork.png" rel="nofollow - https://clomosy.com/demos/computerNetwork.png ';
  kare.clProSettings.PictureAutoFit = True;
  kare.SetclProSettings(kare.clProSettings);
  
  MyForm.AddNewEvent(MyForm,tbeOnKeyDown,'KeyDown' )
  
  
  MyForm.run
}

Çok teşekkürler
https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">

-------------
Alper



Cevaplar:
Mesajı Yazan: Emr.Erkmn
Mesaj Tarihi: 01 Nisan 2026 Saat 17:51
Merhaba Alper, 

var
  MyForm : TclGameForm;
  kare : TClProButton;
  SagBtn, SolBtn, YukariBtn, AsagiBtn : TclProButton;
  GameTimer : TClTimer;
  yon : Integer; // 1:Yukarı, 2:Aşağı, 3:Sol, 4:Sağ

// YÖN DEĞİŞTİRME BUTONLARI
void GitYukari; { yon = 1; }
void GitAsagi;  { yon = 2; }
void GitSol;    { yon = 3; }
void GitSag;    { yon = 4; }

void YilanHareketEt;
var
  yeniX, yeniY : Single;
{
  yeniX = kare.Position.X;
  yeniY = kare.Position.Y;

  if (yon == 1)      { yeniY = yeniY - 20; }
  else if (yon == 2) { yeniY = yeniY + 20; }
  else if (yon == 3) { yeniX = yeniX - 20; }
  else if (yon == 4) { yeniX = yeniX + 20; }

  
  if ((yeniX < 80) || (yeniX + kare.Width > TForm(MyForm).ClientWidth - 80) || 
      (yeniY < 60) || (yeniY + kare.Height > TForm(MyForm).ClientHeight - 60))
  {
    GameTimer.Enabled = False; // Çarptığı an zamanlayıcıyı (oyunu) durdur
    ShowMessage('Duvara Çarptın! OYUN BİTTİ.');
  }
  else
  {
    kare.Position.X = yeniX;
    kare.Position.Y = yeniY;
  }
}

// ANA KOD VE TASARIM
{
  MyForm = TclGameForm.Create(Self);
  yon = 2; 
  MyForm.clsetWindowState(fwsMaximized)

  kare = MyForm.AddNewProButton(MyForm, 'kare', '');
  kare.Align = alNone;
  kare.Position.X = 150;
  kare.Position.Y = 250;
  kare.Width = 40;
  kare.Height = 40;
  kare.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#22c55e');
  kare.clProSettings.IsRound = True;
  kare.clProSettings.RoundHeight = 10;
  kare.clProSettings.RoundWidth = 10;
  kare.SetclProSettings(kare.clProSettings);

  YukariBtn = MyForm.AddNewProButton(MyForm, 'YukariBtn', 'YUKARI');
  YukariBtn.Align = alTop; YukariBtn.Height = 60;
  MyForm.AddNewEvent(YukariBtn, tbeOnClick, 'GitYukari');

  AsagiBtn = MyForm.AddNewProButton(MyForm, 'AsagiBtn', 'AŞAĞI');
  AsagiBtn.Align = alBottom; AsagiBtn.Height = 60;
  MyForm.AddNewEvent(AsagiBtn, tbeOnClick, 'GitAsagi');

  SolBtn = MyForm.AddNewProButton(MyForm, 'SolBtn', 'SOL');
  SolBtn.Align = alLeft; SolBtn.Width = 80;
  MyForm.AddNewEvent(SolBtn, tbeOnClick, 'GitSol');

  SagBtn = MyForm.AddNewProButton(MyForm, 'SagBtn', 'SAĞ');
  SagBtn.Align = alRight; SagBtn.Width = 80;
  MyForm.AddNewEvent(SagBtn, tbeOnClick, 'GitSag');

  GameTimer = MyForm.AddNewTimer(MyForm, 'GameTimer', 100);
  GameTimer.Enabled = True;
  MyForm.AddNewEvent(GameTimer, tbeOnTimer, 'YilanHareketEt');

  MyForm.Run;
}


bu kodu çalıştırıp dener misin? 
ClsenderKeyChar ile tekrar bir araştırma yapıyorum. Bu yöntem de farklı bir yöntem 
https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" rel="nofollow - https://static.cloudflareinsights.com/beacon.min.js/v8c78df7c7c0f484497ecbca7046644da1771523124516" integrity="sha512-8DS7rgIrAmghBFwoOTujcf6D9rXvH8xm8JQ1Ja01h9QX8EzXldiszufYa4IFfKdLUKTTrnSFXLDkUEOTrZQ8Qg==" data-cf-beacon="{"version":"2024.11.0","token":"439455f3e46c40b98dbd42a2f1a954d8","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}" crossorigin="anonymous">



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