rendered paste bodyunit mazewalk_imageclasses;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs,
ExtCtrls, LCLType, Math, mazewalk_collisionobjectclass;
type
TPickup = class(TCollisionObject);
TPickupPointEvent = procedure (sPickup: TPickup; sPoints: const;) of object;
{ TPickup }
TPickup = class(TCollisionObject)
private
fActive: boolean;
{ private declarations }
protected
{ protected declarations }
procedure DoOnCollision(Sender: TCollisionObject);
public
{ public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property Active : boolean read fActive write fActive;
end;
{ TWall }
TWall = class(TCollisionObject)
private
fSolid: boolean;
{ private declarations }
protected
{ protected declarations }
procedure DoOnCollision(Sender: TCollisionObject);
public
{ public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property Solid : boolean read fSolid write fSolid;
end;
{ TEnemy }
TEnemy = class(TCollisionObject)
private
fLethal: boolean;
{ private declarations }
protected
{ protected declarations }
procedure DoOnCollision(Sender: TCollisionObject);
public
{ public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property Lethal : boolean read fLethal write fLethal;
end;
{ TProjectile }
TProjectile = class(TCollisionObject)
private
fLethal: boolean;
{ private declarations }
protected
{ protected declarations }
procedure DoOnCollision(Sender: TCollisionObject);
public
{ public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property Lethal : boolean read fLethal write fLethal;
end;
{ TPlayer }
TPlayer = class(TCollisionObject)
private
{ private declarations }
protected
{ protected declarations }
procedure DoOnCollision(Sender: TCollisionObject);
public
{ public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
{ TPortal }
TPortal = class(TCollisionObject)
private
{ private declarations }
protected
{ protected declarations }
procedure DoOnCollision(Sender: TCollisionObject);
public
{ public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
{ TGoal }
TGoal = class(TCollisionObject)
private
fActive: boolean;
{ private declarations }
protected
{ protected declarations }
procedure DoOnCollision(Sender: TCollisionObject);
public
{ public declarations }
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property Active : boolean read fActive write fActive;
end;
implementation
// ***********************************************************************************************************
// ***********************************************************************************************************
// ***********************************************************************************************************
{ TWall }
procedure TWall.DoOnCollision(Sender: TCollisionObject);
begin
//
end;
constructor TWall.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
OnCollision := @DoOnCollision;
end;
destructor TWall.Destroy;
begin
inherited Destroy;
end;
{ TGoal }
procedure TGoal.DoOnCollision(Sender: TCollisionObject);
begin
//
end;
constructor TGoal.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
OnCollision := @DoOnCollision;
end;
destructor TGoal.Destroy;
begin
inherited Destroy;
end;
{ TPortal }
procedure TPortal.DoOnCollision(Sender: TCollisionObject);
begin
//
end;
constructor TPortal.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
OnCollision := @DoOnCollision;
end;
destructor TPortal.Destroy;
begin
inherited Destroy;
end;
{ TPlayer }
procedure TPlayer.DoOnCollision(Sender: TCollisionObject);
begin
//
end;
constructor TPlayer.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
OnCollision := @DoOnCollision;
end;
destructor TPlayer.Destroy;
begin
inherited Destroy;
end;
{ TProjectile }
procedure TProjectile.DoOnCollision(Sender: TCollisionObject);
begin
//
end;
constructor TProjectile.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
OnCollision := @DoOnCollision;
end;
destructor TProjectile.Destroy;
begin
inherited Destroy;
end;
{ TEnemy }
procedure TEnemy.DoOnCollision(Sender: TCollisionObject);
begin
// if (Sender = Player) then Restart;
end;
constructor TEnemy.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
OnCollision := @DoOnCollision;
end;
destructor TEnemy.Destroy;
begin
inherited Destroy;
end;
{ TPickup }
procedure TPickup.DoOnCollision(Sender: TCollisionObject);
begin
if Assigned(fOnPointChange) then fOnPointChange(fPoints, Sender, 10);
ObjectList.Delete(ObjectList.IndexOf(Sender));
(Sender as TPickup).Free;
end;
constructor TPickup.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
OnCollision := @DoOnCollision;
end;
destructor TPickup.Destroy;
begin
inherited Destroy;
end;
end.