Rotateimage
Übersicht

![]() |
MisterIKSBetreff: Rotateimage |
![]() Antworten mit Zitat ![]() |
---|---|---|
Hallo
Ich versuche krampfhaft ein Bild zu drehen, ich will sowas programmieren wie bei Linux immer frozen bubbles dabei is. Aber mit Rotateimage verschwimmt das übelst und es fängt an zu ruckelt. Gibt es da andere Möglichkeiten? |
||
![]() |
Abrexxes |
![]() Antworten mit Zitat ![]() |
---|---|---|
Vor berechnen, leider ist DirektDraw (also der 2D Modus) viel zu langsam dafür. Also entweder das ganze als BilderStrip laden (mehrere bilder), oder im Createimage bevor das Level losgeht die Bilder erzeugen (auch nicht optimal da langsam)
Alternativ (Wenn du B3D hast) kannst du ja Draw3D versuchen, das benutzt die Grafikhardware für sowas. Siehe hier : https://www.blitzforum.de/foru...hp?t=21659 cu |
||
timmeTheOnly |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
...oder mit Kopien arbeiten.
Code: [AUSKLAPPEN] Graphics 640,480,32,2 Const geschwindigkeit# = 5 Global img = CreateImage(64,64) ; Das Bild MidHandle(img) ; Bild in der Mitte fassen Global img_tmp ; Die Kopie des Bildes Global winkel# ; Die Rotation Global x,y ; Position x = GraphicsWidth() / 2 y = GraphicsHeight() / 2 ; Bild zeichen | Start SetBuffer ImageBuffer(img) Color 255,0,0 Oval 0,0,64,64,0 Line 32,0,32,64 Line 0,32,64,32 Color 0,255,0 Line 0,32,32,0 Line 32,0,64,32 ; Bild zeichnen | Ende SetBuffer BackBuffer() While Not KeyHit(1) Cls winkel# = winkel# + (KeyDown(205)-KeyDown(203)) * geschwindigkeit ; Winkel mit Pfeiltasten verändern (Kurzform) If (KeyDown(208)-KeyDown(200)) <> 0 x = x + Sin(winkel#)*geschwindigkeit ; Position x y = y - Cos(winkel#)*geschwindigkeit ; Position y EndIf img_tmp = CopyImage(img) ; !!!Bild kopieren!!! RotateImage(img_tmp,winkel#) ; Bild rotieren/skalieren/wayne DrawImage img_tmp, x, y ; !!!img_tmp zeichnen!!! FreeImage(img_tmp) ; !!!Bild aus Speicher löschen!!! Flip Wend End |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group