Ladebalken will net :(

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Lord_Vader

Betreff: Ladebalken will net :(

BeitragDi, Sep 28, 2004 20:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi also will nen ladebalken machen. Hier ist maxcount das was insgesamt geladen wird und current halt da wo man is, zB beim 7ten von 100!
Ich seh den als erstes gemalten RECT nicht!

Woran liegt daS??

Code: [AUSKLAPPEN]

howfar=Int((current/maxcount)*100)

startx=GraphicsWidth()/4
endx=GraphicsWidth()-startx

starty=GraphicsHeight()/2

Color 0,128,256
Rect startx,starty,howfar,64,1

Color 0,64,256   
Rect startx,starty,endx,64,0


MfG Lord_Vader
 

Apocalyptic

BeitragDi, Sep 28, 2004 20:55
Antworten mit Zitat
Benutzer-Profile anzeigen
So wie ich das sehe (beim Überfliegen), musst du entweder current als Float deklarieren, oder du schreibst das hier:Code: [AUSKLAPPEN]
howfar=Int((float(current)/maxcount)*100)


Achso, der Rahmen dürfte so nicht stimmen, oder? Setz endx auf die feste Größe, die du oben verwendest (also 100).
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]

D2006

Administrator

BeitragDi, Sep 28, 2004 21:04
Antworten mit Zitat
Benutzer-Profile anzeigen
genau das wars glaub ich auch. Da Lord_Vader nicht wusste warum, gebe ich mal ne kurze Erklärung für alle.

Integer - Division:

Werden bei einer Division nur Ganzzahlen angegeben, wird kommt es zu Integer-Division. Das bedeutet, das eine ganze Zahl als Ergebnis geliefert wird.

Beispiel:
Code: [AUSKLAPPEN]

Global a%=5, b%=2, ergeb#=0

ergeb# = a / b


In diesem Fall ist ergeb# = 2.0.

Was kann man dagegen machen?

Einfach entweder a oder b also Float deklarieren (#) oder folgenden Trick:
Code: [AUSKLAPPEN]

Globl a%=5, b%=2, ergeb#=0

ergeb# = Float(a) / b

ergeb# hat nun den Wert 2.5.
Man muss also dafür sorgen, dass entweder Divisor oder Dividend ein Float ist. Dass muss man auch bei Formeln mit zum Beispiel 1/3*g*h beachten:
Code: [AUSKLAPPEN]

vol = 1/3.0 * g * h


Noch Fragen?

MfG

BladeRunner

Moderator

BeitragDi, Sep 28, 2004 21:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
howfar=Int((current/maxcount)*100)

Das ist maximal 100 pixel breit, unabhängig von der mit Startx und endx ermittelten "Ladebalkenbreite".
Verschiebe die Zeile nach die Ermittlung von Startx und endx und ändre sie zu:
Code: [AUSKLAPPEN]
howfar=Int((current/maxcount)*(endx-startx))

Dann passt sich das Ganze der Auflösung an.
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92

Lord_Vader

BeitragDi, Sep 28, 2004 22:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Thx. Lag nur an den integern.. Das mit der breite hab ich wie folgt gelöst:

Code: [AUSKLAPPEN]

startx=GraphicsWidth()/4
endx=GraphicsWidth()-2*startx

starty=GraphicsHeight()/2

howfar=(current*1.0/maxcount*1.0)*GraphicsWidth()-(2*startx)*1.0

Text GraphicsWidth()/2,GraphicsHeight()/3,"Lädt...",1,1

Color 0,63,127   
Rect startx-2,starty-2,endx+4,64+4,1
Color 0,127,255
Rect startx,starty,howfar,64,1


Thx nochm0rl[/code]

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group