Hallo Forenmitglieder,
meine Frau macht eine Ausbildung zur IT- Kauffrau und ich schnupper in diesem Zuge bei ein Themen etwas mit. Speziell gefällt mir das programmieren von VB. Bereits Anfang der 2000er habe ich in VBA (nur absolute Basics) gemacht.
Derzeit bastle ich ein kleines Tower Defense mit Textbox. Allerdings kommt es derzeit zu einem Problem.
In meinem Hauptfenster gibt es einen Button mit folgender Beschriftung:
Aktuelle Auswahl:
1
Sobald man da drauf klickt, kommt man in eine andere "Form" in dem man über Buttons die Welle wechseln kann. Ich habe nun bereits über das Internet die nützlichen globalen Variablen gefunden, um Werte von der Auswahl auf meine Haupt-Form zu übertragen.
Allerdings fehlen mir ein paar Infos. Sobald natürlich eine andere Welle in Form 2 gewählt wurde, soll sich der Button in der Hauptform ändern. Ich habe es hiermit probiert:
Aber leider funktioniert es damit nicht. Dabei spielt es keine Rolle, ob ich die Hauptform vorher mit me.hide verstecke oder nicht.
Hier mal der komplette Code vom Hauptform:
Spoiler anzeigen
Hier der komplette Text der Nebenform:
Spoiler anzeigen
Ich hoffe, ihr könnt mir helfen.
Vielen Dank im Voraus
Corai
p.s.: Bedenkt, dass ich das nie gelernt habe und zerreißt mich bitte nicht in der Luft
meine Frau macht eine Ausbildung zur IT- Kauffrau und ich schnupper in diesem Zuge bei ein Themen etwas mit. Speziell gefällt mir das programmieren von VB. Bereits Anfang der 2000er habe ich in VBA (nur absolute Basics) gemacht.
Derzeit bastle ich ein kleines Tower Defense mit Textbox. Allerdings kommt es derzeit zu einem Problem.
In meinem Hauptfenster gibt es einen Button mit folgender Beschriftung:
Aktuelle Auswahl:
1
Sobald man da drauf klickt, kommt man in eine andere "Form" in dem man über Buttons die Welle wechseln kann. Ich habe nun bereits über das Internet die nützlichen globalen Variablen gefunden, um Werte von der Auswahl auf meine Haupt-Form zu übertragen.
Allerdings fehlen mir ein paar Infos. Sobald natürlich eine andere Welle in Form 2 gewählt wurde, soll sich der Button in der Hauptform ändern. Ich habe es hiermit probiert:
Aber leider funktioniert es damit nicht. Dabei spielt es keine Rolle, ob ich die Hauptform vorher mit me.hide verstecke oder nicht.
Hier mal der komplette Code vom Hauptform:
Visual Basic-Quellcode
- Option Strict On
- Public Class frmspiel
- Dim level As Int16 = 1
- Dim lebengesamt As Int32 = 100
- Dim lebenaktuell As Int32 = lebengesamt
- Dim staerke As Int32 = 10 'Stärke des Turms
- Dim defense As Int32 = 10 'Verteidigung des Turms
- Dim xpmax As Int32 = 100
- Dim xpaktuell As Int32 = 0
- Dim gegnerstaerke As Int32 = 10
- Dim gegnerdef As Int32 = 1
- Dim gegnerhp As Int32 = 10
- Dim angriff As Int32 = 10 'Angriffswert für Turm und Gegner
- Dim schaden As Int32 = 0 'Schaden, der tatsächlich verursacht wird
- Dim zufallszahl As New Random
- Private Sub wellenstart()
- 'Prozedur - Diese passiert, sobald man auf Start klickt!
- btnwellestart.Enabled = False
- btnauswahl.Enabled = False
- 'Spieler hat Welle gestartet:
- lbxspieletext.Items.Add("Welle 1 wurde gestartet.")
- lbxspieletext.SelectedIndex = lbxspieletext.Items.Count - 1
- Delay(1)
- lbxspieletext.Items.Add("Gegner greift an.")
- lbxspieletext.SelectedIndex = lbxspieletext.Items.Count - 1
- Delay(1)
- 'Gegner greift an:
- schaden = gegnerstaerke - (defense \ 2)
- lbxspieletext.Items.Add("Gegner verursacht " & schaden & " Schaden.")
- lbxspieletext.SelectedIndex = lbxspieletext.Items.Count - 1
- lebenaktuell = lebenaktuell - schaden
- pbLeben.Value = lebenaktuell
- Delay(1)
- 'Turm verteidigt sich:
- lbxspieletext.Items.Add("Turm verteidigt sich.")
- lbxspieletext.SelectedIndex = lbxspieletext.Items.Count - 1
- 'angriff = zufallszahl.Next(-10, 11) \ 10 -- Variante, jedoch nicht ausgereift. Benötigte Minuswerte & Kommastellen
- 'schaden = (staerke + angriff) - (gegnerdef \ 2)
- schaden = staerke - (gegnerdef \ 2)
- lbxspieletext.Items.Add("Du verursachst " & schaden & " Schaden.")
- lbxspieletext.SelectedIndex = lbxspieletext.Items.Count - 1
- gegnerhp = gegnerhp - schaden
- lbxspieletext.Items.Add("Gegner hat noch " & gegnerhp & " Leben.")
- lbxspieletext.SelectedIndex = lbxspieletext.Items.Count - 1
- If gegnerhp > 0 Then
- 'Sofern Gegner noch lebt passiert folgendes:
- End If
- btnauswahl.Enabled = True
- btnwellestart.Enabled = True
- End Sub
- Private Sub frmspiel_Load(sender As Object, e As EventArgs) Handles MyBase.Load
- 'Sobald das Spiel geladen wird
- lbllevel.Text = level.ToString
- lbllebenwert.Text = lebenaktuell.ToString & "/" & lebengesamt.ToString
- pbLeben.Value = lebenaktuell
- lblangriffwert.Text = 10.ToString
- lbldefwert.Text = 10.ToString
- lblxpwert.Text = xpaktuell & "/" & xpmax
- pblevel.Value = xpaktuell
- pubvarmodul.welleaktuell = 1
- btnauswahl.Text = "Aktuelle Auswahl: " & Chr(13) & Chr(13) & pubvarmodul.welleaktuell
- End Sub
- Private Sub frmspiel_show(sender As Object, e As EventArgs) Handles MyBase.Load
- btnauswahl.Text = "Aktuelle Auswahl: " & Chr(13) & Chr(13) & pubvarmodul.welleaktuell
- lbxspieletext.Items.Add(pubvarmodul.welleaktuell)
- End Sub
- Private Sub btnwellestart_Click(sender As Object, e As EventArgs) Handles btnwellestart.Click
- 'Was passiert bei welcher Welle:
- Select Case pubvarmodul.welleaktuell
- Case 1
- gegnerstaerke = 10
- gegnerdef = 1
- gegnerhp = 10
- wellenstart()
- Case 2
- gegnerstaerke = 10
- gegnerdef = 2
- gegnerhp = 20
- wellenstart()
- Case 3
- gegnerstaerke = 12
- gegnerdef = 2
- gegnerhp = 30
- wellenstart()
- Case 4
- gegnerstaerke = 12
- gegnerdef = 3
- gegnerhp = 40
- wellenstart()
- Case 5
- gegnerstaerke = 15
- gegnerdef = 3
- gegnerhp = 50
- wellenstart()
- Case Else
- End Select
- End Sub
- Private Sub btnauswahl_Click(sender As Object, e As EventArgs) Handles btnauswahl.Click
- wellenauswahl.Show()
- Me.Hide()
- End Sub
- End Class
Hier der komplette Text der Nebenform:
Visual Basic-Quellcode
- Option Strict On
- Public Class wellenauswahl
- Private Sub wellewechseln()
- frmspiel.Show()
- Me.Hide()
- End Sub
- Private Sub btnwelle1_Click(sender As Object, e As EventArgs) Handles btnwelle1.Click
- pubvarmodul.welleaktuell = 1
- wellewechseln()
- End Sub
- Private Sub btnwelle2_Click(sender As Object, e As EventArgs) Handles btnwelle2.Click
- pubvarmodul.welleaktuell = 2
- wellewechseln()
- End Sub
- Private Sub btnwelle3_Click(sender As Object, e As EventArgs) Handles btnwelle3.Click
- pubvarmodul.welleaktuell = 3
- wellewechseln()
- End Sub
- Private Sub btnwelle4_Click(sender As Object, e As EventArgs) Handles btnwelle4.Click
- pubvarmodul.welleaktuell = 4
- wellewechseln()
- End Sub
- Private Sub btnwelle5_Click(sender As Object, e As EventArgs) Handles btnwelle5.Click
- pubvarmodul.welleaktuell = 5
- wellewechseln()
- End Sub
- End Class
Ich hoffe, ihr könnt mir helfen.
Vielen Dank im Voraus
Corai
p.s.: Bedenkt, dass ich das nie gelernt habe und zerreißt mich bitte nicht in der Luft
Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Corai“ ()