tappy tux: File renaming and adds basic code for modules

git-svn-id: https://svn.code.sf.net/p/lazarus-ccr/svn@1932 8e941d3f-bd1b-0410-a28a-d453659cc2b4
This commit is contained in:
sekelsenmat
2011-09-10 21:30:22 +00:00
parent e9067503ae
commit f743387f69
7 changed files with 301 additions and 145 deletions

View File

@ -0,0 +1,19 @@
unit mod_tappywords;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils,
tappymodules;
type
TTappyWords = class(TTappyModule)
public
end;
implementation
end.

View File

@ -1,11 +1,11 @@
unit tappytuxconfig;
unit tappyconfig;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Forms;
Classes, SysUtils, Forms, Graphics;
type

View File

@ -1,4 +1,4 @@
unit tappytuxdrawer;
unit tappydrawer;
{$mode objfpc}{$H+}
@ -7,7 +7,7 @@ interface
uses
Classes, SysUtils, Controls, Graphics, LCLType, IntfGraphics, fpimage,
Math,
tappytuxgamedata, tappytuxconfig;
tappygamedata, tappyconfig, tappymodules;
type
@ -41,8 +41,7 @@ type
procedure DrawImageWithTransparentColor(
ADest: TLazIntfImage; const ADestX, ADestY: Integer; AColor: TFPColor;
AImage: TFPImageBitmap);
function GetChessTileImage(ATile: TChessTile): TPortableNetworkGraphic;
procedure LoadImages();
//function GetImage(ATile: TChessTile): TPortableNetworkGraphic;
procedure HandleMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
procedure HandleMouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
@ -65,7 +64,7 @@ var
X, Y, SourceX, SourceY, DestX, DestY: integer;
dx, dy: Integer;
t: Double;
lTile: TChessTile;
//lTile: TChessTile;
begin
{ // Draw the moving tile
//WriteLn(Format('[TChessMoveAnimation.DrawToIntfImg] Afrom=%d,%d', [AFrom.X, AFrom.Y]));
@ -86,7 +85,7 @@ end;
procedure TFireAnimation.ExecuteFinal;
begin
vChessGame.MovePiece(AFrom, ATo);
//vChessGame.MovePiece(AFrom, ATo);
end;
{ TTappyTuxAnimation }
@ -155,16 +154,19 @@ var
col, row: integer;
lIntfImage: TLazIntfImage;
lTmpBmp: TBitmap;
lTileBmp: TPortableNetworkGraphic;
X, Y: integer;
begin
lIntfImage := TLazIntfImage.Create(0, 0);
lTmpBmp := TBitmap.Create;
try
// First draw the board
lIntfImage.LoadFromBitmap(imgBoard.Handle, 0{bmpBoard.MaskHandle});
// First draw the background
lIntfImage.LoadFromBitmap(GetCurrentModule().imgBackground.Handle, 0{bmpBoard.MaskHandle});
// Now all pieces
// Now the module should draw itself
// Draw all animations
{ // Now all pieces
for col := 1 to 8 do
for row := 1 to 8 do
begin
@ -181,7 +183,7 @@ begin
end;
// Now animations
if Assigned(FAnimation) then FAnimation.DrawToIntfImg(lIntfImage);
if Assigned(FAnimation) then FAnimation.DrawToIntfImg(lIntfImage);}
lTmpBmp.LoadFromIntfImage(lIntfImage);
ACanvas.Draw(0, 0, lTmpBmp);
@ -229,9 +231,9 @@ begin
end;
end;
function TTappyTuxDrawer.GetChessTileImage(ATile: TChessTile): TPortableNetworkGraphic;
{function TTappyTuxDrawer.GetChessTileImage(ATile: TChessTile): TPortableNetworkGraphic;
begin
{ case ATile of
case ATile of
ctWPawn: Result := imgWPawn;
ctWKnight: Result := imgWKnight;
ctWBishop: Result := imgWBishop;
@ -246,29 +248,8 @@ begin
ctBKing: Result := imgBKing;
else
Result := nil;
end;}
end;
procedure TTappyTuxDrawer.LoadImages();
var
lDir: string;
begin
lDir := vChessConfig.GetCurrentSkinDir();
{ imgBoard.LoadFromFile(lDir + 'base.png');
imgWPawn.LoadFromFile(lDir + 'wpawn.png');
imgWKnight.LoadFromFile(lDir + 'wknight.png');
imgWBishop.LoadFromFile(lDir + 'wbishop.png');
imgWRook.LoadFromFile(lDir + 'wrook.png');
imgWQueen.LoadFromFile(lDir + 'wqueen.png');
imgWKing.LoadFromFile(lDir + 'wking.png');
imgBPawn.LoadFromFile(lDir + 'bpawn.png');
imgBKnight.LoadFromFile(lDir + 'bknight.png');
imgBBishop.LoadFromFile(lDir + 'bbishop.png');
imgBRook.LoadFromFile(lDir + 'brook.png');
imgBQueen.LoadFromFile(lDir + 'bqueen.png');
imgBKing.LoadFromFile(lDir + 'bking.png');}
end;
end;
end;}
procedure TTappyTuxDrawer.HandleMouseMove(Sender: TObject; Shift: TShiftState; X,
Y: Integer);
@ -307,7 +288,7 @@ begin
end;}
end;
procedure TTappyTuxDrawer.AddAnimation(AAnimation: TChessAnimation);
procedure TTappyTuxDrawer.AddAnimation(AAnimation: TTappyTuxAnimation);
begin
{ FDrawerState := dsRunningAnimation;
FAnimation := AAnimation;}

