Hallo, ich bin ganz neu hier. Sieht ja auf den ersten Blick echt gut hier aus. Also mein Problem:
Ich schau mir seit 2 Wochen ein bisschen VBA an und kam nun auf die glorreiche Idee ein kleines Spiel zu programmieren. Es ist ein 2 Spieler Tennis.
Ich bin soweit echt zufrieden, allerdings gibt es eine Sache die ich einfach nicht gelöst bekomme. Ich habe folgende Prozedur:
Public Sub Programm()
Dim Neustart
If Spiel_läuft = False And Aktuelle_Spalte = "0" Then
'Start beginnen
Start
Startpunkt_festlegen
Steuerung
ElseIf Spiel_läuft = False And Aktuelle_Spalte <> "0" Then
'Spiel ist vorbei
MsgBox "Game Over"
Neustart = MsgBox("Soll ein neues Spiel gestartet werden?", vbYesNo)
If Neustart = "6" Then
Aktuelle_Spalte = "0"
Programm
End If
Exit Sub
Else
'Position Ball ermitteln
If Aktuelle_Spalte = "3" Or Aktuelle_Spalte = "91" Then
'Balkentreffer
Balken_getroffen
ElseIf Aktuelle_Reihe = "3" Or Aktuelle_Reihe = "32" Then
'Randtreffer
Rand_getroffen
Else
'Nichts getroffen
Weiterlaufen
End If
'Neues Feld eintragen und altes austragen
Range("C3:CM32").ClearContents
Cells(Aktuelle_Reihe, Aktuelle_Spalte).Value = "2"
Cells(Alte_Reihe, Alte_Spalte).Value = "1"
End If
Steuerung
End Sub
Und von hier aus geht es dann hierher
Public Sub Steuerung()
Application.OnKey "{TAB}", "Balken_hoch_S1"
Application.OnKey "{CAPSLOCK}", "Balken_runter_S1"
Application.OnKey "{UP}", "Balken_hoch_S2"
Application.OnKey "{DOWN}", "Balken_runter_S2"
Application.OnTime Now + TimeValue("00:00:01"), "Programm"
End Sub
So jetzt zu meinem Problem. Ich habe es mit OnTime geschafft, dass die Neuberechnung des Spielballs jede Sekunde abläuft. Ich empfinde das allerdings als zu langsam und würde gerne in halben Sekunden Abschnitten die Berechnung durchführen. OnTime funktioniert ja leider nur in Sekunden-Abschnitten. Ein wichtiges Detail is noch, dass man auf das Arbeitsblatt zugreifen können muss, da ich ansonsten nicht die Balken ansteuern kann. Folgendes habe ich schon ausprobiert:
Eine For Schleife um doppelte Berechnung durchzuführen. = Geht und läuft schneller aber natürlich nicht so flüssig
Sleep Funktion über Declare eingefügt. = Mein Excel hängt sich auf und stürzt ab. Egal mit welchen Zeitintervallen.
Ich bin ehrlich gesagt ratlos und wende mich deswegen jetzt mal an ein aktuellen und aktives Forum. Ich freue mich über jede Hilfe und Antwort. Danke schonmal im Vorraus.
|