Wieso ist der code so langsam?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

dark19

Gast

Betreff: Wieso ist der code so langsam?

BeitragMo, Aug 15, 2005 19:03
Antworten mit Zitat
WIeso ist der code so langsam? ich lasse doch nur ein bild drehen und copyren(Der code steht in keiner schleife)
Code: [AUSKLAPPEN]
Dim aste(361)

For winkel1=0 To 360
RotateImage(as,winkel1)
aste(winkel1)=CopyImage(as)

Cls
Text 20,300,"Spiel wird geladen"
Color 255,255,255
Rect 10,10,winkel1,50
If f<MilliSecs() Then
            f=MilliSecs()+1000
            fps=count
            count=0
         End If
      count=count+1
      Text 500,10,fps
Flip
Next

Blitz3D

BeitragMo, Aug 15, 2005 19:04
Antworten mit Zitat
Benutzer-Profile anzeigen
Rotateimage ist nun mal langsam, dagegen kann man nichts machen

Ist TFormFilter deaktiviert?

BlitzBasic: [AUSKLAPPEN]
TFormFilter 0


[edit]TFormFilter ist AntiAliasing
User posted image
Xware Entertainment und Forum
User posted image
 

dark19

Gast

BeitragMo, Aug 15, 2005 19:13
Antworten mit Zitat
ja aber ab winkel1=17 hört der auf zu arbeiten

Justus

BeitragMo, Aug 15, 2005 19:15
Antworten mit Zitat
Benutzer-Profile anzeigen
Der Code dafür steht hier zwar nicht, aber ich schätze mal du führst das in der Schleife aus und weil du immer wieder Bilder kopierst und drehst und bla müllst du den Speicher zu. RotateImage immer nur vorberechnen.
 

dark19

Gast

Betreff: Re: Wieso ist der code so langsam?

BeitragMo, Aug 15, 2005 19:17
Antworten mit Zitat
dark19 hat Folgendes geschrieben:
WIeso ist der code so langsam? ich lasse doch nur ein bild drehen und copyren(Der code steht in keiner schleife)
Code: [AUSKLAPPEN]
Dim aste(361)

For winkel1=0 To 360
RotateImage(as,winkel1)
aste(winkel1)=CopyImage(as)

Cls
Text 20,300,"Spiel wird geladen"
Color 255,255,255
Rect 10,10,winkel1,50
If f<MilliSecs() Then
            f=MilliSecs()+1000
            fps=count
            count=0
         End If
      count=count+1
      Text 500,10,fps
Flip
Next


Ne er steht nicht in einer Schleife und er hört auch ab winkel=17 auf zu arbeiten

Blitz3D

BeitragMo, Aug 15, 2005 19:19
Antworten mit Zitat
Benutzer-Profile anzeigen
For - Next ist auch eine Schleife Rolling Eyes

[edit]Wenn der gleiche Codeteil mehrmals ausgeführt, nennt man das eine Schleife
User posted image
Xware Entertainment und Forum
User posted image
 

dark19

Gast

BeitragMo, Aug 15, 2005 19:20
Antworten mit Zitat
ist aber auch nur zur vorberechnung Confused ich hatte das schon mal mit einem bild gemacht und es ging

Blitz3D

BeitragMo, Aug 15, 2005 19:22
Antworten mit Zitat
Benutzer-Profile anzeigen
dann hast du's sicher anders gemacht, der Compiler ändert nicht einfach so seine
Meinung und gibt Gas
User posted image
Xware Entertainment und Forum
User posted image

Justus

BeitragMo, Aug 15, 2005 19:37
Antworten mit Zitat
Benutzer-Profile anzeigen
Nun ja, das was er da stehen hat, kann ohne Graphics und so wohl kaum alles sein, was er hat.

Ich glaub er hat das ganze Stück in einer Repeat-Schleife drin.
 

Dreamora

BeitragMo, Aug 15, 2005 20:00
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

Dim aste(361)

For winkel1=0 To 360
RotateImage(as,winkel1)
aste(winkel1)=CopyImage(as)
next

Cls
Text 20,300,"Spiel wird geladen"
Color 255,255,255
Rect 10,10,winkel1,50
If f<MilliSecs() Then
            f=MilliSecs()+1000
            fps=count
            count=0
         End If
      count=count+1
      Text 500,10,fps
Flip



so sollte es gehen.
Ihr findet die aktuellen Projekte unter Gayasoft und könnt mich unter @gayasoft auf Twitter erreichen.

Alfadur

BeitragDi, Aug 16, 2005 1:10
Antworten mit Zitat
Benutzer-Profile anzeigen
gibt mehrere sachen die man noch anders machen könnte / sollte :
für 360grad reicht ein array von 0 bis 359, also dim 359, schleife also auch nur bis 359. dann erst kopieren und dann rotieren. dann huiuiui auf jedenfall text weglassen... das zerrt performance...
A Cray is the only computer that runs an endless loop in less than four hours.

Jan_

Ehemaliger Admin

BeitragDi, Aug 16, 2005 7:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Also, ich weiß nciht, was du hast,

P3, 600 MHZ
392 MB SDRAM
Matrox Graka,
Win 2000
Paar andere Prgramme noch offen,

Mit nem 32x32 Pixel Bild, 50-60 FPS
also, mehr geht nciht.

BlitzBasic: [AUSKLAPPEN]

Graphics 640,480
SetBuffer BackBuffer()
as=LoadImage(\"blub.bmp\")
Dim aste(359)

For winkel1=0 To 359
aste(winkel1)=CopyImage(as)
RotateImage(aste(winkel1),winkel1)

Cls
Text 20,300,\"Spiel wird geladen\"
Color 255,255,255
Rect 10,10,winkel1,50
If f<MilliSecs() Then
f=MilliSecs()+1000
fps=count
count=0
End If
count=count+1
Text 500,10,fps
Flip 0
Next
between angels and insects

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group