View File

@ -1,40 +1,44 @@
unit GameData;
unit tappygamedata;
{$mode objfpc}{$H}
interface
uses
Classes, Forms, SysUtils, process, SynRegExpr,
LCLPRoc, tappywords, util, tappytuxconfig;
Classes, Forms, SysUtils, process;
// SynRegExpr,
// LCLProc,
// tappywords,
// util,
// tappyconfig;
Type
TTappyGameData = object
SndFX : Boolean;
SndMusic: Boolean;
ModuleName : String;
Option : String;
Level : Integer;
NextLevel : Integer;
NextLife : Integer;
Speed : Integer;
Score : Integer;
Lives : Integer;
SongList : TStringList;
QuestionList :TStringList;
Procedure Create;
Function GetQuestion:String;
Function CheckAnswer(Question,Answer:String):Integer;
Procedure ScoreUp(ScorInc:Integer);
Procedure LevelUp;
Procedure LoseLife;
Function NextSong: String;
BGS : TStringList;
BG : Integer;
Function NextBG:String;
end;
TTappyGameData = object
SndFX : Boolean;
SndMusic: Boolean;
ModuleName : String;
Option : String;
Level : Integer;
NextLevel : Integer;
NextLife : Integer;
Speed : Integer;
Score : Integer;
Lives : Integer;
SongList : TStringList;
QuestionList :TStringList;
BGS : TStringList;
BG : Integer;
(* Procedure Create;
Function GetQuestion:String;
Function CheckAnswer(Question,Answer:String):Integer;
Procedure ScoreUp(ScorInc:Integer);
Procedure LevelUp;
Procedure LoseLife;
Function NextSong: String;
Function NextBG:String;*)
end;
Type HammerQue = Object
(* HammerQue = Object
Target : Array [1..10] of Integer;
Function addTarget(newTarget : Integer):Boolean;
Procedure delTarget;
@ -58,18 +62,17 @@ Type HammerQue = Object
Constructor Create(isSuspended : boolean);
published
property terminated;
end;
end;*)
Var
ThisGame: TTappyGameData;
Question : TQuestion;
Scale : Integer;
TPTDIR: string;
var
gGameData: TTappyGameData;
//Question : TQuestion;
//Scale : Integer;
//TPTDIR: string;
implementation
constructor TQuestion.Create(isSuspended : boolean);
(*constructor TQuestion.Create(isSuspended : boolean);
begin
S := TSTringlist.Create;
FreeOnTerminate := True;
@ -241,8 +244,6 @@ Begin
end;
Function HammerQue.addTarget(newTarget : Integer):Boolean;
Var I : Integer;
New : Boolean;
@ -270,6 +271,6 @@ Begin
Target[X] := Target[X 1];
Dec(Count);
end;
end;*)
end.

View File

