Werte in Progressbar anzeigen und abziehen

  • VB.NET

Es gibt 28 Antworten in diesem Thema. Der letzte Beitrag () ist von SpaceyX.

    Werte in Progressbar anzeigen und abziehen

    Hallo,
    Ich hab mal wieder ein Problem das ich nicht gelöst bekomme .__.
    Ich habe eine Progress bar der soll jetzt bei 100% der wert 160 zugeordnet werden.(Wie geht das?)
    per knopf kann ich verscheidene zahlen zwischen 20 und 40 generieren.
    Diese sollen jetzt von 160 abgezogen werden und mir dann in der Progressbar angezeigt werden (Wie geht das?)
    also das der fortschrittsbalken entsprechend den wert angezeigt bei 160 --> ganz voll bei 145 etwas weniger usw.
    Hintergedanke ist eine Lebensanzeige bei einem Spiel, die mit einer Progressbar verschönert werden soll ;)
    Freue mich auf Hilfen

    LG
    C# Developer
    Learning C++
    Aber bitte nicht weitersagen:

    VB.NET-Quellcode

    1. ProgressBar1.Maximum = 160
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    hm, aber wie mache ich sichtbar das sich die Progressbar verändert wenn ich den Wert abziehe?

    @RodFromGermany

    RodFromGermany schrieb:

    ProgressBar1.Maximum = 160
    Das zeigt mir doch nur den Wert an wenn die Progressbar voll ist oder?
    C# Developer
    Learning C++

    Rikudo schrieb:

    wenn ich den Wert abziehe?
    :?: :?:
    So sind das 50%.

    VB.NET-Quellcode

    1. ProgressBar1.Maximum = 160
    2. ProgressBar1.Value = 80
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Nach welcher Formel bestimmst Du denn die Lebenskraft (oder wie das heißt) von Deiner Figur?
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Nach welcher Formel bestimmst Du denn die Lebenskraft (oder wie das heißt) von Deiner Figur?

    Also die Leben sind bei jedem Level vorgegeben, sagen wir 250 Punkte. Bei jedem "Angriff" wird mit einer Ramdom-Funktion eine Zahl zwischen 30 und 40 generiert (Das sind die Schadenspunkte, die immer etwas varierieren. Jetzt mächte ich eben das die Lebenspunkte (Am Anfang 250) in einer progressbar angezeigt werden und bei jedem Angriff die generierte Zahl zwischen 30 und 40 abgezogen wird. --> Progressbar-Balken soll kürzer werden. Wenn er bei 0 ist steht dann eben in einer MsgBox ("Gewonnen/Verloren")
    Und meine Frage war halt wie ich das mache das die Progressbar bei abgezogenen Werten kürzer wird und zwar genau umm so viel wie ich als schaden habe...
    C# Developer
    Learning C++
    Kann es sein, dass eine Progressbar hier Fehl am Platze ist?
    Mach (zunächst) einfach eine numerische Anzeige, wo die entsprechende Zahl drin steht. Wenn Du dann ein wenig Gefühl dafür gewonnen hast, kannst Du ja über eine andere Darstellung nachdenken.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Kann es sein, dass eine Progressbar hier Fehl am Platze ist?
    Mach (zunächst) einfach eine numerische Anzeige, wo die entsprechende Zahl drin steht. Wenn Du dann ein wenig Gefühl dafür gewonnen hast, kannst Du ja über eine andere Darstellung nachdenken.
    Eine numerische Anzeige hab ich schon. Ich will das ganze nur mit einer Progressbar als Live-Balken verschönern.
    C# Developer
    Learning C++
    Dann musst Du es halt tun. Setze als Maximum einen Wert, den die Figur eben gerade nicht erreichen kann.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    RodFromGermany schrieb:

    Rikudo schrieb:

    wenn ich den Wert abziehe?
    :?: :?:
    So sind das 50%.

    VB.NET-Quellcode

    1. ProgressBar1.Maximum = 160
    2. ProgressBar1.Value = 80
    Ich Idiot, hab den Code falsch eingesetzt :pinch:
    Jetzt klappts halbwegs.
    Allerdings füllt sich die Progressbar anstatt sich zu leeren, wie kann ich das noch ändern?
    C# Developer
    Learning C++

    VB.NET-Quellcode

    1. IrgendeinValue = IrgendeinValue + EineVeränderung
    EineVeränderung wird als Delta bezeichnet.
    Also:

    VB.NET-Quellcode

    1. IrgendeinValue = IrgendeinValue - EineVeränderung
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    Also nochmal. Gehen wir mal davon aus das ich den Wert den ich später generiere der Einfachkeit halber per hand in eine msgBox eintippe.
    Zuerst muss das Maximum 250 gesetzt werden.
    Dann tippe ich einen wert ein. Als bsp 100.
    Jetzt muss von 250 der wert 100 abgezogen werden, also haben wir 150.
    jetzt muss mir 150 in der progressbar angezeigt werden (Das sind 3/5 grüner Balken)
    jetzt muss 150 in eine neue Variable gelesen werden, von der aus später weitergerechnet wird.
    Von den 150 die jetzt in einer neuen variable sind muss der neue wert den ich in der textbox eingebe sagen wir 80 abgezogen werden. (wenn ich wieder auf den knopf klicke)
    usw usw usw.
    Aber iwie krieg ichs nicht hin das das immer wieder fehlerfrei wiederholt wird ;/
    Wie würde den das jetzt aussehen, als Code? ?(
    C# Developer
    Learning C++
    Sieh Dir zunächst mal alle Methoden von ProgressBar an.
    Klick mal auf eine dieser Methoden und drück F1 (Hilfe) und lies, was Dir da angezeigt wird und stöber da mal etwas rum.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!
    - Prüfen
    - Gesundheit = Gesundheit - Schaden
    - Progressbar.Value = Gesundheit

    Prüfen bedeutet, dass du eben prüfen musst ob ein gültiger Wert erzeugt wird. "Negative Gesundheit" gibts nicht.
    Wenn man ein halbwegs durchdachtes Klassenkonzept hat, dann kann man da wunderschöne Sachen machen um den Code übersichtlich zu gestalten.
    Bsp: Es gibt eine Klasse "Spieler". Dieser hat eine Eigenschaft (Property) Gesundheit. Ich würde hier die Gesundheit als Zahl zwischen 0 und 1 handhaben, vereinfacht vieles und kann ganz einfach auf Punkte umgerechnet werden: Punkte = Gesundheit * 250. Aber wayn, ändert sich die Property, dann kannst du im Set-Part prüfen ob der neue Wert überhaupt gültig ist. Befindet er sich nicht im entsprechenden Bereich, dann kannst du ihn auf den Grenzwert anpassen, also 0 oder 1 bzw 0 oder 250. Des weiteren könntest du ein Event feuern, wenn der Spieler stribt - d.h. seine Gesundheit erstmals 0 (oder kleiner) erreicht.

    lg
    Ehm... oO
    So mal aus dem Kopf raus geschrieben würd ich mir das mal so denken...

    VB.NET-Quellcode

    1. Private Sub FullLive
    2. LebensProgressbar.Maximum = 160
    3. LebensProgressbar.Value = 160
    4. End Sub
    5. Private Sub GetDamage(ByVal Dmg As Integer)
    6. If DMG > LebensProgressbar.Value Then
    7. LebensProgressbar.Value = 0
    8. Else
    9. LebensProgressbar.Value = LebensProgressbar.Value - DMG
    10. End If
    11. End Sub
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    Es war einmal ein kleiner Bär... der wollte eine Geschichte hörn... Da erzählte ihm seine Mutti:
    ... Nun solltest es selber wissen. :'D