procedure TForm1.Timer1Timer(Sender: TObject);
var
l,k,m,n,o,AL1,AL2,Zufall: Integer;
begin
//Spieler bewegegen
If Spielerbewegung=True
then
begin
If ((KeyPressed(VK_Up))
or (KeyPressed($57))
and (Spieler.Top >= Spielflaeche.Top))
Then Spieler.top := Spieler.top - Spieler.Speed;
If ((KeyPressed(VK_Down))
or (KeyPressed($53))
and (Spieler.Top <= Spielflaeche.height + Spielflaeche.top - Spieler.Height))
Then Spieler.top := Spieler.top + Spieler.Speed;
If ((KeyPressed(VK_Left))
or (KeyPressed($41))
and (Spieler.Left >= Spielflaeche.left))
Then Spieler.Left := Spieler.Left - Spieler.Speed;
If ((KeyPressed(VK_Right))
or (KeyPressed($44))
and (Spieler.Left <= Spielflaeche.width + Spielflaeche.left - Spieler.width))
Then Spieler.Left := Spieler.Left + Spieler.Speed;
end;
//Kollision Spieler und Ziel
if IsCollision(Spieler.BoundsRect, Ziel.BoundsRect)
then
begin
Punktzahl:=Punktzahl+1;
PunkteAnzeige.caption:='
Punkte: '+IntToStr(Punktzahl);
If Sounds='
Enabled'
Then
begin
SoundPlayer.FileName:=Pfad+'
\Datein\Ziel.wav';
SoundPlayer.Open;
SoundPlayer.play;
end;
ItemCount:=ItemCount+1;
Ziel.Top:=random(Spielflaeche.Height - Ziel.Height) + Spielflaeche.top;
Ziel.Left:=random(Spielflaeche.Width - Ziel.width) + Spielflaeche.left;
// Gegner hinzufügen
begin
setLength(gegner,length(Gegner)+1);
AL1 := length(Gegner)-1;
Gegner[AL1]:= TGegner.Create(Self);
With Gegner[AL1]
do
begin
speed:=3;
Parent := self;
Cooldown := 1000;
BringToFront;
If RandomAusgabe(1)=1
Then
begin
Width:=5;
Height:=30;
top:= random( Spielflaeche.Height - height ) + Spielflaeche.top;
Left := random( Spielflaeche.Width - Width ) + Spielflaeche.left;
end;
If RandomAusgabe(1)=0
Then
begin
Width:=30;
Height:=5;
top:= random( Spielflaeche.Height - height ) + Spielflaeche.top;
Left := random( Spielflaeche.Width - Width ) + Spielflaeche.left;
end;
end;
end;
//Item hinzufügen
begin
If ItemCount=5
Then
begin
ItemCount:=0;
Zufall:=RandomAusgabe(3);
setLength(Item,length(Item)+1);
AL2 := length(Item)-1;
Item[AL2]:= TItem.Create(Self);
With Item[AL2]
do
begin
Picture.LoadFromFile(Pfad+'
\Datein\Item.jpg');
Parent:=Self;
Height:=16;
Width:=16;
Stretch:=True;
Top:=random(Spielflaeche.Height - Ziel.Height) + Spielflaeche.top;
Left:=random(Spielflaeche.Width - Ziel.width) + Spielflaeche.left;
Brush.Color:=clblack;
BringToFront;
Enabled:=True;
If ((Zufall=1)
or (Zufall=2))
then
begin
Typ:=True;
end;
If Zufall=3
then
begin
Typ:=False;
end;
end;
end;
end;
end;
//Gegner bewegen
If length(gegner)>=1
then
begin
For m:= 0
to high(gegner)
do
begin
If Gegner[m].width > Gegner[m].Height
Then
begin
//Waagrecht
Gegner[m].left:=Gegner[m].left + Gegner[m].Speed;
end;
If Gegner[m].width < Gegner[m].Height
Then
begin
//Senkrecht
Gegner[m].Top:=Gegner[m].top + Gegner[m].Speed;
end;
end;
end;
//Gegner Cooldown
For o:= low(Gegner)
to high(Gegner)
do
begin
If Gegner[o].cooldown>=1
Then Gegner[o].cooldown:=Gegner[o].cooldown-50;
end;
//Kollision Gegner und Wand
For l:= low(gegner)
to high(gegner)
do
begin
if Gegner[l].Left <= Spielflaeche.Left
then Gegner[l].speed:=Gegner[l].speed*-1;
if Gegner[l].Left >= Spielflaeche.Width + Spielflaeche.Left - Gegner[l].Width
then Gegner[l].speed:=Gegner[l].speed*-1;
if Gegner[l].top <= Spielflaeche.Top - Gegner[l].Width
then Gegner[l].speed:=Gegner[l].speed*-1;
if Gegner[l].top >= Spielflaeche.height + Spielflaeche.top - Gegner[l].height
then Gegner[l].speed:=Gegner[l].speed*-1;
end;
//Kollision Spieler und Gegner
For k:= low(gegner)
to high(gegner)
do
begin
if ((IsCollision(Gegner[k].BoundsRect, Spieler.BoundsRect))
and (Gegner[k].Cooldown<=0))
Then
begin
If Spieler.Verletzbar
Then Dec(Herzen);
If ((Herzen=4)
and (Spieler.Verletzbar))
Then
begin
Spieler.Verletzbar:=False;
Abwarten2.Enabled:=True;
Herz5.picture.loadfromfile(Pfad+'
\Datein\Herz_Leer.jpg');
end
Else If ((Herzen=3)
and (Spieler.Verletzbar))
Then
begin
Spieler.Verletzbar:=False;
Abwarten2.Enabled:=True;
Herz4.picture.loadfromfile(Pfad+'
\Datein\Herz_Leer.jpg');
end
Else If ((Herzen=2)
and (Spieler.Verletzbar))
Then
begin
Spieler.Verletzbar:=False;
Abwarten2.Enabled:=True;
Herz3.picture.loadfromfile(Pfad+'
\Datein\Herz_Leer.jpg');
end
Else If ((Herzen=1)
and (Spieler.verletzbar))
Then
begin
Spieler.Verletzbar:=False;
Abwarten2.Enabled:=True;
Herz2.picture.loadfromfile(Pfad+'
\Datein\Herz_Leer.jpg');
end;
end
Else If Herzen<=0
then
begin
Verloren;
Herz1.Picture.LoadFromFile(Pfad+'
\Datein\Herz_leer.jpg');
end;
end;
//Kollision Spieler und Item
For n := low(item)
to high(item)
do
begin
If ((IsCollision(Spieler.BoundsRect,Item[n].BoundsRect))
and (Item[n].Enabled=True))
Then
begin
Spieler.Upgrade(n,Item[n].Typ);
Item[n].Enabled:=False;
end;
end;
end;