Der gute alte Ladebalken

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

Neoxit

Betreff: Der gute alte Ladebalken

BeitragMi, Jun 30, 2010 3:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Heydiho ich bin gerad so n bissl am verzweifeln, es geht um den guten alten Ladebalken Very Happy

Und zwar schreibe ich derzeitig eine Funktion um einen Ladebalken über eine funktion zu positionieren, man sucht sich aus, welches bild, ob vertikal / horizontal gezeichnet und dann ob von links / rechts / oben / unten der ladebalken ab / zu nimmt.

Meine Funktion sieht bisher wie folgt aus:


BlitzBasic: [AUSKLAPPEN]
;FUNKTION(x position - y position - grafikdatei - maximaler wert - aktueller wert - ausrichtung - von links / rechts abnehmend)
;Ausrichtung
;1 = horizontal
;2 = vertikal

;Links/rechts
;1 = Von Rechts abnehmend / von oben abnehmend
;2 = Von Links abnehmend / von unten abnehmend
;DrawProzentBalkenGrafik(x_position,y_position,grafik,max_wert,aktueller_wert,ausrichtung,links_rechts)

Function DrawProzentBalkenGrafik(xpos,ypos,img,max,akt,ausr,lr)
img_hoehe = ImageHeight(img)
img_weite = ImageWidth(img)

If ausr = 1 Then
If lr = 1 Then
;Horizontal von Rechts abnehmend
percent# = (akt*100) / max
drawlengh# = (img_weite*percent#) / 100
;Debugtext
Text 100,130,("Prozent: "+percent#)
Text 100,145,("Drawlengh: "+drawlengh#)
DrawImageRect(img,xpos,ypos,0,0,drawlengh#,img_hoehe)

EndIf
If lr = 2 Then

EndIf
EndIf


If ausr = 2 Then
If lr = 1 Then

EndIf
If lr = 2 Then
;Vertikal von Unten abnehmend
percent# = (akt*100) / max
drawlengh# = (img_hoehe*percent#) / 100
;Debugtext
Text 100,130,("Prozent: "+percent#)
Text 100,145,("Drawlengh: "+drawlengh#)
DrawImageRect(img,xpos,ypos,0,0,img_weite,drawlengh#)
EndIf
EndIf



End Function


Sieht alles schön aus und funktioniert aus astrein.... mein problem was ich nur gerade habe, ist das handlen wenn er nicht von der x = 0 / y = 0 koordinate zunehmen soll sondern von der maximalen bildlänge prozentual auf 0 kommen soll wenn er auf 100 % (oder akt_wert = max_wert) ist. Da ich mir gedacht habe das ich dann die weite und höhe per imagerect direkt auf maximalwert des bildes setze und dafür die startkoordinate änder (x_rect_start).

Ich bin schon tausende formeln etc. pp . durchgegangen aber ich habs einfach nich gebacken bekommen o.O

kann mir iwer hier helfen? oder ist das bei weitem komplizierter anders rum zu "errechnen"?

ich hoffe ihr konntet mir folgen ;D

(BB / B3D)

MfG
Neoxit

Xeres

Moderator

BeitragMi, Jun 30, 2010 3:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Empfehlung: Papier, Stift - Skizze machen. Mit einem ordentlichen Darstellung wird einem viel eher klar, was man berechnen muss.
Vielleicht kannst du auch mit handleimage Arbeiten.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)

Neoxit

BeitragMi, Jun 30, 2010 3:36
Antworten mit Zitat
Benutzer-Profile anzeigen
@Xeres

Ja, habe es schon mit handleimage versucht. Ich weiß auch gar nich ob aus meiner beschreibung genau klar wird was ich überhaupt möchte ^^

Bei DrawImageRect zeichnet er ja von der startposition (meistens x=0 , y=0) bis zum entsprechenden angegebenen endwert. Das habe ich ja acuh getan in meiner berechnung oben. Allerdings kann ich ja nicht die werte bei einer umgekehrten version einfach ins "-" setzen. D.h. ich muss berechnen das sobald ich 100% geschweige den max wert habe, erst dann darf er mir den Ladebalken von x=0 zeichnen. solange ich z.b. bei 50 % bin soll er mir auch nur 50 % von der drawlengh# zeichnen. sollte er bei 0 % sein, entsprechend bei der maximallänge der bildweite starten und auch enden (würde dann keinen balken mehr zeichnen). aber die entsprechende formel dafür... ich bekomm sie nich auffe reihe... und höchstwahrscheinlich ist sie so simpel Rolling Eyes habe auch schon das internet durchgoogled aber nichts gescheites gefunden...
 

Krischan

BeitragMi, Jun 30, 2010 7:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Guck mal hier, evt. hilft Dir das im Ansatz weiter: https://www.blitzforum.de/foru...268#351693

Midimaster

BeitragMi, Jun 30, 2010 8:00
Antworten mit Zitat
Benutzer-Profile anzeigen
BlitzBasic: [AUSKLAPPEN]
Function DrawProzentBalkenGrafik(xpos,ypos,img,max,akt,ausr,lr)
img_hoehe = ImageHeight(img)
img_weite = ImageWidth(img)

If ausr = 1 Then
;Horizontal von Rechts abnehmend
percent# = (akt*100) / max
drawlengh# = (img_weite*percent#) / 100
;Debugtext
Text 100,130,("Prozent: "+percent#)
Text 100,145,("Drawlengh: "+drawlengh#)
If lr = 1 Then
DrawImageRect(Img,xPos,yPos,0,0,DrawLengh,img_Hoehe)

ElseIf lr = 2 Then
DrawImageRect(Img,xPos+img_Weite-DrawLengh,yPos,img_Weite-DrawLengh,0,DrawLengh#,img_Hoehe)

EndIf
EndIf


If ausr = 2 Then
;Vertikal von Unten abnehmend
percent# = (akt*100) / max
drawlengh# = (img_hoehe*percent#) / 100
;Debugtext
Text 100,130,("Prozent: "+percent#)
Text 100,145,("Drawlengh: "+drawlengh#)
If lr = 2 Then
DrawImageRect(Img,xPos,yPos,0,0,img_Weite,DrawLengh#)

ElseIf lr = 1 Then
DrawImageRect(Img,xPos,yPos+img_Hoehe-DrawLengh,0,img_Hoehe-DrawLengh,img_weite,drawlengh#)
EndIf
EndIf



End Function

Neoxit

BeitragMi, Jun 30, 2010 14:09
Antworten mit Zitat
Benutzer-Profile anzeigen
Danke dir Midimaster funktioniert Topp Wink

So simpel ^^ Aber morgends um 3 kommt man einfach nich drauf xD

thx erneut Smile Problem gelöst kann geclosed werden

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group