@ -0,0 +1,99 @@
unit tappymodules;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, Graphics;
type
{ TTappyModule }
TTappyModule = class
public
imgBackground: TPortableNetworkGraphic;
constructor Create; virtual;
destructor Destroy; override;
procedure LoadImages; virtual;
end;
procedure AddModule(AModule: TTappyModule);
function GetCurrentModule: TTappyModule;
function GetModule(AIndex: Integer): TTappyModule;
function GetModuleCount: Integer;
procedure SetCurrentModule(AIndex: Integer);
implementation
var
gTappyModules: TFPList;
gCurrentTappyModule: Integer = -1;
procedure AddModule(AModule: TTappyModule);
begin
gTappyModules.Add(Pointer(AModule));
end;
function GetCurrentModule: TTappyModule;
begin
Result := GetModule(gCurrentTappyModule);
end;
function GetModule(AIndex: Integer): TTappyModule;
begin
Result := TTappyModule(gTappyModules.Items[AIndex]);
end;
function GetModuleCount: Integer;
begin
Result := gTappyModules.Count;
end;
procedure SetCurrentModule(AIndex: Integer);
begin
gCurrentTappyModule := AIndex;
end;
{ TTappyModule }
constructor TTappyModule.Create;
begin
inherited Create;
end;
destructor TTappyModule.Destroy;
begin
inherited Destroy;
end;
procedure TTappyModule.LoadImages;
begin
{ var
lDir: string;
begin
lDir := vChessConfig.GetCurrentSkinDir();}
{ imgBoard.LoadFromFile(lDir + 'base.png');
imgWPawn.LoadFromFile(lDir + 'wpawn.png');
imgWKnight.LoadFromFile(lDir + 'wknight.png');
imgWBishop.LoadFromFile(lDir + 'wbishop.png');
imgWRook.LoadFromFile(lDir + 'wrook.png');
imgWQueen.LoadFromFile(lDir + 'wqueen.png');
imgWKing.LoadFromFile(lDir + 'wking.png');
imgBPawn.LoadFromFile(lDir + 'bpawn.png');
imgBKnight.LoadFromFile(lDir + 'bknight.png');
imgBBishop.LoadFromFile(lDir + 'bbishop.png');
imgBRook.LoadFromFile(lDir + 'brook.png');
imgBQueen.LoadFromFile(lDir + 'bqueen.png');
imgBKing.LoadFromFile(lDir + 'bking.png');}
end;
initialization
gTappyModules := TFPList.Create;
finalization
gTappyModules.Free;
end.

View File

