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

  

Joaquin 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.

Comments are closed.