var
MyForm: TclForm;
ScoreLabel, ComboLabel, LevelLabel, InfoLabel: TclProLabel;
MiddlePanel: TclProPanel;
BottomButtons: array[0..8] of TclProButton;
MusicButtons: array[0..2] of TclProButton;
RestartButton, ResetButton: TclProButton;
Colors: array[0..8] of TAlphaColor;
Score, Combo, Level, randomIndex, i: Integer;
MediaPlayer: TclMediaPlayer;
GameTimer, InfoTimer, ColorChangeTimer: TclTimer;
GameActive, MusicSelected: Boolean;
void InfoTimer_OnTimer;
{
InfoLabel.Visible = False;
InfoTimer.Enabled = False;
}
void ShowInfoMessage(msg: string);
{
InfoLabel.Text = msg;
InfoLabel.Visible = True;
InfoLabel.BringToFront;
InfoTimer.Enabled = True;
}
void UpdateLabels;
{
ScoreLabel.Text = 'Puan: ' + IntToStr(Score);
ComboLabel.Text = 'Kombo: ' + IntToStr(Combo);
LevelLabel.Text = 'Seviye: ' + IntToStr(Level);
ScoreLabel.SetclProSettings(ScoreLabel.clProSettings);
ComboLabel.SetclProSettings(ComboLabel.clProSettings);
LevelLabel.SetclProSettings(LevelLabel.clProSettings);
}
void ResetCombo;
{
Combo = 0;
UpdateLabels;
}
void IncreaseCombo;
{
Combo = Combo + 1;
if ((Combo mod 5) == 0)
{
Level = Level + 1;
}
UpdateLabels;
}
void UpdateScore(change: Integer)
{
Score = Score + change;
if (Score < 0)
{
Score = 0;
}
UpdateLabels;
}
void ChangeColor;
var
borderIndex : Integer;
{
randomIndex = Trunc(Random() * 9);
MiddlePanel.clProSettings.BackgroundColor = Colors[randomIndex];
repeat
{
borderIndex = Trunc(Random() * 9);
} until (borderIndex <> randomIndex);
MiddlePanel.clProSettings.BorderColor = Colors[borderIndex];
MiddlePanel.clProSettings.BorderWidth = 8;
MiddlePanel.SetclProSettings(MiddlePanel.clProSettings);
}
void ColorChangeTimer_OnTimer;
{
if (GameActive)
{
ChangeColor();
}
}
void MakeClick(index: Integer)
if (MusicSelected)
{
ShowInfoMessage('Şarkı Seçin!');
// return yoksa else kullan
}
else
{
if (randomIndex <> index)
{
UpdateScore(10);
IncreaseCombo;
}
else
{
UpdateScore(-5);
ResetCombo;
ShowInfoMessage('Yanlış seçim! -5 Puan');
}
ChangeColor;
}
// Renk butonları tıklama
void ButtonClick0; { MakeClick(0); }
void ButtonClick1; { MakeClick(1); }
void ButtonClick2; { MakeClick(2); }
void ButtonClick3; { MakeClick(3); }
void ButtonClick4; { MakeClick(4); }
void ButtonClick5; { MakeClick(5); }
void ButtonClick6; { MakeClick(6); }
void ButtonClick7; { MakeClick(7); }
void ButtonClick8; { MakeClick(8); }
// Zorluk seviyesine göre oyunu başlatma
void StartGame(difficulty: string)
{
MediaPlayer.FileName = clPathCombine('arabenibidk.mp3', Clomosy.AppFilesPath);
MediaPlayer.CurrentTime = 0;
MediaPlayer.Volume = 0.9;
MediaPlayer.Play;
GameActive = True;
MusicSelected = True;
GameTimer.Enabled = True;
if (difficulty == 'kolay') {
ColorChangeTimer.Interval = 1700;
}
else if (difficulty == 'orta') {
ColorChangeTimer.Interval = 1300;
}
else if (difficulty == 'zor') {
ColorChangeTimer.Interval = 900;
}
ColorChangeTimer.Enabled = True;
}
// Müzik butonları tıklama
void MusicClick0; { StartGame('kolay'); }
void MusicClick1; { StartGame('orta'); }
void MusicClick2; { StartGame('zor'); }
void GameTimer_OnTimer;
var
Integer j;
{
if (GameActive && (MediaPlayer.CurrentTime >= MediaPlayer.Duration))
{
GameTimer.Enabled = False;
ColorChangeTimer.Enabled = False;
GameActive = False;
InfoLabel.Text = 'Şarkı bitti! Skor: ' + IntToStr(Score);
InfoLabel.clProSettings.FontSize = 22;
InfoLabel.clProSettings.FontColor = clAlphaColor.clBlue;
InfoLabel.SetclProSettings(InfoLabel.clProSettings);
InfoLabel.Visible = True;
InfoLabel.BringToFront();
j = 0;
if (j <= 8)
{
BottomButtons[j].Enabled = False;
j = j + 1;
}
if (j <= 8)
{
BottomButtons[j].Enabled = False;
j = j + 1;
}
if (j <= 8)
{
BottomButtons[j].Enabled = False;
j = j + 1;
}
if (j <= 8)
{
BottomButtons[j].Enabled = False;
j = j + 1;
}
if (j <= 8)
{
BottomButtons[j].Enabled = False;
j = j + 1;
}
if (j <= 8)
{
BottomButtons[j].Enabled = False;
j = j + 1;
}
if (j <= 8)
{
BottomButtons[j].Enabled = False;
j = j + 1;
}
if (j <= 8)
{
BottomButtons[j].Enabled = False;
j = j + 1;
}
if (j <= 8)
{
BottomButtons[j].Enabled = False;
}
j = 0;
if (j <= 2)
{
MusicButtons[j].Enabled = False;
j = j + 1;
}
if (j <= 2)
{
MusicButtons[j].Enabled = False;
j = j + 1;
}
if (j <= 2)
{
MusicButtons[j].Enabled = False;
}
RestartButton.Visible = True;
RestartButton.BringToFront();
}
}
void RestartButton_OnClick;
var
Integer i;
{
RestartButton.Visible = False;
i = 0;
if (i <= 8)
{
BottomButtons.Enabled = True; i = i + 1;
}
if (i <= 8)
{
BottomButtons.Enabled = True; i = i + 1;
}
if (i <= 8)
{
BottomButtons.Enabled = True; i = i + 1;
}
if (i <= 8)
{
BottomButtons.Enabled = True; i = i + 1;
}
if (i <= 8)
{
BottomButtons.Enabled = True; i = i + 1;
}
if (i <= 8)
{
BottomButtons.Enabled = True; i = i + 1;
}
if (i <= 8)
{
BottomButtons.Enabled = True; i = i + 1;
}
if (i <= 8)
{
BottomButtons.Enabled = True; i = i + 1;
}
if (i <= 8)
{
BottomButtons.Enabled = True;
}
i = 0;
if (i <= 2)
{
MusicButtons.Enabled = True; i = i + 1;
}
if (i <= 2)
{
MusicButtons.Enabled = True; i = i + 1;
}
if (i <= 2)
{
MusicButtons.Enabled = True;
}
Score = 0;
Combo = 0;
Level = 1;
UpdateLabels;
InfoLabel.Visible = False;
GameActive = False;
MusicSelected = False;
MediaPlayer.Stop;
ColorChangeTimer.Enabled = False;
randomIndex = Trunc(Random * 9);
MiddlePanel.clProSettings.BackgroundColor = Colors[randomIndex];
MiddlePanel.SetclProSettings(MiddlePanel.clProSettings);
}
void ResetButton_OnClick;
{
Score = 0;
Combo = 0;
Level = 1;
UpdateLabels;
InfoLabel.Visible = False;
GameActive = False;
MusicSelected = False;
MediaPlayer.Stop;;
ColorChangeTimer.Enabled = False;
randomIndex = Trunc(Random * 9);
MiddlePanel.clProSettings.BackgroundColor = Colors[randomIndex];
MiddlePanel.SetclProSettings(MiddlePanel.clProSettings);
i = 0;
if (i <= 8)
{
BottomButtons.Enabled = True; i = i + 1;
}
if (i <= 8)
{
BottomButtons.Enabled = True; i = i + 1;
}
if (i <= 8)
{
BottomButtons.Enabled = True; i = i + 1;
}
if (i <= 8)
{
BottomButtons.Enabled = True; i = i + 1;
}
if (i <= 8)
{
BottomButtons.Enabled = True; i = i + 1;
}
if (i <= 8)
{
BottomButtons.Enabled = True; i = i + 1;
}
if (i <= 8)
{
BottomButtons.Enabled = True; i = i + 1;
}
if (i <= 8)
{
BottomButtons.Enabled = True; i = i + 1;
}
if (i <= 8)
{
BottomButtons.Enabled = True;
}
i = 0;
if (i <= 2)
{
MusicButtons.Enabled = True; i = i + 1;
}
if (i <= 2)
{
MusicButtons.Enabled = True; i = i + 1;
}
if (i <= 2)
{
MusicButtons.Enabled = True;
}
RestartButton.Visible = False;
}
void InitializeForm;
{
Score = 0;
Combo = 0;
Level = 1;
MusicSelected = False;
GameActive = False;
MyForm = TclForm.Create(Self);
MyForm.SetBounds(0, 0, 400, 750);
Colors[0] = clAlphaColor.clRed;
Colors[1] = clAlphaColor.clGreen;
Colors[2] = clAlphaColor.clBlue;
Colors[3] = clAlphaColor.clYellow;
Colors[4] = clAlphaColor.clPurple;
Colors[5] = clAlphaColor.clOrange;
Colors[6] = clAlphaColor.clCyan;
Colors[7] = clAlphaColor.clBrown;
Colors[8] = clAlphaColor.clPink;
ScoreLabel = MyForm.AddNewProLabel(MyForm, 'ScoreLabel', 'Puan: 0');
ScoreLabel.Position.X = 20; ScoreLabel.Position.Y = 20;
ScoreLabel.Width = 120; ScoreLabel.Height = 30;
ScoreLabel.clProSettings.FontColor = clAlphaColor.clBlack;
ScoreLabel.SetclProSettings(ScoreLabel.clProSettings);
ComboLabel = MyForm.AddNewProLabel(MyForm, 'ComboLabel', 'Kombo: 0');
ComboLabel.Position.X = 20; ComboLabel.Position.Y = 60;
ComboLabel.Width = 120; ComboLabel.Height = 30;
ComboLabel.clProSettings.FontColor = clAlphaColor.clBlack;
ComboLabel.SetclProSettings(ComboLabel.clProSettings);
LevelLabel = MyForm.AddNewProLabel(MyForm, 'LevelLabel', 'Seviye: 1');
LevelLabel.Position.X = 20; LevelLabel.Position.Y = 100;
LevelLabel.Width = 120; LevelLabel.Height = 30;
LevelLabel.clProSettings.FontColor = clAlphaColor.clBlack;
LevelLabel.SetclProSettings(LevelLabel.clProSettings);
InfoLabel = MyForm.AddNewProLabel(MyForm, 'InfoLabel', '');
InfoLabel.Position.X = 150; InfoLabel.Position.Y = 60;
InfoLabel.Width = 230; InfoLabel.Height = 30;
InfoLabel.Visible = False;
InfoLabel.clProSettings.FontColor = clAlphaColor.clRed;
InfoLabel.clProSettings.FontSize = 18;
InfoLabel.SetclProSettings(InfoLabel.clProSettings);
MusicButtons[0] = MyForm.AddNewProButton(MyForm, 'MusicBtn0', 'Kolay');
MusicButtons[0].Width = 100; MusicButtons[0].Height = 40;
MusicButtons[0].Position.X = 280; MusicButtons[0].Position.Y = 20;
MusicButtons[0].clProSettings.BackgroundColor = clAlphaColor.clGray;
MusicButtons[0].clProSettings.FontColor = clAlphaColor.clWhite;
MusicButtons[0].SetclProSettings(MusicButtons[0].clProSettings);
MyForm.AddNewEvent(MusicButtons[0], tbeOnClick, 'MusicClick0');
MusicButtons[1] = MyForm.AddNewProButton(MyForm, 'MusicBtn1', 'Orta');
MusicButtons[1].Width = 100; MusicButtons[1].Height = 40;
MusicButtons[1].Position.X = 280; MusicButtons[1].Position.Y = 65;
MusicButtons[1].clProSettings.BackgroundColor = clAlphaColor.clGray;
MusicButtons[1].clProSettings.FontColor = clAlphaColor.clWhite;
MusicButtons[1].SetclProSettings(MusicButtons[1].clProSettings);
MyForm.AddNewEvent(MusicButtons[1], tbeOnClick, 'MusicClick1');
MusicButtons[2] = MyForm.AddNewProButton(MyForm, 'MusicBtn2', 'Zor');
MusicButtons[2].Width = 100; MusicButtons[2].Height = 40;
MusicButtons[2].Position.X = 280; MusicButtons[2].Position.Y = 110;
MusicButtons[2].clProSettings.BackgroundColor = clAlphaColor.clGray;
MusicButtons[2].clProSettings.FontColor = clAlphaColor.clWhite;
MusicButtons[2].SetclProSettings(MusicButtons[2].clProSettings);
MyForm.AddNewEvent(MusicButtons[2], tbeOnClick, 'MusicClick2');
MiddlePanel = MyForm.AddNewProPanel(MyForm, 'MiddlePanel');
MiddlePanel.Width = 150; MiddlePanel.Height = 150;
MiddlePanel.Position.X = 125; MiddlePanel.Position.Y = 120;
randomIndex = Trunc(Random * 9);
MiddlePanel.clProSettings.BackgroundColor = Colors[randomIndex];
MiddlePanel.clProSettings.BorderWidth = 8;
MiddlePanel.clProSettings.BorderColor = Colors[(randomIndex + 1) mod 9];
MiddlePanel.SetclProSettings(MiddlePanel.clProSettings);
BottomButtons[0] = MyForm.AddNewProButton(MyForm, 'Button0', '');
BottomButtons[0].Width = 100; BottomButtons[0].Height = 50;
BottomButtons[0].Position.X = 20; BottomButtons[0].Position.Y = 600;
BottomButtons[0].clProSettings.BackgroundColor = Colors[0];
BottomButtons[0].clProSettings.BorderColor = clAlphaColor.clBlack;
BottomButtons[0].clProSettings.BorderWidth = 4;
BottomButtons[0].clProSettings.FontColor = clAlphaColor.clWhite;
BottomButtons[0].SetclProSettings(BottomButtons[0].clProSettings);
MyForm.AddNewEvent(BottomButtons[0], tbeOnClick, 'ButtonClick0');
BottomButtons[1] = MyForm.AddNewProButton(MyForm, 'Button1', '');
BottomButtons[1].Width = 100; BottomButtons[1].Height = 50;
BottomButtons[1].Position.X = 140; BottomButtons[1].Position.Y = 600;
BottomButtons[1].clProSettings.BackgroundColor = Colors[1];
BottomButtons[1].clProSettings.BorderColor = clAlphaColor.clBlack;
BottomButtons[1].clProSettings.BorderWidth = 4;
BottomButtons[1].clProSettings.FontColor = clAlphaColor.clWhite;
BottomButtons[1].SetclProSettings(BottomButtons[1].clProSettings);
MyForm.AddNewEvent(BottomButtons[1], tbeOnClick, 'ButtonClick1');
BottomButtons[2] = MyForm.AddNewProButton(MyForm, 'Button2', '');
BottomButtons[2].Width = 100; BottomButtons[2].Height = 50;
BottomButtons[2].Position.X = 260; BottomButtons[2].Position.Y = 600;
BottomButtons[2].clProSettings.BackgroundColor = Colors[2];
BottomButtons[2].clProSettings.BorderColor = clAlphaColor.clBlack;
BottomButtons[2].clProSettings.BorderWidth = 4;
BottomButtons[2].clProSettings.FontColor = clAlphaColor.clWhite;
BottomButtons[2].SetclProSettings(BottomButtons[2].clProSettings);
MyForm.AddNewEvent(BottomButtons[2], tbeOnClick, 'ButtonClick2');
BottomButtons[3] = MyForm.AddNewProButton(MyForm, 'Button3', '');
BottomButtons[3].Width = 100; BottomButtons[3].Height = 50;
BottomButtons[3].Position.X = 20; BottomButtons[3].Position.Y = 660;
BottomButtons[3].clProSettings.BackgroundColor = Colors[3];
BottomButtons[3].clProSettings.BorderColor = clAlphaColor.clBlack;
BottomButtons[3].clProSettings.BorderWidth = 4;
BottomButtons[3].clProSettings.FontColor = clAlphaColor.clWhite;
BottomButtons[3].SetclProSettings(BottomButtons[3].clProSettings);
MyForm.AddNewEvent(BottomButtons[3], tbeOnClick, 'ButtonClick3');
BottomButtons[4] = MyForm.AddNewProButton(MyForm, 'Button4', '');
BottomButtons[4].Width = 100; BottomButtons[4].Height = 50;
BottomButtons[4].Position.X = 140; BottomButtons[4].Position.Y = 660;
BottomButtons[4].clProSettings.BackgroundColor = Colors[4];
BottomButtons[4].clProSettings.BorderColor = clAlphaColor.clBlack;
BottomButtons[4].clProSettings.BorderWidth = 4;
BottomButtons[4].clProSettings.FontColor = clAlphaColor.clWhite;
BottomButtons[4].SetclProSettings(BottomButtons[4].clProSettings);
MyForm.AddNewEvent(BottomButtons[4], tbeOnClick, 'ButtonClick4');
BottomButtons[5] = MyForm.AddNewProButton(MyForm, 'Button5', '');
BottomButtons[5].Width = 100; BottomButtons[5].Height = 50;
BottomButtons[5].Position.X = 260; BottomButtons[5].Position.Y = 660;
BottomButtons[5].clProSettings.BackgroundColor = Colors[5];
BottomButtons[5].clProSettings.BorderColor = clAlphaColor.clBlack;
BottomButtons[5].clProSettings.BorderWidth = 4;
BottomButtons[5].clProSettings.FontColor = clAlphaColor.clWhite;
BottomButtons[5].SetclProSettings(BottomButtons[5].clProSettings);
MyForm.AddNewEvent(BottomButtons[5], tbeOnClick, 'ButtonClick5');
BottomButtons[6] = MyForm.AddNewProButton(MyForm, 'Button6', '');
BottomButtons[6].Width = 100; BottomButtons[6].Height = 50;
BottomButtons[6].Position.X = 20; BottomButtons[6].Position.Y = 720;
BottomButtons[6].clProSettings.BackgroundColor = Colors[6];
BottomButtons[6].clProSettings.BorderColor = clAlphaColor.clBlack;
BottomButtons[6].clProSettings.BorderWidth = 4;
BottomButtons[6].clProSettings.FontColor = clAlphaColor.clWhite;
BottomButtons[6].SetclProSettings(BottomButtons[6].clProSettings);
MyForm.AddNewEvent(BottomButtons[6], tbeOnClick, 'ButtonClick6');
BottomButtons[7] = MyForm.AddNewProButton(MyForm, 'Button7', '');
BottomButtons[7].Width = 100; BottomButtons[7].Height = 50;
BottomButtons[7].Position.X = 140; BottomButtons[7].Position.Y = 720;
BottomButtons[7].clProSettings.BackgroundColor = Colors[7];
BottomButtons[7].clProSettings.BorderColor = clAlphaColor.clBlack;
BottomButtons[7].clProSettings.BorderWidth = 4;
BottomButtons[7].clProSettings.FontColor = clAlphaColor.clWhite;
BottomButtons[7].SetclProSettings(BottomButtons[7].clProSettings);
MyForm.AddNewEvent(BottomButtons[7], tbeOnClick, 'ButtonClick7');
BottomButtons[8] = MyForm.AddNewProButton(MyForm, 'Button8', '');
BottomButtons[8].Width = 100; BottomButtons[8].Height = 50;
BottomButtons[8].Position.X = 260; BottomButtons[8].Position.Y = 720;
BottomButtons[8].clProSettings.BackgroundColor = Colors[8];
BottomButtons[8].clProSettings.BorderColor = clAlphaColor.clBlack;
BottomButtons[8].clProSettings.BorderWidth = 4;
BottomButtons[8].clProSettings.FontColor = clAlphaColor.clWhite;
BottomButtons[8].SetclProSettings(BottomButtons[8].clProSettings);
MyForm.AddNewEvent(BottomButtons[8], tbeOnClick, 'ButtonClick8');
RestartButton = MyForm.AddNewProButton(MyForm, 'RestartButton', 'Tekrar Başla');
RestartButton.Width = 200; RestartButton.Height = 50;
RestartButton.Position.X = 100; RestartButton.Position.Y = 300;
RestartButton.Visible = False;
RestartButton.clProSettings.BackgroundColor = clAlphaColor.clGreen;
RestartButton.clProSettings.FontColor = clAlphaColor.clWhite;
RestartButton.SetclProSettings(RestartButton.clProSettings);
MyForm.AddNewEvent(RestartButton, tbeOnClick, 'RestartButton_OnClick');
ResetButton = MyForm.AddNewProButton(MyForm, 'ResetButton', 'Sıfırla');
ResetButton.Width = 100; ResetButton.Height = 40;
ResetButton.Position.X = 20; ResetButton.Position.Y = 550;
ResetButton.clProSettings.BackgroundColor = clAlphaColor.clRed;
ResetButton.clProSettings.FontColor = clAlphaColor.clWhite;
ResetButton.SetclProSettings(ResetButton.clProSettings);
MyForm.AddNewEvent(ResetButton, tbeOnClick, 'ResetButton_OnClick');
MyForm.AddAssetFromUrl(' https://github.com/yigitogtzz/assets/raw/refs/heads/main/arabenibidk.mp3" rel="nofollow - https://github.com/yigitogtzz/assets/raw/refs/heads/main/arabenibidk.mp3 ');
MediaPlayer = TclMediaPlayer.Create(MyForm);
GameTimer = MyForm.AddNewTimer(MyForm, 'GameTimer', 800);
GameTimer.Enabled = False;
MyForm.AddNewEvent(GameTimer, tbeOnTimer, 'GameTimer_OnTimer');
InfoTimer = MyForm.AddNewTimer(MyForm, 'InfoTimer', 1000);
InfoTimer.Enabled = False;
MyForm.AddNewEvent(InfoTimer, tbeOnTimer, 'InfoTimer_OnTimer');
ColorChangeTimer = MyForm.AddNewTimer(MyForm, 'ColorChangeTimer', 1500);
ColorChangeTimer.Enabled = False;
MyForm.AddNewEvent(ColorChangeTimer, tbeOnTimer, 'ColorChangeTimer_OnTimer');
//if (Clomosy.PlatformIsMobile)
MyForm.Run;
// else
// MyForm.RunModal;
}
InitializeForm
kodumun tamamı bu yardımcı olursanız sevinirim.