ATB Balken aus Final Fantasy nachahmen in VB Express 2008

The Hawkmouth

Grünschnabel
Hi all. Bin neu hier, wie man unschwer erkennen kann ^^. Bringe aber etwas VB Erfahrung mit (aus meiner 9.) Das Wissen ist nich allzu groß, aber es reicht für die kleinen grundlegenden Funktionen.

Ich versuche mehrere Active Time Battle Balken zu programmieren (so wie es bei Final Fantasy Games der Fall ist). Hoffe ich habs ins richtige Forum gepostet...

Ich habe:

  • einen CommandButton (Start)
  • mehrere ProgressBars
  • eine Textbox für den Interval eines Timers
  • eine Textbox für die Anzeige des aktuellen Wertes einer Progressbar
  • mehrere Timer

Da ich aber erst vor kurzem die Express Edition 2008 von VB heruntergeladen habe und ich mich damit nich richtig zurechtfinde, bin ich auf etwas Hilfe angewiesen :rolleyes:

Funktion:
=======


Durch klicken auf den Start Button, springen die Timer an (Timer.Enabled = True)
Die Timer zählen jeweils immer +1. Die Progressbars laufen hinauf, bis sie den Wert 100 erreichen (was gleichzeitig auch ihr Maximalwert ist). Wenn eine Progressbar den Wert 100 erreicht hat, stoppen alle Timer und damit auch alle Progressbars.

Die Progressbar, welche soeben den Wert 100 erreicht hat, soll wieder auf 0 zurückgesetzt werden (die anderen bleiben auf ihren Werten). Wird jetzt wieder auf Start geklickt, laufen alle Timer und somit alle Bars wieder weiter, bis die nächste Bar ihren Wert 100 erreicht. Das ganze geht immer wieder so weiter (im Prinzip wie bei allen FF Games (Charakter ist an der Reihe, nachdem Aktion getätigt, füllt sich der Balken wieder von vorne)

Die Probleme:
=========


Soo, jetz hab ich schon etwas herumgewerkelt, aber steh immer wieder auf dem Schlauch. Vor allem hab ich das Gefühl, das hier das Programmierverhalten etwas anders ist als in VB6.0.

Problem 1: Intervall
Wie regele ich am besten die Geschwindigkeit meiner Progressbars? Ich habe ja neben meiner Bar eine Textbox, in der ich den Intervall eingeben kann, den das Programm dann automatisch gleich übernimmt. Je niedriger der Wert, desto schneller füllt sich die Bar. Ich möchte aber gerne das ganze umdrehen, sprich, je höher der Wert, desto schneller füllt sich die Bar. Vorschläge


Problem 2: Übermitteln an die zweite Textbox

Die Werte der Progressbars sollen an die zweite Textbox übermittelt werden (so das ich in der Textbox immer den aktuellen Wert der Bar ablesen kann). Umgekehrt, wenn ich in diese Box einen Wert eingebe, soll sie auch der Progressbar übermittelt werden. Z.B. gebe ich in der Textbox "50" ein, so muss die Progressbar zur Hälfte gefüllt sein. Der Code is das geringste Problem, nur wo pack ich diesen Code hin?

In das Click Ereignis gehts nich, im Timer_Tick Ereignis auch nich... :rolleyes:

Nun ja soweit ers ma dazu...

Hier ein Screenshot noch:
Wäre für Unterstützung recht dankbar ...
 

Anhänge

  • image0001.jpg
    image0001.jpg
    70 KB · Aufrufe: 55
Problem1:

Vieleicht so:

Code:
1000-wert


Also:

Code:
DeinTimer.Interval = 1000 - CInt(DeineTextBox.Text)


Problem2:

Versuchs mal mit dem TextChanged-Event, der TextBox:

Code:
DeineProgressBar.Value = CInt(DeineTextBox.Text)
 
Da gibt es meines Wissens nach, keine eingebaute Möglichkeit das zu überprüfen.

Wäre es denn nicht möglich, das im Tick-Ereignis zu machen?

Oder schreib dir ne Sub, die du immer aufrufst, wenn du den Wert der Progressbar veränderst. (Was übersichtlicher ist, wenn du den Wert an mehreren verschiedenen Stellen änderst)

Code:
Private Sub ChangeValue(ByVal value As Integer)
     DeineProgressBar.Value = value
     DeineTextBox.Text = value.ToString
End Sub
 
omg alles gelöscht :mad::mad::mad: hab weiter an den Codes geschrieben, wollte ausführen und dann kam ne Meldung (Ressource x konnte nich gefunden werden). Hab geschlossen ohne zu speichern. Starte neu und nix is mehr da. WTF? Haben die Autosave drin?

Ich will VB6.0 *omg*

thx 4 answers
 

Neue Beiträge

Zurück