Clomosy | Forum Ana Sayfa
Forum Anasayfa Forum Anasayfa > Form Oluşturma > TclForm Oluşturma
  Aktif Konular Aktif Konular RSS - Sürükleme ve Animasyon
  SSS SSS  Forumu Ara   Etkinlikler   Kayıt Ol Kayıt Ol  Giriş Giriş

Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir.

Sürükleme ve Animasyon

 Yanıt Yaz Yanıt Yaz
Yazar
Mesaj
  Konu Arama Konu Arama  Topic Seçenekleri Topic Seçenekleri
MustafaYGD Açılır Kutu İzle
Yeni Üye
Yeni Üye


Kayıt Tarihi: 6 Saat 36 Dakika Önce
Durum: Aktif Değil
Puanlar: 2
Mesaj Seçenekleri Mesaj Seçenekleri   Teşekkürler (0) Teşekkürler(0)   Alıntı MustafaYGD Alıntı  Yanıt YazCevapla Mesajın Direkt Linki Konu: Sürükleme ve Animasyon
    Gönderim Zamanı: 6 Saat 19 Dakika Önce Saat 17:33
Parkur kısmında karakter ve animasyon yüklenmiyor ve çanta oyunu kısmında sürükleme çalışmıyor sorunu bir türlü bulamadım.




// DEPREM EGITIMI OYUNLARI - MENU + PARKUR + CANTA

var
  Form1: TclForm;
  
  // ===== MENU =====
  pnlMenu: TclProPanel;
  lblMenuBaslik: TclLabel;
  btnMenuParkur, btnMenuCanta, btnMenuCikis: TclProButton;
  
  // ===== PARKUR OYUNU =====
  pnlParkur: TclProPanel;
  pnlParkurKontrol: TclPanel;
  imgParkurArka: TclImage;
  imgKarakter: TclImage;
  karakterCember: TclCircle;
  animIdle, animWalk, animRun, animJump: TclBitmapListAnimation;
  tmrParkur: TClTimer;
  pltf1, pltf2, pltf3, pltf4, pltf5: TclPanel;
  pltfBitis: TclPanel;
  btnParkurSol, btnParkurSag, btnParkurZipla: TclButton;
  btnParkurMenu: TclButton;
  lblParkurBaslik: TclLabel;
  karakterHiz, velocityY, yerCekimi: Integer;
  solGidiyor, sagGidiyor, havada: Boolean;
  idleAktif, walkAktif, runAktif, jumpAktif: Boolean;
  
  // ===== CANTA OYUNU =====
  pnlCanta: TclProPanel;
  pnlCantaUst, pnlCantaAlan, pnlCantaAlt: TclPanel;
  lblCantaBaslik, lblCantaSure, lblCantaPuan, lblCantaAciklama: TclLabel;
  btnCantaMenu: TclButton;
  pnlTorba: TclProPanel;
  lblTorba: TclLabel;
  pnlSu, pnlIlkYardim, pnlFener, pnlIlac: TclProPanel;
  pnlDuduk, pnlBattaniye, pnlRadyo, pnlPara: TclProPanel;
  pnlTelefon, pnlKonsol, pnlPerfum, pnlLaptop: TclProPanel;
  lblSu, lblIlkYardim, lblFener, lblIlac: TclLabel;
  lblDuduk, lblBattaniye, lblRadyo, lblPara: TclLabel;
  lblTelefon, lblKonsol, lblPerfum, lblLaptop: TclLabel;
  pnlBilgi: TclProPanel;
  lblBilgiBaslik, lblBilgiIcerik: TclLabel;
  btnBilgiKapat: TclProButton;
  tmrCanta: TClTimer;
  cantaSure, cantaPuan, cantaKoyulan: Integer;
  secilenPanel: TclProPanel;
  secilenVar: Boolean;
  secilenID: Integer;
  surukleniyorMu: Boolean;
  baslangicX, baslangicY: Integer;
  offsetX, offsetY: Integer;

// ========== ANIMASYON FONKSIYONLARI ==========

void IdleBaslat
{
  if(idleAktif == False)
  {
    animIdle.Enabled = True;
    animWalk.Enabled = False;
    animRun.Enabled = False;
    animJump.Enabled = False;
    idleAktif = True;
    walkAktif = False;
    runAktif = False;
    jumpAktif = False;
  }
}

void RunBaslat
{
  if(runAktif == False)
  {
    animIdle.Enabled = False;
    animWalk.Enabled = False;
    animRun.Enabled = True;
    animJump.Enabled = False;
    idleAktif = False;
    walkAktif = False;
    runAktif = True;
    jumpAktif = False;
  }
}

void JumpBaslat
{
  if(jumpAktif == False)
  {
    animIdle.Enabled = False;
    animWalk.Enabled = False;
    animRun.Enabled = False;
    animJump.Enabled = True;
    idleAktif = False;
    walkAktif = False;
    runAktif = False;
    jumpAktif = True;
  }
}

// ========== MENU FONKSIYONLARI ==========

void MenuGoster
{
  pnlMenu.Visible = True;
  pnlParkur.Visible = False;
  pnlCanta.Visible = False;
  tmrParkur.Enabled = False;
  tmrCanta.Enabled = False;
}

void ParkurAc
{
  pnlMenu.Visible = False;
  pnlParkur.Visible = True;
  pnlCanta.Visible = False;
  
  imgKarakter.Position.X = 50;
  imgKarakter.Position.Y = 330;
  karakterCember.Position.X = 50;
  karakterCember.Position.Y = 330;
  karakterHiz = 5;
  velocityY = 0;
  yerCekimi = 1;
  solGidiyor = False;
  sagGidiyor = False;
  havada = False;
  
  idleAktif = False;
  walkAktif = False;
  runAktif = False;
  jumpAktif = False;
  IdleBaslat;
  
  tmrParkur.Enabled = True;
}

void CantaAc
{
  pnlMenu.Visible = False;
  pnlParkur.Visible = False;
  pnlCanta.Visible = True;
  
  cantaSure = 90;
  cantaPuan = 0;
  cantaKoyulan = 0;
  secilenVar = False;
  secilenID = 0;
  surukleniyorMu = False;
  
  pnlSu.Visible = True;
  pnlIlkYardim.Visible = True;
  pnlFener.Visible = True;
  pnlIlac.Visible = True;
  pnlDuduk.Visible = True;
  pnlBattaniye.Visible = True;
  pnlRadyo.Visible = True;
  pnlPara.Visible = True;
  pnlTelefon.Visible = True;
  pnlKonsol.Visible = True;
  pnlPerfum.Visible = True;
  pnlLaptop.Visible = True;
  pnlBilgi.Visible = False;
  
  lblCantaPuan.Text = 'Puan: 0';
  lblCantaSure.Text = 'Sure: 90s';
  
  tmrCanta.Enabled = True;
}

void MenuCikis
{
  Form1.Close;
}

// ========== PARKUR FONKSIYONLARI ==========

void ParkurKontrol
var
  platformda: Boolean;
{
  platformda = False;

  if((imgKarakter.Position.X + imgKarakter.Width > pltf1.Position.X) &&
     (imgKarakter.Position.X < pltf1.Position.X + pltf1.Width) &&
     (imgKarakter.Position.Y + imgKarakter.Height >= pltf1.Position.Y) &&
     (imgKarakter.Position.Y + imgKarakter.Height <= pltf1.Position.Y + 15) &&
     (velocityY >= 0))
  {
    platformda = True;
    imgKarakter.Position.Y = pltf1.Position.Y - imgKarakter.Height;
    velocityY = 0;
    havada = False;
  }

  if((imgKarakter.Position.X + imgKarakter.Width > pltf2.Position.X) &&
     (imgKarakter.Position.X < pltf2.Position.X + pltf2.Width) &&
     (imgKarakter.Position.Y + imgKarakter.Height >= pltf2.Position.Y) &&
     (imgKarakter.Position.Y + imgKarakter.Height <= pltf2.Position.Y + 15) &&
     (velocityY >= 0))
  {
    platformda = True;
    imgKarakter.Position.Y = pltf2.Position.Y - imgKarakter.Height;
    velocityY = 0;
    havada = False;
  }

  if((imgKarakter.Position.X + imgKarakter.Width > pltf3.Position.X) &&
     (imgKarakter.Position.X < pltf3.Position.X + pltf3.Width) &&
     (imgKarakter.Position.Y + imgKarakter.Height >= pltf3.Position.Y) &&
     (imgKarakter.Position.Y + imgKarakter.Height <= pltf3.Position.Y + 15) &&
     (velocityY >= 0))
  {
    platformda = True;
    imgKarakter.Position.Y = pltf3.Position.Y - imgKarakter.Height;
    velocityY = 0;
    havada = False;
  }

  if((imgKarakter.Position.X + imgKarakter.Width > pltf4.Position.X) &&
     (imgKarakter.Position.X < pltf4.Position.X + pltf4.Width) &&
     (imgKarakter.Position.Y + imgKarakter.Height >= pltf4.Position.Y) &&
     (imgKarakter.Position.Y + imgKarakter.Height <= pltf4.Position.Y + 15) &&
     (velocityY >= 0))
  {
    platformda = True;
    imgKarakter.Position.Y = pltf4.Position.Y - imgKarakter.Height;
    velocityY = 0;
    havada = False;
  }

  if((imgKarakter.Position.X + imgKarakter.Width > pltf5.Position.X) &&
     (imgKarakter.Position.X < pltf5.Position.X + pltf5.Width) &&
     (imgKarakter.Position.Y + imgKarakter.Height >= pltf5.Position.Y) &&
     (imgKarakter.Position.Y + imgKarakter.Height <= pltf5.Position.Y + 15) &&
     (velocityY >= 0))
  {
    platformda = True;
    imgKarakter.Position.Y = pltf5.Position.Y - imgKarakter.Height;
    velocityY = 0;
    havada = False;
  }

  if((imgKarakter.Position.X + imgKarakter.Width > pltfBitis.Position.X) &&
     (imgKarakter.Position.X < pltfBitis.Position.X + pltfBitis.Width) &&
     (imgKarakter.Position.Y + imgKarakter.Height >= pltfBitis.Position.Y) &&
     (imgKarakter.Position.Y + imgKarakter.Height <= pltfBitis.Position.Y + 15) &&
     (velocityY >= 0))
  {
    platformda = True;
    imgKarakter.Position.Y = pltfBitis.Position.Y - imgKarakter.Height;
    velocityY = 0;
    havada = False;
    tmrParkur.Enabled = False;
    ShowMessage('TEBRIKLER! Parkuru tamamladin!');
  }

  if((platformda == False) && (imgKarakter.Position.Y < 330))
  {
    havada = True;
  }

  if(imgKarakter.Position.Y >= 330)
  {
    imgKarakter.Position.Y = 330;
    velocityY = 0;
    havada = False;
  }
}

