this is no good code, its my first game ever, so be nice

:

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, jpeg;

const
SpriteWidth : Integer = 28;
Screenwidth : Integer = 640;
StartWidth : Integer = 55;
WorldHeight : Integer = 680;
WorldWidth : Integer = 680;

type
TForm1 = class(TForm)
seebox: TPaintBox;
trollkarltimer: TTimer;
trollkarl: TImage;
trollkarlmask: TImage;
trollkarlh: TImage;
trollkarlhmask: TImage;
trollkarlv: TImage;
trollkarlvmask: TImage;
bufferbox: TImage;
trollkarlupp: TImage;
trollkarluppmask: TImage;
trollkarlner: TImage;
trollkarlnermask: TImage;
movetimer: TTimer;
tree: TImage;
bush: TImage;
grass: TImage;
mapbox: TPaintBox;
Background: TImage;
Timer1: TTimer;
Worldbox: TPaintBox;
SeeWorldBox: TPaintBox;
procedure FormCreate(Sender: TObject);
procedure trollkarltimerTimer(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure movetimerTimer(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure mapboxPaint(Sender: TObject);
private
{ Private declarations }

AreaRect : TRect;

MapRect : TRect;

PlayerRect: TRect;
PlayerMaskRect: TRect;

StartX : Integer;
StartY : Integer;

PlayerStartPosX : Integer;
PlayerStartPosY : Integer;

// spelare 1
function BlueRect( X, Y: Integer ): TRect;

public
{ Public declarations }
end;

var
Form1: TForm1;
Xaxis,Yaxis : integer;
Playermove : Integer;
oldwidth, oldheight : integer;
vis : boolean;

arr: array[0..16, 0..16] of integer =
((1, 2, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1),
(1, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1),
(1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1),
(1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0),
(0, 2, 1, 0, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2),
(0, 0, 1, 0, 1, 1, 1, 1, 2, 0, 0, 0, 0, 0, 1, 0, 0),
(0, 2, 1, 0, 0, 0, 0, 1, 0, 0, 2, 0, 0, 0, 1, 0, 0),
(0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0),
(0, 2, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0),
(0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0),
(0, 2, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0),
(0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0),
(0, 2, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0),
(0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0),
(0, 2, 0, 1, 2, 0, 2, 0, 0, 1, 2, 0, 1, 0, 0, 0, 0),
(2, 2, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 1, 0, 0, 0, 0),
(2, 2, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0));


implementation

{$R *.DFM}

function SetScreenResolution(Width, Height: integer): Longint;
var
DeviceMode: TDeviceMode;
begin
with DeviceMode do begin
dmSize := SizeOf(TDeviceMode);
dmPelsWidth := Width;
dmPelsHeight := Height;
dmFields := DM_PELSWIDTH or DM_PELSHEIGHT;
end;
Result := ChangeDisplaySettings(DeviceMode, CDS_UPDATEREGISTRY);
end;


procedure TForm1.FormCreate(Sender: TObject);
begin
vis := true;
// Fixa Fullscreen
OldWidth := GetSystemMetrics(SM_CXSCREEN);
OldHeight := GetSystemMetrics(SM_CYSCREEN);
SetScreenResolution(640, 480);
form1.Formstyle:=FSStayOnTop;
form1.borderstyle:=bsNone;
form1.left := 0;
form1.top := 0;
form1.width := screen.width;
form1.height := screen.height;
// Slut

// StartvA¤rden pA¥ variabler
Randomize;
PlayerStartPosX := 0;
PlayerStartPosY := 318;
StartX := 5;
StartY := 334;
Playermove := 3;
Xaxis := 0;
Yaxis := 0;
// Slut

// StA¤lla in storleken pA¥ Buffer- och Seebox
Bufferbox.Width := WorldWidth;
Bufferbox.Height := WorldHeight;
Seebox.Width := WorldWidth;
Seebox.Height := WorldHeight;


// Background
AreaRect := Rect(0,0,Screen.Width, Screen.Height);

//The Map
MapRect := Rect(0,0,Screen.Width,Screen.Height);
// The player
PlayerRect := Rect(0,0,SpriteWidth,trollkarl.Height);
PlayerMaskRect := Rect(0,0,SpriteWidth,trollkarl.Height);
end;

// The player
function TForm1.blueRect(X, Y: Integer):TRect;
begin
Result := Rect(X,Y,X+SpriteWidth,Y+trollkarl.Height);
end;

procedure TForm1.trollkarltimerTimer(Sender: TObject);
begin
// Backgrundens Buffer
BufferBox.Canvas.CopyMode := cmSrcCopy;
BufferBox.Canvas.CopyRect(AreaRect, background.Canvas, AreaRect );

// spelarens buffer
BufferBox.Canvas.CopyMode := cmSrcAnd;
BufferBox.Canvas.CopyRect(BlueRect(StartX,StartY),
trollkarlmask.Canvas, PlayerMaskRect );

BufferBox.Canvas.CopyMode := cmSrcPaint;
BufferBox.Canvas.CopyRect(BlueRect(StartX,StartY),
trollkarl.Canvas, PlayerRect );

SeeBox.Canvas.CopyMode := cmSrcCopy;
SeeBox.Canvas.CopyRect(AreaRect,
BufferBox.Canvas, AreaRect );

// World buffer
WorldBox.Canvas.CopyMode := cmSrcCopy;
WorldBox.Canvas.CopyRect(MapRect, Mapbox.Canvas, MapRect );


SeeWorldBox.Canvas.CopyMode := cmSrcCopy;
SeeWorldBox.Canvas.CopyRect(MapRect,
WorldBox.Canvas, MapRect );