- function TGLImageEngine.IsCollision(Sprite : TObject;Key: Word; Speed: integer;var CollisionsObjekt : TObject): Boolean;
- var
- SpriteRec : TRect; //Bewegungs Rec
- CollRec : TRect; //Kollisions Rec
- GoSprite : TGLImageSprite; //Sprite die sich bewegt
- ImageObject : TGLImageSprite;//Sprite die getestet wird
- r : TRect;
- begin
- //Kollisions mit Objekt 1
- result := False;
- GoSprite := TGLImageSprite(Sprite);
- with GoSprite do begin
- SpriteRec.Left := Image.x+Image.CollLeft;
- SpriteRec.Top := Image.y-25+Image.CollTop;
- SpriteRec.Right := Image.x+Image.CollWidth;
- SpriteRec.Bottom := Image.y+Image.collHeight-22;
- end;
- ImageObject := TGLImageSprite(FImageSpriteList.Objects[1]);
- with ImageObject do begin
- CollRec.Left := Image.X+Image.CollLeft;
- CollRec.Top := Image.Y -25+Image.CollTop;
- CollRec.Right := Image.X+Image.CollWidth+3;
- CollRec.Bottom :=Image.Y+Image.CollHeight-22;
- end;
- speed:=speed*2;
- case Key of
- VK_Up : SpriteRec.Top := SpriteRec.Top - Speed;
- VK_Down : SpriteRec.Bottom:=SpriteRec.Bottom + Speed;
- VK_RIGHT: SpriteRec.Right := SpriteRec.Right + Speed;
- VK_LEFT : SpriteRec.Left := SpriteRec.Left - speed;
- end;
- CollisionsObjekt :=FImageSpriteList.Objects[1];
-
- FIsCollision := IntersectRect(FTempRect,SpriteRec, CollRec);
- result :=FIsCollision;
- end;