nur kommen da arge Probleme mit Wechsel der Buffer während des Lesens
und Zeichens auf dem Bildschirm und einer Sprite auf. Beispiel:
Code: Alles auswählen
Procedure DrawRotatedSprite(sprite.l, x.w,y.w, rot.w)
If IsSprite(sprite) <> 0
w.w = SpriteWidth(sprite)
h.w = SpriteHeight(sprite)
;...
For zy.w = 0 To h-1
ry = y + Cos(rot) * zy
For zx.w = 0 To w-1
rx = x + Sin(rot) * zx
If rx <= #TMP_Screen_Width And rx >= 0
If ry <= #TMP_Screen_Height And ry >= 0
;...
c.l = Point(zx,zy)
;...
Plot(rx,ry,c)
;...
EndIf
EndIf
Next
Next
;...
EndIf
EndProceduredargestellt werden. Ich gehe Punkt für Punkt durch und drehe den nächsten
Punkt entsprechend zum Winkel in den Parametern. Theoretisch müsste
ja auch prima funktionieren, nur bin ich mit der Geschwindigkeit des Ganzen
nicht zufrieden, und damit meine ich den Wechseln von den verschiedenen
Ausgabeflächen, sprich Sprite und Screen. Ich hatte zuerst versucht, bei
Point und Plot jedesmal Startdrawing anders einzusetzen (die Ausgabefläche
zu ändern), was aber wegen der kleinen Verzögerung arg in die Hose ging.
Desweiteren grübelte ich über ein Möglichkeit irgendwie alles per Sprites
zu lösen, auch nen Fehlschlag. Dann die bescheuerteste, aber doch effektivste
und schnellste Möglichkeit: Vorberechnen. Aber das will ich nicht, kostet
Zeit und verstopft Speicher. Ist zudem für so ein Minispiel zu aufwendig.
Gibt es eine Möglichkeit, in irgendeiner Weise einen schnellen und
unkomplizierten Wechseln zwischen den Ausgabeflächen zu produzieren?
Die ;... - Punkte sind Stellen, an denen ich mir gedacht habe, dass gezielt
plazierte Bufferwechselbefehle hilfreich wären, aber helfen tuhen sie mir
jetzt auch nicht wirklich...
Btw: Irgendwie will der Code auch so nicht funktionieren. Ist die Überlegung
denn komplett falsch?