![]() |
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:
aber ich weiss nicht mit was ich die parameter füllen soll.
dximagelist1.Items[0].DrawRotate();
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 |
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 |
Re: sprite in delphix drehen
Drehe:
Delphi-Quellcode:
So müsste es gehen! (das Ball hab ich jetzt halt einfach mal so gewählt!)
// ...
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; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz