Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi sprite in delphix drehen (https://www.delphipraxis.net/12685-sprite-delphix-drehen.html)

Spurius 2. Dez 2003 13:47


sprite in delphix drehen
 
Hallo,
ich bewege ein sprite in delphiX indem ich x + y verändere. wie kann ich das sprite drehen?
es gibt eine function drawrotate
Delphi-Quellcode:
dximagelist1.Items[0].DrawRotate();
aber ich weiss nicht mit was ich die parameter füllen soll.
das ganze sol in einem spiel verwendet werden. den hintergrund wollte ich mit kleinen images füllen,
so dass ich hindernisse etc. einbauen kann. aber wenn ich dann das sprite z.B. mit
sprite.x := sprite.x + 1; bewege, flackert das ganze! weiss da jemand abhilfe?
und natürlich wie ich drehe.
Gruß
Spurius

Seniman 2. Dez 2003 19:15

Re: sprite in delphix drehen
 
Hallo Spurius,

um ein drehbares Sprite zu bekommen brauchst du statt des Typ TImageSprite den Typ TImageSpriteEx. Ein solches Sprite hat die Eigenschaft "Angle", mit der du den Drehwinkel ändern kannst. Hierbei solltest du beachten, dass die Winkel nicht in Grad gemessen werden, sondern anders. Ein Winkel von 360° entspricht bei der Drehung von einem solchen Sprite (glaub ich) 256. Probier es einfach mal aus.
Der Nachteil der TImageSpriteEx ist, dass du dann keine Pixelgenaue Kollisionsabfrage mehr machen kannst.
Du brauchst die DrawRotate Prozedur dafür nicht.

Grüße
Seniman

Maximus 2. Dez 2003 19:30

Re: sprite in delphix drehen
 
Drehe:

Delphi-Quellcode:
// ...
TBall = class(TImageSprite)
 public
 Winkel, Bogen, Speed: Extended;
 procedure drehen;
end;

//...

procedure Ball.drehen;
begin
 Ball.Winkel := 1;
 Ball.Speed := 2;
 //Bogenmaß ausrechnen
 Ball.Bogen := (Ball.Winkel * Pi) / 180;
 //neue Koordinaten setzten
 Ball.X := Ball.X + cos(Ball.Bogen)*Speed;
 Ball.Y := Ball.Y + sin(Ball.Bogen)*Speed;
end;
So müsste es gehen! (das Ball hab ich jetzt halt einfach mal so gewählt!)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:19 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz