unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DXClass, DXSprite, DXInput, DXDraws, StdCtrls;

type
  TForm1 = class(TDXForm)
    DXDraw1: TDXDraw;
    DXImageList1: TDXImageList;
    DXInput1: TDXInput;
    DXSpriteEngine1: TDXSpriteEngine;
    DXTimer1: TDXTimer;
    procedure DXTimer1Timer(Sender: TObject; LagCount: Integer);
    procedure FormCreate(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;
  speed: integer;
implementation

{$R *.dfm}
  type
  TPlayerone = class(TImageSprite)
  protected
    procedure DoMove(MoveCount: Integer); override;
  end;


   Procedure TPlayerone.DoMove(MoveCount: Integer);
  begin
     inherited DoMove(MoveCount);
  x:=x+cos256(Angle)*speed;
  y:=y+sin256(Angle)*speed;
  if  y >= form1.DXDraw1.SurfaceHeight-image.Height then
  y := form1.DXDraw1.SurfaceHeight-image.Height;
  if  x >= form1.DXDraw1.SurfaceWidth -image.Width  then
  x := form1.DXDraw1.SurfaceWidth -image.Width;
  if  y <= 0 then
  y := 1;
  if  x <= 0 then
  x:=1;
    begin
     speed:=0;
      if isLeft in Form1.DXInput1.States then angle:=angle-5;
      if isRight in Form1.DXInput1.States then angle:=angle+5;;
      if isup in Form1.DXInput1.States then speed:=4 ;
      if isDown in Form1.DXInput1.States then speed:=-4;
    end;
end;

procedure TForm1.DXTimer1Timer(Sender: TObject; LagCount: Integer);
begin
if not DXDraw1.CanDraw then exit;
  DXInput1.Update;
  DXSpriteEngine1.Move(LagCount);
  DXSpriteEngine1.Dead;
  DXDraw1.Surface.Fill(0);
  DXSpriteEngine1.Draw;
  DXDraw1.Flip;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
with TPlayerone.Create(Dxspriteengine1.Engine) do
begin
 PixelCheck := True;
  Image := form1.dxImageList1.Items.Find('krut');
  x:=350;
  y:=250;
  Width := Image.Width;
  Height := Image.Height;
end;
end;

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if Key=VK_ESCAPE then application.Terminate
end;
end.