@ -34,12 +34,12 @@
<PackageName Value="LCL"/>
</Item1>
</RequiredPackages>
<Units Count="3">
<Units Count="8">
<Unit0>
<Filename Value="tappytux.lpr"/>
<IsPartOfProject Value="True"/>
<UnitName Value="tappytux"/>
<UsageCount Value="26"/>
<UsageCount Value="27"/>
</Unit0>
<Unit1>
<Filename Value="gameconfigform.pas"/>
@ -47,13 +47,12 @@
<ComponentName Value="Form1"/>
<ResourceBaseClass Value="Form"/>
<UnitName Value="gameconfigform"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="0"/>
<WindowIndex Value="0"/>
<TopLine Value="44"/>
<CursorPos X="62" Y="64"/>
<FoldState Value=" T7EBM T8W211X"/>
<UsageCount Value="26"/>
<TopLine Value="1"/>
<CursorPos X="1" Y="1"/>
<FoldState Value=" T8W211?"/>
<UsageCount Value="27"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit1>
@ -65,133 +64,189 @@
<UnitName Value="gameplayform"/>
<EditorIndex Value="1"/>
<WindowIndex Value="0"/>
<TopLine Value="3"/>
<CursorPos X="26" Y="26"/>
<UsageCount Value="26"/>
<TopLine Value="1"/>
<CursorPos X="1" Y="19"/>
<UsageCount Value="27"/>
<Loaded Value="True"/>
<LoadedDesigner Value="True"/>
</Unit2>
<Unit3>
<Filename Value="tappyconfig.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="tappyconfig"/>
<EditorIndex Value="3"/>
<WindowIndex Value="0"/>
<TopLine Value="3"/>
<CursorPos X="1" Y="16"/>
<UsageCount Value="21"/>
<Loaded Value="True"/>
</Unit3>
<Unit4>
<Filename Value="tappydrawer.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="tappydrawer"/>
<IsVisibleTab Value="True"/>
<EditorIndex Value="4"/>
<WindowIndex Value="0"/>
<TopLine Value="272"/>
<CursorPos X="70" Y="291"/>
<UsageCount Value="21"/>
<Loaded Value="True"/>
</Unit4>
<Unit5>
<Filename Value="tappygamedata.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="tappygamedata"/>
<EditorIndex Value="2"/>
<WindowIndex Value="0"/>
<TopLine Value="14"/>
<CursorPos X="5" Y="21"/>
<UsageCount Value="21"/>
<Loaded Value="True"/>
</Unit5>
<Unit6>
<Filename Value="mod_tappywords.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="mod_tappywords"/>
<EditorIndex Value="5"/>
<WindowIndex Value="0"/>
<TopLine Value="1"/>
<CursorPos X="15" Y="9"/>
<UsageCount Value="21"/>
<Loaded Value="True"/>
</Unit6>
<Unit7>
<Filename Value="tappymodules.pas"/>
<IsPartOfProject Value="True"/>
<UnitName Value="tappymodules"/>
<EditorIndex Value="6"/>
<WindowIndex Value="0"/>
<TopLine Value="68"/>
<CursorPos X="47" Y="76"/>
<UsageCount Value="21"/>
<Loaded Value="True"/>
</Unit7>
</Units>
<JumpHistory Count="30" HistoryIndex="29">
<Position1>
<Filename Value="gameconfigform.pas"/>
<Caret Line="45" Column="36" TopLine="31"/>
<Caret Line="12" Column="40" TopLine="2"/>
</Position1>
<Position2>
<Filename Value="gameconfigform.pas"/>
<Caret Line="51" Column="55" TopLine="35"/>
<Caret Line="63" Column="62" TopLine="43"/>
</Position2>
<Position3>
<Filename Value="gameconfigform.pas"/>
<Caret Line="49" Column="56" TopLine="35"/>
<Caret Line="65" Column="62" TopLine="45"/>
</Position3>
<Position4>
<Filename Value="gameconfigform.pas"/>
<Caret Line="57" Column="1" TopLine="35"/>
<Caret Line="64" Column="62" TopLine="44"/>
</Position4>
<Position5>
<Filename Value="gameconfigform.pas"/>
<Caret Line="49" Column="56" TopLine="35"/>
<Filename Value="tappygamedata.pas"/>
<Caret Line="11" Column="1" TopLine="1"/>
</Position5>
<Position6>
<Filename Value="gameconfigform.pas"/>
<Caret Line="47" Column="19" TopLine="35"/>
<Filename Value="tappygamedata.pas"/>
<Caret Line="276" Column="1" TopLine="251"/>
</Position6>
<Position7>
<Filename Value="gameconfigform.pas"/>
<Caret Line="51" Column="55" TopLine="35"/>
<Filename Value="tappydrawer.pas"/>
<Caret Line="1" Column="1" TopLine="1"/>
</Position7>
<Position8>
<Filename Value="gameconfigform.pas"/>
<Caret Line="53" Column="55" TopLine="37"/>
<Filename Value="tappydrawer.pas"/>
<Caret Line="44" Column="7" TopLine="32"/>
</Position8>
<Position9>
<Filename Value="gameconfigform.pas"/>
<Caret Line="50" Column="59" TopLine="37"/>
<Filename Value="tappydrawer.pas"/>
<Caret Line="68" Column="5" TopLine="55"/>
</Position9>
<Position10>
<Filename Value="gameconfigform.pas"/>
<Caret Line="55" Column="1" TopLine="37"/>
<Filename Value="tappydrawer.pas"/>
<Caret Line="89" Column="5" TopLine="76"/>
</Position10>
<Position11>
<Filename Value="gameconfigform.pas"/>
<Caret Line="54" Column="92" TopLine="37"/>
<Filename Value="tappydrawer.pas"/>
<Caret Line="54" Column="15" TopLine="40"/>
</Position11>
<Position12>
<Filename Value="gameconfigform.pas"/>
<Caret Line="50" Column="59" TopLine="37"/>
<Filename Value="tappydrawer.pas"/>
<Caret Line="40" Column="15" TopLine="27"/>
</Position12>
<Position13>
<Filename Value="gameconfigform.pas"/>
<Caret Line="53" Column="21" TopLine="37"/>
<Filename Value="tappymodules.pas"/>
<Caret Line="15" Column="45" TopLine="1"/>
</Position13>
<Position14>
<Filename Value="gameconfigform.pas"/>
<Caret Line="50" Column="29" TopLine="37"/>
<Filename Value="tappyconfig.pas"/>
<Caret Line="8" Column="37" TopLine="1"/>
</Position14>
<Position15>
<Filename Value="gameconfigform.pas"/>
<Caret Line="56" Column="92" TopLine="37"/>
<Filename Value="tappydrawer.pas"/>
<Caret Line="33" Column="3" TopLine="27"/>
</Position15>
<Position16>
<Filename Value="gameconfigform.pas"/>
<Caret Line="50" Column="29" TopLine="37"/>
<Filename Value="tappymodules.pas"/>
<Caret Line="17" Column="11" TopLine="5"/>
</Position16>
<Position17>
<Filename Value="gameconfigform.pas"/>
<Caret Line="55" Column="55" TopLine="37"/>
<Filename Value="tappymodules.pas"/>
<Caret Line="18" Column="36" TopLine="14"/>
</Position17>
<Position18>
<Filename Value="gameconfigform.pas"/>
<Caret Line="50" Column="31" TopLine="37"/>
<Filename Value="tappymodules.pas"/>
<Caret Line="19" Column="34" TopLine="5"/>
</Position18>
<Position19>
<Filename Value="gameconfigform.pas"/>
<Caret Line="53" Column="33" TopLine="37"/>
<Filename Value="tappymodules.pas"/>
<Caret Line="20" Column="41" TopLine="6"/>
</Position19>
<Position20>
<Filename Value="gameconfigform.pas"/>
<Caret Line="55" Column="41" TopLine="37"/>
<Filename Value="tappydrawer.pas"/>
<Caret Line="165" Column="46" TopLine="152"/>
</Position20>
<Position21>
<Filename Value="gameconfigform.pas"/>
<Caret Line="56" Column="6" TopLine="38"/>
<Filename Value="tappymodules.pas"/>
<Caret Line="50" Column="33" TopLine="33"/>
</Position21>
<Position22>
<Filename Value="gameconfigform.pas"/>
<Caret Line="40" Column="41" TopLine="37"/>
<Filename Value="tappymodules.pas"/>
<Caret Line="8" Column="30" TopLine="1"/>
</Position22>
<Position23>
<Filename Value="gameconfigform.pas"/>
<Caret Line="23" Column="15" TopLine="1"/>
<Filename Value="tappymodules.pas"/>
<Caret Line="38" Column="50" TopLine="16"/>
</Position23>
<Position24>
<Filename Value="gameconfigform.pas"/>
<Caret Line="17" Column="19" TopLine="12"/>
<Filename Value="tappydrawer.pas"/>
<Caret Line="10" Column="43" TopLine="1"/>
</Position24>
<Position25>
<Filename Value="gameconfigform.pas"/>
<Caret Line="33" Column="24" TopLine="24"/>
<Filename Value="tappydrawer.pas"/>
<Caret Line="187" Column="5" TopLine="172"/>
</Position25>
<Position26>
<Filename Value="gameconfigform.pas"/>
<Caret Line="5" Column="32" TopLine="2"/>
<Filename Value="tappymodules.pas"/>
<Caret Line="17" Column="31" TopLine="1"/>
</Position26>
<Position27>
<Filename Value="gameconfigform.pas"/>
<Caret Line="12" Column="40" TopLine="2"/>
<Filename Value="tappymodules.pas"/>
<Caret Line="19" Column="35" TopLine="4"/>
</Position27>
<Position28>
<Filename Value="gameconfigform.pas"/>
<Caret Line="63" Column="62" TopLine="43"/>
<Filename Value="tappydrawer.pas"/>
<Caret Line="45" Column="1" TopLine="34"/>
</Position28>
<Position29>
<Filename Value="gameconfigform.pas"/>
<Caret Line="65" Column="62" TopLine="45"/>
<Filename Value="tappydrawer.pas"/>
<Caret Line="291" Column="1" TopLine="272"/>
</Position29>
<Position30>
<Filename Value="gameconfigform.pas"/>
<Caret Line="64" Column="62" TopLine="44"/>
<Filename Value="tappydrawer.pas"/>
<Caret Line="51" Column="57" TopLine="51"/>
</Position30>
</JumpHistory>
</ProjectOptions>

View File

@ -7,7 +7,8 @@ uses
cthreads,
{$ENDIF}{$ENDIF}
Interfaces, // this includes the LCL widgetset
Forms, gameconfigform, gameplayform
Forms, gameconfigform, gameplayform, tappyconfig, tappydrawer,
tappygamedata, mod_tappywords, tappymodules
{ you can add units after this };
{$R *.res}