All pastes #2087063 Raw Edit

Unnamed

public text v1 · immutable
#2087063 ·published 2011-10-05 07:08 UTC
rendered paste body
unit 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.