AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi sprite in delphix drehen
Thema durchsuchen
Ansicht
Themen-Optionen

sprite in delphix drehen

Ein Thema von Spurius · begonnen am 2. Dez 2003 · letzter Beitrag vom 2. Dez 2003
Antwort Antwort
Spurius

Registriert seit: 19. Aug 2003
294 Beiträge
 
Delphi 7 Professional
 
#1

sprite in delphix drehen

  Alt 2. Dez 2003, 14:47
Hallo,
ich bewege ein sprite in delphiX indem ich x + y verändere. wie kann ich das sprite drehen?
es gibt eine function drawrotate
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
  Mit Zitat antworten Zitat
Benutzerbild von Seniman
Seniman

Registriert seit: 15. Sep 2003
Ort: Münster
98 Beiträge
 
#2

Re: sprite in delphix drehen

  Alt 2. Dez 2003, 20:15
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
  Mit Zitat antworten Zitat
Maximus

Registriert seit: 26. Okt 2003
169 Beiträge
 
#3

Re: sprite in delphix drehen

  Alt 2. Dez 2003, 20:30
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!)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:06 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