void ParkurHareket
{
  if(havada)
  {
    JumpBaslat;
  }
  else if(solGidiyor || sagGidiyor)
  {
    RunBaslat;
  }
  else
  {
    IdleBaslat;
  }

  if(solGidiyor && (imgKarakter.Position.X > 0))
  {
    imgKarakter.Position.X = imgKarakter.Position.X - karakterHiz;
    karakterCember.Position.X = karakterCember.Position.X - karakterHiz;
  }

  if(sagGidiyor && (imgKarakter.Position.X < 600))
  {
    imgKarakter.Position.X = imgKarakter.Position.X + karakterHiz;
    karakterCember.Position.X = karakterCember.Position.X + karakterHiz;
  }

  if(havada)
  {
    velocityY = velocityY + yerCekimi;
    imgKarakter.Position.Y = imgKarakter.Position.Y + velocityY;
    karakterCember.Position.Y = karakterCember.Position.Y + velocityY;
  }

  ParkurKontrol;
}

void ParkurSolBas   { solGidiyor = True; }
void ParkurSolBirak { solGidiyor = False; }
void ParkurSagBas   { sagGidiyor = True; }
void ParkurSagBirak { sagGidiyor = False; }

void ParkurZipla
{
  if(havada == False)
  {
    velocityY = -20;
    havada = True;
  }
}

// ========== CANTA FONKSIYONLARI ==========

void EsyaSec(panel: TclProPanel; id: Integer)
{
  secilenPanel = panel;
  secilenVar = True;
  secilenID = id;
  surukleniyorMu = True;
  
  // Başlangıç pozisyonunu kaydet (geri dönmek için)
  baslangicX = panel.Position.X;
  baslangicY = panel.Position.Y;
  
  // Mouse'un şu anki pozisyonunu kaydet
  // offset = mouse pozisyonu - panel pozisyonu
  offsetX = Form1.clFormMousePosX - panel.Position.X;
  offsetY = Form1.clFormMousePosY - panel.Position.Y;
}

void SuSec        { EsyaSec(pnlSu, 1); }
void IlkYardimSec { EsyaSec(pnlIlkYardim, 2); }
void FenerSec     { EsyaSec(pnlFener, 3); }
void IlacSec      { EsyaSec(pnlIlac, 4); }
void DudukSec     { EsyaSec(pnlDuduk, 5); }
void BattaniyeSec { EsyaSec(pnlBattaniye, 6); }
void RadyoSec     { EsyaSec(pnlRadyo, 7); }
void ParaSec      { EsyaSec(pnlPara, 8); }
void TelefonSec   { EsyaSec(pnlTelefon, 11); }
void KonsolSec    { EsyaSec(pnlKonsol, 12); }
void PerfumSec    { EsyaSec(pnlPerfum, 13); }
void LaptopSec    { EsyaSec(pnlLaptop, 14); }

void EsyaMouseMove
{
  if(surukleniyorMu && secilenVar)
  {
    // Basit: mouse pozisyonu - offset = yeni panel pozisyonu
    secilenPanel.Position.X = Form1.clFormMousePosX - offsetX;
    secilenPanel.Position.Y = Form1.clFormMousePosY - offsetY;
  }
}

void EsyaBirak
var
  dogru: Boolean;
  cantaMerkezX, cantaMerkezY: Integer;
  esyaMerkezX, esyaMerkezY: Integer;
{
  if(secilenVar == False) exit;
  
  surukleniyorMu = False;

  cantaMerkezX = pnlTorba.Position.X + (pnlTorba.Width / 2);
  cantaMerkezY = pnlTorba.Position.Y + (pnlTorba.Height / 2);
  
  esyaMerkezX = secilenPanel.Position.X + (secilenPanel.Width / 2);
  esyaMerkezY = secilenPanel.Position.Y + (secilenPanel.Height / 2);
  
  if((esyaMerkezX > pnlTorba.Position.X) && 
     (esyaMerkezX < pnlTorba.Position.X + pnlTorba.Width) &&
     (esyaMerkezY > pnlTorba.Position.Y) && 
     (esyaMerkezY < pnlTorba.Position.Y + pnlTorba.Height))
  {
    dogru = False;

    if(secilenID == 1) { dogru = True; lblBilgiBaslik.Text = 'SU - DOGRU!'; lblBilgiIcerik.Text = 'Enkaz altinda su hayat kurtarir! Gunluk en az 2 litre suya ihtiyac var.'; }
    if(secilenID == 2) { dogru = True; lblBilgiBaslik.Text = 'ILK YARDIM - DOGRU!'; lblBilgiIcerik.Text = 'Pansuman, tenturdiyot, agri kesici hayat kurtarir.'; }
    if(secilenID == 3) { dogru = True; lblBilgiBaslik.Text = 'FENER - DOGRU!'; lblBilgiIcerik.Text = 'Elektrikler kesilir. Karanlikta yol bulmak icin sart!'; }
    if(secilenID == 4) { dogru = True; lblBilgiBaslik.Text = 'ILAC - DOGRU!'; lblBilgiIcerik.Text = 'Kronik hastalar 1 haftalik ilac bulundurmali.'; }
    if(secilenID == 5) { dogru = True; lblBilgiBaslik.Text = 'DUSTUK - DOGRU!'; lblBilgiIcerik.Text = 'Enkaz altinda dustuk ile yardim cagirabilirsin!'; }
    if(secilenID == 6) { dogru = True; lblBilgiBaslik.Text = 'BATTANIYE - DOGRU!'; lblBilgiIcerik.Text = 'Soguk gecelerde battaniye hayat kurtarir.'; }
    if(secilenID == 7) { dogru = True; lblBilgiBaslik.Text = 'RADYO - DOGRU!'; lblBilgiIcerik.Text = 'Telefon calismazken radyo en guvenilir haber kaynagi.'; }
    if(secilenID == 8) { dogru = True; lblBilgiBaslik.Text = 'PARA - DOGRU!'; lblBilgiIcerik.Text = 'ATM calismazken nakit para hayat kurtarir.'; }

    if(secilenID == 11) { ShowMessage('YANLIS! Telefon sarj olmadan ise yaramaz!'); dogru = False; }
    if(secilenID == 12) { ShowMessage('YANLIS! Oyun konsolu cantaya girmez!'); dogru = False; }
    if(secilenID == 13) { ShowMessage('YANLIS! Parfum ise yaramaz!'); dogru = False; }
    if(secilenID == 14) { ShowMessage('YANLIS! Laptop cok agir!'); dogru = False; }

    if(dogru)
    {
      cantaPuan = cantaPuan + 10;
      cantaKoyulan = cantaKoyulan + 1;
      lblCantaPuan.Text = 'Puan: ' + IntToStr(cantaPuan);
      secilenPanel.Visible = False;
      pnlBilgi.Visible = True;
      
      if(cantaKoyulan >= 8)
      {
        tmrCanta.Enabled = False;
        ShowMessage('TEBRIKLER! Puan: ' + IntToStr(cantaPuan));
      }
    }
    else
    {
      secilenPanel.Position.X = baslangicX;
      secilenPanel.Position.Y = baslangicY;
    }
  }
  else
  {
    secilenPanel.Position.X = baslangicX;
    secilenPanel.Position.Y = baslangicY;
  }
  
  secilenVar = False;
  secilenID = 0;
}

void BilgiKapat
{
  pnlBilgi.Visible = False;
}

void CantaSureGuncelle
{
  cantaSure = cantaSure - 1;
  lblCantaSure.Text = 'Sure: ' + IntToStr(cantaSure) + 's';
  if(cantaSure <= 0)
  {
    tmrCanta.Enabled = False;
    ShowMessage('SURE DOLDU! Puan: ' + IntToStr(cantaPuan));
  }
}

void EsyaYap(pnl: TclProPanel; lbl: TclLabel; x, y: Integer; emoji, ad: String)
{
  pnl.Align = AlNone;
  pnl.Position.X = x;
  pnl.Position.Y = y;
  pnl.Width = 100;
  pnl.Height = 80;
  pnl.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#34495e');
  pnl.clProSettings.IsRound = True;
  pnl.clProSettings.RoundHeight = 12;
  pnl.clProSettings.RoundWidth = 12;
  pnl.SetclProSettings(pnl.clProSettings);
  
  lbl.Align = alClient;
  lbl.Text = emoji + #13 + ad;
  lbl.StyledSettings = ssFamily;
  lbl.TextSettings.Font.Size = 13;
  lbl.TextSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  lbl.TextSettings.HorzAlign = taCenter;
  lbl.TextSettings.VertAlign = taCenter;
  lbl.HitTest = False;
}

// ========== ANA PROGRAM ==========

{
  Form1 = TclForm.Create(Self);
  Form1.SetFormColor('#0f172a', '', clGNone);

  // ===== ANA MENU =====
  
  pnlMenu = Form1.AddNewProPanel(Form1, 'pnlMenu');
  pnlMenu.Align = alClient;
  pnlMenu.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#1e293b');
  pnlMenu.SetclProSettings(pnlMenu.clProSettings);

  lblMenuBaslik = Form1.AddNewLabel(pnlMenu, 'lblMenuBaslik', 'DEPREM EGITIMI');
  lblMenuBaslik.Align = alTop;
  lblMenuBaslik.Height = 120;
  lblMenuBaslik.StyledSettings = ssFamily;
  lblMenuBaslik.TextSettings.Font.Size = 28;
  lblMenuBaslik.TextSettings.FontColor = clAlphaColor.clHexToColor('#f59e0b');
  lblMenuBaslik.TextSettings.HorzAlign = taCenter;
  lblMenuBaslik.TextSettings.VertAlign = taCenter;

  btnMenuParkur = Form1.AddNewProButton(pnlMenu, 'btnMenuParkur', 'PARKUR OYUNU');
  btnMenuParkur.Align = alNone;
  btnMenuParkur.Position.X = 200;
  btnMenuParkur.Position.Y = 150;
  btnMenuParkur.Width = 290;
  btnMenuParkur.Height = 80;
  btnMenuParkur.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#3b82f6');
  btnMenuParkur.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  btnMenuParkur.clProSettings.FontSize = 20;
  btnMenuParkur.clProSettings.IsRound = True;
  btnMenuParkur.clProSettings.RoundHeight = 20;
  btnMenuParkur.clProSettings.RoundWidth = 20;
  btnMenuParkur.SetclProSettings(btnMenuParkur.clProSettings);
  Form1.AddNewEvent(btnMenuParkur, tbeOnClick, 'ParkurAc');

  btnMenuCanta = Form1.AddNewProButton(pnlMenu, 'btnMenuCanta', 'DEPREM CANTASI');
  btnMenuCanta.Align = alNone;
  btnMenuCanta.Position.X = 200;
  btnMenuCanta.Position.Y = 260;
  btnMenuCanta.Width = 290;
  btnMenuCanta.Height = 80;
  btnMenuCanta.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#10b981');
  btnMenuCanta.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  btnMenuCanta.clProSettings.FontSize = 20;
  btnMenuCanta.clProSettings.IsRound = True;
  btnMenuCanta.clProSettings.RoundHeight = 20;
  btnMenuCanta.clProSettings.RoundWidth = 20;
  btnMenuCanta.SetclProSettings(btnMenuCanta.clProSettings);
  Form1.AddNewEvent(btnMenuCanta, tbeOnClick, 'CantaAc');

  btnMenuCikis = Form1.AddNewProButton(pnlMenu, 'btnMenuCikis', 'CIKIS');
  btnMenuCikis.Align = alNone;
  btnMenuCikis.Position.X = 200;
  btnMenuCikis.Position.Y = 370;
  btnMenuCikis.Width = 290;
  btnMenuCikis.Height = 80;
  btnMenuCikis.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#ef4444');
  btnMenuCikis.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  btnMenuCikis.clProSettings.FontSize = 20;
  btnMenuCikis.clProSettings.IsRound = True;
  btnMenuCikis.clProSettings.RoundHeight = 20;
  btnMenuCikis.clProSettings.RoundWidth = 20;
  btnMenuCikis.SetclProSettings(btnMenuCikis.clProSettings);
  Form1.AddNewEvent(btnMenuCikis, tbeOnClick, 'MenuCikis');

  // ===== PARKUR OYUNU =====
  
  pnlParkur = Form1.AddNewProPanel(Form1, 'pnlParkur');
  pnlParkur.Align = alClient;
  pnlParkur.Visible = False;
  pnlParkur.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0f172a');
  pnlParkur.SetclProSettings(pnlParkur.clProSettings);

  imgParkurArka = Form1.AddNewImage(pnlParkur, 'imgParkurArka');
  imgParkurArka.Align = alClient;
  imgParkurArka.HitTest = False;

  lblParkurBaslik = Form1.AddNewLabel(pnlParkur, 'lblParkurBaslik', 'PARKUR');
  lblParkurBaslik.Align = alTop;
  lblParkurBaslik.Height = 50;
  lblParkurBaslik.StyledSettings = ssFamily;
  lblParkurBaslik.TextSettings.Font.Size = 18;
  lblParkurBaslik.TextSettings.FontColor = clAlphaColor.clHexToColor('#f59e0b');

  btnParkurMenu = Form1.AddNewButton(lblParkurBaslik, 'btnParkurMenu', 'MENU');
  btnParkurMenu.Align = alRight;
  btnParkurMenu.Width = 100;
  Form1.AddNewEvent(btnParkurMenu, tbeOnClick, 'MenuGoster');

  pltf1 = Form1.AddNewPanel(pnlParkur, 'pltf1');
  pltf1.Align = AlNone;
  pltf1.Position.X = 150;
  pltf1.Position.Y = 300;
  pltf1.Width = 120;
  pltf1.Height = 20;

  pltf2 = Form1.AddNewPanel(pnlParkur, 'pltf2');
  pltf2.Align = AlNone;
  pltf2.Position.X = 300;
  pltf2.Position.Y = 260;
  pltf2.Width = 100;
  pltf2.Height = 20;

  pltf3 = Form1.AddNewPanel(pnlParkur, 'pltf3');
  pltf3.Align = AlNone;
  pltf3.Position.X = 430;
  pltf3.Position.Y = 220;
  pltf3.Width = 100;
  pltf3.Height = 20;

  pltf4 = Form1.AddNewPanel(pnlParkur, 'pltf4');
  pltf4.Align = AlNone;
  pltf4.Position.X = 350;
  pltf4.Position.Y = 160;
  pltf4.Width = 100;
  pltf4.Height = 20;

  pltf5 = Form1.AddNewPanel(pnlParkur, 'pltf5');
  pltf5.Align = AlNone;
  pltf5.Position.X = 480;
  pltf5.Position.Y = 100;
  pltf5.Width = 100;
  pltf5.Height = 20;

  pltfBitis = Form1.AddNewPanel(pnlParkur, 'pltfBitis');
  pltfBitis.Align = AlNone;
  pltfBitis.Position.X = 550;
  pltfBitis.Position.Y = 40;
  pltfBitis.Width = 100;
  pltfBitis.Height = 20;

  imgKarakter = Form1.AddNewImage(pnlParkur, 'imgKarakter');
  imgKarakter.Align = AlNone;
  imgKarakter.Width = 60;
  imgKarakter.Height = 80;
  imgKarakter.Visible = False;

  karakterCember = Form1.AddNewCircle(pnlParkur, 'karakterCember');
  karakterCember.Align = AlNone;
  karakterCember.Width = 60;
  karakterCember.Height = 80;

  // IDLE ANIMASYON (Beklerken)
  Form1.AddAssetFromUrl('https://i.ibb.co/7xpbg5dH/dle.png');
  animIdle = Form1.AddNewBitmapListAnimation(karakterCember, 'animIdle');
  animIdle.AnimationBitmap.LoadFromFile(Clomosy.AppFilesPath + 'dle.png');
  animIdle.AnimationCount = 6;
  animIdle.AnimationRowCount = 1;
  animIdle.Loop = True;
  animIdle.Enabled = True;
  animIdle.PropertyName = 'Fill.Bitmap.Bitmap';
  animIdle.Duration = 1.0;

  // WALK ANIMASYON (Walk yok, Idle kullan)
  animWalk = Form1.AddNewBitmapListAnimation(karakterCember, 'animWalk');
  animWalk.AnimationBitmap.LoadFromFile(Clomosy.AppFilesPath + 'dle.png');
  animWalk.AnimationCount = 6;
  animWalk.AnimationRowCount = 1;
  animWalk.Loop = True;
  animWalk.Enabled = False;
  animWalk.PropertyName = 'Fill.Bitmap.Bitmap';
  animWalk.Duration = 0.8;

  // RUN ANIMASYON (Kosarken)
  Form1.AddAssetFromUrl('https://i.ibb.co/xqjD59zW/Run.png');
  animRun = Form1.AddNewBitmapListAnimation(karakterCember, 'animRun');
  animRun.AnimationBitmap.LoadFromFile(Clomosy.AppFilesPath + 'Run.png');
  animRun.AnimationCount = 8;
  animRun.AnimationRowCount = 1;
  animRun.Loop = True;
  animRun.Enabled = False;
  animRun.PropertyName = 'Fill.Bitmap.Bitmap';
  animRun.Duration = 0.6;

  // JUMP ANIMASYON (Ziplayarken)
  Form1.AddAssetFromUrl('https://i.ibb.co/rf5NR8xw/Jump.png');
  animJump = Form1.AddNewBitmapListAnimation(karakterCember, 'animJump');
  animJump.AnimationBitmap.LoadFromFile(Clomosy.AppFilesPath + 'Jump.png');
  animJump.AnimationCount = 10;
  animJump.AnimationRowCount = 1;
  animJump.Loop = True;
  animJump.Enabled = False;
  animJump.PropertyName = 'Fill.Bitmap.Bitmap';
  animJump.Duration = 0.5;

  pnlParkurKontrol = Form1.AddNewPanel(pnlParkur, 'pnlParkurKontrol');
  pnlParkurKontrol.Align = alBottom;
  pnlParkurKontrol.Height = 80;

  btnParkurSol = Form1.AddNewButton(pnlParkurKontrol, 'btnParkurSol', '<');
  btnParkurSol.Align = alLeft;
  btnParkurSol.Width = 100;
  Form1.AddNewEvent(btnParkurSol, tbeOnMouseDown, 'ParkurSolBas');
  Form1.AddNewEvent(btnParkurSol, tbeOnMouseUp, 'ParkurSolBirak');

  btnParkurZipla = Form1.AddNewButton(pnlParkurKontrol, 'btnParkurZipla', 'ZIPLA');
  btnParkurZipla.Align = alClient;
  Form1.AddNewEvent(btnParkurZipla, tbeOnClick, 'ParkurZipla');

  btnParkurSag = Form1.AddNewButton(pnlParkurKontrol, 'btnParkurSag', '>');
  btnParkurSag.Align = alRight;
  btnParkurSag.Width = 100;
  Form1.AddNewEvent(btnParkurSag, tbeOnMouseDown, 'ParkurSagBas');
  Form1.AddNewEvent(btnParkurSag, tbeOnMouseUp, 'ParkurSagBirak');

  tmrParkur = Form1.AddNewTimer(Form1, 'tmrParkur', 30);
  tmrParkur.Enabled = False;
  Form1.AddNewEvent(tmrParkur, tbeOnTimer, 'ParkurHareket');

  // ===== CANTA OYUNU =====
  
  pnlCanta = Form1.AddNewProPanel(Form1, 'pnlCanta');
  pnlCanta.Align = alClient;
  pnlCanta.Visible = False;
  pnlCanta.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#0f172a');
  pnlCanta.SetclProSettings(pnlCanta.clProSettings);

  pnlCantaUst = Form1.AddNewPanel(pnlCanta, 'pnlCantaUst');
  pnlCantaUst.Align = alTop;
  pnlCantaUst.Height = 60;

  lblCantaBaslik = Form1.AddNewLabel(pnlCantaUst, 'lblCantaBaslik', 'CANTA');
  lblCantaBaslik.Align = alLeft;
  lblCantaBaslik.Width = 200;
  lblCantaBaslik.StyledSettings = ssFamily;
  lblCantaBaslik.TextSettings.Font.Size = 18;
  lblCantaBaslik.TextSettings.FontColor = clAlphaColor.clHexToColor('#f59e0b');

  lblCantaPuan = Form1.AddNewLabel(pnlCantaUst, 'lblCantaPuan', 'Puan: 0');
  lblCantaPuan.Align = alRight;
  lblCantaPuan.Width = 100;
  lblCantaPuan.StyledSettings = ssFamily;
  lblCantaPuan.TextSettings.Font.Size = 14;
  lblCantaPuan.TextSettings.FontColor = clAlphaColor.clHexToColor('#10b981');

  lblCantaSure = Form1.AddNewLabel(pnlCantaUst, 'lblCantaSure', 'Sure: 90s');
  lblCantaSure.Align = alRight;
  lblCantaSure.Width = 100;
  lblCantaSure.StyledSettings = ssFamily;
  lblCantaSure.TextSettings.Font.Size = 14;
  lblCantaSure.TextSettings.FontColor = clAlphaColor.clHexToColor('#ef4444');

  btnCantaMenu = Form1.AddNewButton(pnlCantaUst, 'btnCantaMenu', 'MENU');
  btnCantaMenu.Align = alRight;
  btnCantaMenu.Width = 80;
  Form1.AddNewEvent(btnCantaMenu, tbeOnClick, 'MenuGoster');

  pnlCantaAlt = Form1.AddNewPanel(pnlCanta, 'pnlCantaAlt');
  pnlCantaAlt.Align = alBottom;
  pnlCantaAlt.Height = 40;
  
  lblCantaAciklama = Form1.AddNewLabel(pnlCantaAlt, 'lblCantaAciklama', 'Esyalari surukleyip cantaya birak!');
  lblCantaAciklama.Align = alClient;
  lblCantaAciklama.TextSettings.FontColor = clAlphaColor.clHexToColor('#94a3b8');

  pnlCantaAlan = Form1.AddNewPanel(pnlCanta, 'pnlCantaAlan');
  pnlCantaAlan.Align = alClient;
  
  // ÖNEMLI: MouseMove parent panel'de olmalı ki sürüklerken kesintisiz çalışsın!
  Form1.AddNewEvent(pnlCantaAlan, tbeOnMouseMove, 'EsyaMouseMove');
  Form1.AddNewEvent(pnlCantaAlan, tbeOnMouseUp, 'EsyaBirak');

  pnlTorba = Form1.AddNewProPanel(pnlCantaAlan, 'pnlTorba');
  pnlTorba.Align = AlNone;
  pnlTorba.Position.X = 255;
  pnlTorba.Position.Y = 80;
  pnlTorba.Width = 180;
  pnlTorba.Height = 250;
  pnlTorba.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#15803d');
  pnlTorba.clProSettings.BorderColor = clAlphaColor.clHexToColor('#22c55e');
  pnlTorba.clProSettings.BorderWidth = 4;
  pnlTorba.clProSettings.IsRound = True;
  pnlTorba.clProSettings.RoundHeight = 18;
  pnlTorba.clProSettings.RoundWidth = 18;
  pnlTorba.SetclProSettings(pnlTorba.clProSettings);
  
  lblTorba = Form1.AddNewLabel(pnlTorba, 'lblTorba', '🎒'#13#13'CANTA'#13#13'Surukle birak');
  lblTorba.Align = alClient;
  lblTorba.StyledSettings = ssFamily;
  lblTorba.TextSettings.Font.Size = 16;
  lblTorba.TextSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  lblTorba.TextSettings.HorzAlign = taCenter;
  lblTorba.TextSettings.VertAlign = taCenter;
  lblTorba.HitTest = False;

  pnlSu = Form1.AddNewProPanel(pnlCantaAlan, 'pnlSu');
  lblSu = Form1.AddNewLabel(pnlSu, 'lblSu', '');
  EsyaYap(pnlSu, lblSu, 20, 60, '💧', 'Su');
  Form1.AddNewEvent(pnlSu, tbeOnMouseDown, 'SuSec');

  pnlIlkYardim = Form1.AddNewProPanel(pnlCantaAlan, 'pnlIlkYardim');
  lblIlkYardim = Form1.AddNewLabel(pnlIlkYardim, 'lblIlkYardim', '');
  EsyaYap(pnlIlkYardim, lblIlkYardim, 130, 60, '🩹', 'Ilk Yardim');
  Form1.AddNewEvent(pnlIlkYardim, tbeOnMouseDown, 'IlkYardimSec');
  
  

  pnlFener = Form1.AddNewProPanel(pnlCantaAlan, 'pnlFener');
  lblFener = Form1.AddNewLabel(pnlFener, 'lblFener', '');
  EsyaYap(pnlFener, lblFener, 455, 60, '🔦', 'Fener');
  Form1.AddNewEvent(pnlFener, tbeOnMouseDown, 'FenerSec');
  
  

  pnlIlac = Form1.AddNewProPanel(pnlCantaAlan, 'pnlIlac');
  lblIlac = Form1.AddNewLabel(pnlIlac, 'lblIlac', '');
  EsyaYap(pnlIlac, lblIlac, 565, 60, '💊', 'Ilac');
  Form1.AddNewEvent(pnlIlac, tbeOnMouseDown, 'IlacSec');
  
  

  pnlDuduk = Form1.AddNewProPanel(pnlCantaAlan, 'pnlDuduk');
  lblDuduk = Form1.AddNewLabel(pnlDuduk, 'lblDuduk', '');
  EsyaYap(pnlDuduk, lblDuduk, 20, 170, '📯', 'Dustuk');
  Form1.AddNewEvent(pnlDuduk, tbeOnMouseDown, 'DudukSec');
  
  

  pnlBattaniye = Form1.AddNewProPanel(pnlCantaAlan, 'pnlBattaniye');
  lblBattaniye = Form1.AddNewLabel(pnlBattaniye, 'lblBattaniye', '');
  EsyaYap(pnlBattaniye, lblBattaniye, 130, 170, '🛏️', 'Battaniye');
  Form1.AddNewEvent(pnlBattaniye, tbeOnMouseDown, 'BattaniyeSec');
  
  

  pnlRadyo = Form1.AddNewProPanel(pnlCantaAlan, 'pnlRadyo');
  lblRadyo = Form1.AddNewLabel(pnlRadyo, 'lblRadyo', '');
  EsyaYap(pnlRadyo, lblRadyo, 455, 170, '📻', 'Radyo');
  Form1.AddNewEvent(pnlRadyo, tbeOnMouseDown, 'RadyoSec');
  
  

  pnlPara = Form1.AddNewProPanel(pnlCantaAlan, 'pnlPara');
  lblPara = Form1.AddNewLabel(pnlPara, 'lblPara', '');
  EsyaYap(pnlPara, lblPara, 565, 170, '💵', 'Para');
  Form1.AddNewEvent(pnlPara, tbeOnMouseDown, 'ParaSec');
  
  

  pnlTelefon = Form1.AddNewProPanel(pnlCantaAlan, 'pnlTelefon');
  lblTelefon = Form1.AddNewLabel(pnlTelefon, 'lblTelefon', '');
  EsyaYap(pnlTelefon, lblTelefon, 20, 280, '📱', 'Telefon');
  Form1.AddNewEvent(pnlTelefon, tbeOnMouseDown, 'TelefonSec');
  
  

  pnlKonsol = Form1.AddNewProPanel(pnlCantaAlan, 'pnlKonsol');
  lblKonsol = Form1.AddNewLabel(pnlKonsol, 'lblKonsol', '');
  EsyaYap(pnlKonsol, lblKonsol, 130, 280, '🎮', 'Konsol');
  Form1.AddNewEvent(pnlKonsol, tbeOnMouseDown, 'KonsolSec');
  
  

  pnlPerfum = Form1.AddNewProPanel(pnlCantaAlan, 'pnlPerfum');
  lblPerfum = Form1.AddNewLabel(pnlPerfum, 'lblPerfum', '');
  EsyaYap(pnlPerfum, lblPerfum, 455, 280, '🌸', 'Parfum');
  Form1.AddNewEvent(pnlPerfum, tbeOnMouseDown, 'PerfumSec');
  
  

  pnlLaptop = Form1.AddNewProPanel(pnlCantaAlan, 'pnlLaptop');
  lblLaptop = Form1.AddNewLabel(pnlLaptop, 'lblLaptop', '');
  EsyaYap(pnlLaptop, lblLaptop, 565, 280, '💻', 'Laptop');
  Form1.AddNewEvent(pnlLaptop, tbeOnMouseDown, 'LaptopSec');
  
  

  pnlBilgi = Form1.AddNewProPanel(pnlCanta, 'pnlBilgi');
  pnlBilgi.Align = AlNone;
  pnlBilgi.Position.X = 120;
  pnlBilgi.Position.Y = 140;
  pnlBilgi.Width = 450;
  pnlBilgi.Height = 230;
  pnlBilgi.Visible = False;
  pnlBilgi.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#15803d');
  pnlBilgi.clProSettings.BorderColor = clAlphaColor.clHexToColor('#22c55e');
  pnlBilgi.clProSettings.BorderWidth = 5;
  pnlBilgi.clProSettings.IsRound = True;
  pnlBilgi.clProSettings.RoundHeight = 25;
  pnlBilgi.clProSettings.RoundWidth = 25;
  pnlBilgi.SetclProSettings(pnlBilgi.clProSettings);

  lblBilgiBaslik = Form1.AddNewLabel(pnlBilgi, 'lblBilgiBaslik', '');
  lblBilgiBaslik.Align = alTop;
  lblBilgiBaslik.Height = 50;
  lblBilgiBaslik.StyledSettings = ssFamily;
  lblBilgiBaslik.TextSettings.Font.Size = 18;
  lblBilgiBaslik.TextSettings.FontColor = clAlphaColor.clHexToColor('#fbbf24');
  lblBilgiBaslik.TextSettings.HorzAlign = taCenter;
  lblBilgiBaslik.TextSettings.VertAlign = taCenter;

  lblBilgiIcerik = Form1.AddNewLabel(pnlBilgi, 'lblBilgiIcerik', '');
  lblBilgiIcerik.Align = alClient;
  lblBilgiIcerik.WordWrap = True;
  lblBilgiIcerik.Margins.Left = 20;
  lblBilgiIcerik.Margins.Right = 20;
  lblBilgiIcerik.Margins.Top = 10;
  lblBilgiIcerik.Margins.Bottom = 10;
  lblBilgiIcerik.TextSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');

  btnBilgiKapat = Form1.AddNewProButton(pnlBilgi, 'btnBilgiKapat', 'Tamam');
  btnBilgiKapat.Align = alBottom;
  btnBilgiKapat.Height = 50;
  btnBilgiKapat.clProSettings.BackgroundColor = clAlphaColor.clHexToColor('#22c55e');
  btnBilgiKapat.clProSettings.FontColor = clAlphaColor.clHexToColor('#FFFFFF');
  btnBilgiKapat.clProSettings.FontSize = 16;
  btnBilgiKapat.clProSettings.IsRound = True;
  btnBilgiKapat.clProSettings.RoundHeight = 25;
  btnBilgiKapat.clProSettings.RoundWidth = 25;
  btnBilgiKapat.SetclProSettings(btnBilgiKapat.clProSettings);
  Form1.AddNewEvent(btnBilgiKapat, tbeOnClick, 'BilgiKapat');

  tmrCanta = Form1.AddNewTimer(Form1, 'tmrCanta', 1000);
  tmrCanta.Enabled = False;
  Form1.AddNewEvent(tmrCanta, tbeOnTimer, 'CantaSureGuncelle');

  MenuGoster;
  Form1.Run;
}
Yukarı Dön
 Yanıt Yaz Yanıt Yaz

Forum Atla Forum İzinleri Açılır Kutu İzle

Forum Software by Web Wiz Forums® version 12.07
Copyright ©2001-2024 Web Wiz Ltd.

Bu Sayfa 0,047 Saniyede Yüklendi.