Thema Datum  Von Nutzer Rating
Antwort
Rot Excel Tennisspiel soll beschleunigt werden.
19.01.2021 18:18:05 Patrick Reinemer
NotSolved
19.01.2021 19:40:21 volti
NotSolved
19.01.2021 19:43:21 volti
NotSolved
19.01.2021 19:52:04 Patrick
NotSolved
19.01.2021 23:09:36 volti
*****
Solved
20.01.2021 11:39:55 Patrick
NotSolved

Ansicht des Beitrags:
Von:
Patrick Reinemer
Datum:
19.01.2021 18:18:05
Views:
768
Rating: Antwort:
  Ja
Thema:
Excel Tennisspiel soll beschleunigt werden.

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.


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:

 
 

  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
Rot Excel Tennisspiel soll beschleunigt werden.
19.01.2021 18:18:05 Patrick Reinemer
NotSolved
19.01.2021 19:40:21 volti
NotSolved
19.01.2021 19:43:21 volti
NotSolved
19.01.2021 19:52:04 Patrick
NotSolved
19.01.2021 23:09:36 volti
*****
Solved
20.01.2021 11:39:55 Patrick
NotSolved