Rotateimage

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

MisterIKS

Betreff: Rotateimage

BeitragFr, Jan 25, 2008 7:52
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragFr, Jan 25, 2008 8:47
Antworten mit Zitat
Benutzer-Profile anzeigen
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

BeitragFr, Feb 15, 2008 18:07
Antworten mit Zitat
Benutzer-Profile anzeigen
...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

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group