Get access to over 100 FireMonkey cross platform samples for Android, IOS, OSX, Windows, and Linux!

AndroidAppmethodDelphiDemoFiremonkeyIOSOSXWindows

Bejeweled Clone Game Source Code For Delphi XE6 Firemonkey On Android And IOS

| Delphi 11 10 XE8 XE7 XE Seattle Berlin Tokyo Rio Firemonkey Delphi Android Delphi IOS

Delphi XE6 Firemonkey Match 3 Bejeweled Clone Game Source Code | Delphi 11 10 XE8 XE7 XE Seattle Berlin Tokyo Rio Firemonkey Delphi Android Delphi IOSJoaquin Monedero from Embarcadero built a Bejeweled clone for Delphi Firemonkey as a CodeRage 8 demo called Jweled. Originally it was built for Delphi XE5 Firemonkey but it should work in Delphi XE6 Firemonkey (I loaded it up in AppMethod). It should run on all of the Firemonkey platforms which are Android, IOS, OSX, and Windows. The main idea behind Bejeweled is the Match 3 mechanic. Which is to say you have to match 3 of the same icon in a straight line. You do this by selecting an icon and swapping it with another icon that is next to it. When you match 3 icons together they poof and more icons drop down from the top to replace them. You have a limited amount of time to match as many icons as you can. A twist on this idea can be seen in the popular mobile game Puzzle & Dragons where you can swap an icon with any other icon on the grid. You could easily re-skin this demo and expand it into a full game. The demo includes a full local high score system. There is some interesting code in there including a function called CreateTextAnimation which creates a piece of text and animates it upwards using TFloatAnimation before disappearing. Here is that function:
procedure TfrmGame.CreateTextAnimation(i, j: Integer; Const aValue: string; aTextType: TTextType);
var
lText: TText;
lEffect: TGlowEffect;
lAni: TFloatAnimation;
begin
lText := TText.Create(nil);
lText.Parent := BoardLayout;
lText.Text := aValue;
lText.WordWrap := False;
lText.AutoSize := True;
lText.Position.X := i * fCellWidth;
lText.Position.Y := j * fCellHeight;
lText.HitTest := False;
lText.Font.Style := [TFontStyle.fsBold];
lText.BringToFront;

lEffect := TGlowEffect.Create(lText);
lEffect.Parent := lText;

lAni := TFloatAnimation.Create(lText);
lAni.Parent := lText;
lAni.PropertyName := 'Position.Y';
lAni.StartValue := lText.Position.Y;
lAni.StopValue := lAni.StartValue - fCellHeight;
lAni.OnFinish := DoTextFinish;

case aTextType of
ttScore:
begin
lText.Font.Size := 15;
lText.Color := TAlphaColorRec.White;
lEffect.GlowColor := TAlphaColorRec.Black;
lEffect.Softness := 0;
lAni.Duration := 2;
end;
ttMultiplier:
begin
lText.Font.Size := 30;
lText.Color := TAlphaColorRec.Magenta;
lEffect.GlowColor := TAlphaColorRec.Black;
lEffect.Softness := 0;
lAni.Duration := 4;
lText.BringToFront;
end;
end;

lAni.Start;
end;

Head over and download the full source code of the Bejeweled clone in Delphi XE6 Firemonkey.

Have Delphi Firemonkey questions? Ask and get answers on StackOverflow.

Related posts
DelphiDemoFiremonkeyLinuxOSXShowcaseWindows

AutoBlogAI: FireMonkey Client To Leverage LLMs And Generative AI For Blogging

DelphiFiremonkeyShowcaseUtilityWindows

Unleashing Creativity With Song Writer AI: A Deep Dive

DelphiFiremonkeyShowcaseWindows

How To Build Stable Diffusion Text To Image Prompts

AndroidC++BuilderDelphiFiremonkeyIOSOSXWindows

FireMonkey 10.4.2 Features Updated iOS 14, Android 11, And macOS 11 Support Plus Hundreds Of Fixes

Sign up for our Newsletter and
stay informed

9 Comments

Leave a Reply