Bild DREHEN

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Tom

Betreff: Bild DREHEN

BeitragDi, Jun 22, 2004 16:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe eine Frage:
Ich möchte ein Bild drehen, aber wenn ich rotateimage benutze, dann dreht sich das Bild... aber es dreht sich immer langsamer!
Hier mein Code:

Code: [AUSKLAPPEN]
Graphics 800,600,16,1
pic=loadimage ("Bild.bmp")

.start
cls
if keydown(1)=1 then end
drawimage pic,300,300
rotateimage pic,1
flip
goto start


Danke im voraus für Hilfe!
AthlonXP 2800+ ~ 2.0Ghz ; Radeon9800pro ATLANTIS (Sapphire) ; 512mb DDR RAM (333mhz) ; Creative Soundblaster Audigy2 ZS ;
BlitzPlus (B+)

Mein Allgemein-FORUM : http://www.tom-forum.de.tc

Meine Mini-Page : www.tom.kohop.de

rambo256

BeitragDi, Jun 22, 2004 16:25
Antworten mit Zitat
Benutzer-Profile anzeigen
Speichere die Bilder alle vorher ab.
Du drehst das Bild um ein grad (oder mehrere) weiter und speicherst es dann wieder in einem array ab.Das wird in meinem Codebeispiel gezeigt
Code-beispiel:
Code: [AUSKLAPPEN]
Function Autosdrehen(car_1,col_1)
TFormFilter 0
   For i = 0 To 359
      Cars_gfx(i,0) = CopyImage(car_1)
      RotateImage Cars_gfx(i,0),i
      Kollisionsbilder(i,0)= CopyImage(col_1)
      RotateImage Kollisionsbilder(i,0),i
      Flip
      Cls
   Next
End Function
Asus F53z

Das Leben ist eine reine Konkatenation...

MVB

BeitragDi, Jun 22, 2004 16:26
Antworten mit Zitat
Benutzer-Profile anzeigen
Schalt mal den TFormfilter aus, dann müsste es schneller gehen. Im allgemeinem solltest das aber lieber vorberechnen.
Ganz davon abgesehen solltest du Schleifen lieber mit Repeat/Until oder While/Wend machen.

Code: [AUSKLAPPEN]

Graphics 800,600,16,1
pic=loadimage ("Bild.bmp")
TFormFilter 0

setbuffer Backbuffer()
Repeat 
cls
drawimage pic,300,300
rotateimage pic,1
flip
until keyhit(1)
aquamonit.de|BlitzMax|MaxGUI

Hubsi

BeitragDi, Jun 22, 2004 22:41
Antworten mit Zitat
Benutzer-Profile anzeigen
[code]Dim bild(359)
TFormFilter False
MidHandle originalbild
AutoMidHandle True
For i=0 To 359
bild(i)=CopyImage(originalbild)
RotateImage bild(i),i
Next

Repeat ; Hauptschleife
Cls
DrawImage bild(winkel),x,y

If KeyDown(drehen_rechts)
winkel=winkel+1
If winkel>359 Then winkel=0
EndIf

If KeyDown(drehen_links)
winkel=winkel-1
If winkel<0 Then winkel=359
EndIf

Until KeyHit(1)
End[code]Mein Senf dazu. Zur Laufzeit drehen ist Mist Wink [/code]
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn...

Bms

BeitragDo, Aug 12, 2004 14:28
Antworten mit Zitat
Benutzer-Profile anzeigen
vorberechnen ist gut. Very Happy
mal doch mal alle frames auf den bildschirm und mach nen scrinshot.
dann den screenshot mit loadanimimage() laden. das ist wahrscheinlich schneller, allerdings braucht das Bild miit den versch. Drehungen einige Kb´s. Sad

TheShadow

Moderator

BeitragDo, Aug 12, 2004 15:03
Antworten mit Zitat
Benutzer-Profile anzeigen
es wird langsamer, weil das bild immer größer wird!
Darum immer 1 originalbild nehmen und kopieren und drehen
AMD64 3500+ | GeForce6600GT 128MB | 1GB DDR | WinXPsp2
 

BlitzBoris

BeitragSa, Aug 14, 2004 14:59
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn meine Figur in 8 Richtungen gehen kann, ist es also sinnvoller nur ein Bild der Figur zu machen und den Rest einfach berechnen zu lassen?

Würde zumindest die .exe wesentlich verkleinern.
Meine Freundin hat mich wegen BlitzBasic verlassen. Und das ist gut so.

rambo256

BeitragSa, Aug 14, 2004 19:27
Antworten mit Zitat
Benutzer-Profile anzeigen
Nein,ich würde es nicht machen.Bei 8 Richtungen lohnt es sich nicht!
Würde ich jetzt sagen Rolling Eyes
Da kann man einfach die Bilder mit Paint spiegeln bzw. drehen und dann nochmal abspeichern.
Asus F53z

Das Leben ist eine reine Konkatenation...
 

BlitzBoris

BeitragSa, Aug 14, 2004 19:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Es wäre dann ja lediglich das zu ladende Bild kleiner, im Speicher wären dann ja trotzdem wieder 8 Bilder.
Meine Freundin hat mich wegen BlitzBasic verlassen. Und das ist gut so.

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group