diff --git a/applications/tappytux/images/sprites/tux_1.png b/applications/tappytux/images/sprites/tux_1.png new file mode 100644 index 000000000..7e4dd8308 Binary files /dev/null and b/applications/tappytux/images/sprites/tux_1.png differ diff --git a/applications/tappytux/images/sprites/tux_2.png b/applications/tappytux/images/sprites/tux_2.png new file mode 100644 index 000000000..abde17a0d Binary files /dev/null and b/applications/tappytux/images/sprites/tux_2.png differ diff --git a/applications/tappytux/images/sprites/tux_3.png b/applications/tappytux/images/sprites/tux_3.png new file mode 100644 index 000000000..693b174e8 Binary files /dev/null and b/applications/tappytux/images/sprites/tux_3.png differ diff --git a/applications/tappytux/images/sprites/tux_4.png b/applications/tappytux/images/sprites/tux_4.png new file mode 100644 index 000000000..23ddd3eee Binary files /dev/null and b/applications/tappytux/images/sprites/tux_4.png differ diff --git a/applications/tappytux/mod_tappywords.pas b/applications/tappytux/mod_tappywords.pas index 684cdb51b..4082af3ff 100644 --- a/applications/tappytux/mod_tappywords.pas +++ b/applications/tappytux/mod_tappywords.pas @@ -7,7 +7,7 @@ interface uses Classes, SysUtils, FileUtil, // LCL - ExtCtrls, + ExtCtrls, Graphics, // TappyTux tappyconfig, tappymodules; @@ -27,7 +27,6 @@ type gameQuestionList : TStringList; timerWords: TTimer; procedure HandleOnTimer(Sender: TObject); - public constructor Create; override; destructor Destroy; override; @@ -60,8 +59,9 @@ begin Questions[i].Top:= 24; Questions[i].Text := formTappyTuxGame.Test.Lines.Strings[random(71)]; end; - end + end; + vTappyTuxDrawer.HandleAnimationOnTimer(); end; constructor TTappyWords.Create; @@ -72,7 +72,6 @@ begin timerWords.Enabled := False; timerWords.Interval := 1000; timerWords.OnTimer := @HandleOnTimer; - end; destructor TTappyWords.Destroy; @@ -97,6 +96,7 @@ end; procedure TTappyWords.StartNewGame(SndFX: Integer; Music: Integer; Level: Integer; QuestionList: Integer); var i: Integer; + lTuxAnimation: TTappySpriteAnimation; begin timerWords.Enabled := True; gameScore := 0; @@ -125,8 +125,25 @@ begin begin //Questions[i].Text := formTappyTuxGame.Test.Lines.Strings[random(71)]; Questions[i].Text := gameQuestionList[random(gameQuestionList.Count - 1)]; - end + end; + // Adds the Tux animation + lTuxAnimation := TTappySpriteAnimation.Create; + lTuxAnimation.IsInfinite := True; + lTuxAnimation.StartPoint := Point(250, 300); + lTuxAnimation.EndPoint := lTuxAnimation.StartPoint; + SetLength(lTuxAnimation.Bitmaps, 6); + lTuxAnimation.Bitmaps[0] := TPortableNetworkGraphic.Create; + lTuxAnimation.Bitmaps[0].LoadFromFile(vTappyTuxConfig.GetResourcesDir() + 'images' + PathDelim + 'sprites' + PathDelim + 'tux_1.png'); + lTuxAnimation.Bitmaps[1] := TPortableNetworkGraphic.Create; + lTuxAnimation.Bitmaps[1].LoadFromFile(vTappyTuxConfig.GetResourcesDir() + 'images' + PathDelim + 'sprites' + PathDelim + 'tux_2.png'); + lTuxAnimation.Bitmaps[2] := TPortableNetworkGraphic.Create; + lTuxAnimation.Bitmaps[2].LoadFromFile(vTappyTuxConfig.GetResourcesDir() + 'images' + PathDelim + 'sprites' + PathDelim + 'tux_3.png'); + lTuxAnimation.Bitmaps[3] := TPortableNetworkGraphic.Create; + lTuxAnimation.Bitmaps[3].LoadFromFile(vTappyTuxConfig.GetResourcesDir() + 'images' + PathDelim + 'sprites' + PathDelim + 'tux_4.png'); + lTuxAnimation.Bitmaps[4] := lTuxAnimation.Bitmaps[2]; + lTuxAnimation.Bitmaps[5] := lTuxAnimation.Bitmaps[1]; + vTappyTuxDrawer.AddAnimation(lTuxAnimation); end; procedure TTappyWords.Answered; diff --git a/applications/tappytux/tappydrawer.pas b/applications/tappytux/tappydrawer.pas index 39b5107b3..da33171f7 100644 --- a/applications/tappytux/tappydrawer.pas +++ b/applications/tappytux/tappydrawer.pas @@ -28,7 +28,7 @@ type TTappySpriteAnimation = class(TTappyTuxAnimation) public StartPoint, EndPoint: TPoint; - Bitmaps: array of TBitmap; + Bitmaps: array of TFPImageBitmap; procedure DrawToIntfImg(AIntfImage: TLazIntfImage); override; procedure ExecuteFinal; override; end; @@ -240,7 +240,6 @@ var IntfImage: TLazIntfImage; lDrawWidth, lDrawHeight: Integer; CurColor: TFPColor; - lCurColorDiv, lTranspColorDiv: Byte; begin IntfImage := TLazIntfImage.Create(0,0); try @@ -259,10 +258,10 @@ begin // Never draw outside the destination if (CurX < 0) or (CurY < 0) then Continue; - CurColor := IntfImage.Colors[x, y]; // Good for debugging - lCurColorDiv := CurColor.Green div $FF; - lTranspColorDiv := AColor.Green div $FF; - if lCurColorDiv <> lTranspColorDiv then + CurColor := AImage.Canvas.Colors[x, y]; // Good for debugging + if ((CurColor.Green div $FF) <> (AColor.Green div $FF)) or + ((CurColor.Red div $FF) <> (AColor.Red div $FF)) or + ((CurColor.Blue div $FF) <> (AColor.Blue div $FF)) then ADest.Colors[CurX, CurY] := IntfImage.Colors[x, y]; end; end; diff --git a/applications/tappytux/tappytux.lpi b/applications/tappytux/tappytux.lpi index 671d3bdee..8d2b4a21c 100644 --- a/applications/tappytux/tappytux.lpi +++ b/applications/tappytux/tappytux.lpi @@ -91,7 +91,7 @@ - + @@ -102,8 +102,7 @@ - - +