Was bringt ein Spiel ohne Punkte? Einige können darauf verzichten, aber bei den meisten Spielen, die Sie erstellen, müssen Sie dem Spieler mitteilen, wie gut er abschneidet.
Punkte sind ein wesentlicher Bestandteil vieler Spiele, da sie den Fortschritt und Erfolg der Spieler messen.
In Python bietet die Arcade-Bibliothek eine einfache und effiziente Möglichkeit, Spielstände zu verwalten. Durch die effektive Verwaltung von Spielständen können Sie die Benutzereinbindung steigern und ein noch intensiveres Spielerlebnis bieten.
Erstellen Sie ein einfaches Spiel
Bevor Sie beginnen, stellen Sie sicher, dass Sie dies getan haben pip auf Ihrem Gerät installiert. Verwenden Sie diesen Befehl, um die Arcade-Bibliothek zu installieren:
Pip Arcade installieren
Erstellen Sie nun ein einfaches Spiel mit der Arcade-Bibliothek von Python.
Der in diesem Artikel verwendete Code ist hier verfügbar GitHub-Repository Die Nutzung steht Ihnen unter der MIT-Lizenz kostenlos zur Verfügung.
In diesem Spiel kann sich der Spieler mit den Pfeiltasten nach links und rechts bewegen, während auf derselben Y-Achse ein Hindernis platziert wird.
importieren Arkade
# Fensterabmessungen einrichten
SCREEN_WIDTH = 800
SCREEN_HEIGHT = 600KlasseMein Spiel(Arkade. Fenster):
def__drin__(Selbst, Breite, Höhe):
super().__init__(Breite, Höhe)
self.player_x = Breite // 3
self.score = 0defon_key_press(selbst, Schlüssel, Modifikatoren):
Wenn Schlüssel == arcade.key. LINKS:
self.player_x -= 10
elif Schlüssel == arcade.key. RECHTS:
self.player_x += 10defaktualisieren(self, delta_time):
# Spiellogik hier aktualisieren
passierendefon_draw(selbst):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arcade.color. BLAU)
arcade.draw_rectangle_filled(400, 50, 100, 50, arcade.color. ROT)defhauptsächlich():
game = MyGame (SCREEN_WIDTH, SCREEN_HEIGHT)
arcade.run()
Wenn __name__ == "__hauptsächlich__":
hauptsächlich()
Punkteverfolgung und -berechnung
Um den Punktestand in Ihrem Spiel zu verfolgen, können Sie einen Mechanismus erstellen, der den Punktestand immer dann erhöht, wenn eine bestimmte Bedingung erfüllt ist. Beispielsweise erhöht sich die Punktzahl jedes Mal, wenn die Spielerbewegungen in Ihrem Spiel und berührt erfolgreich das Hindernis. Sie können das ändern aktualisieren Methode zur Einbindung der Score-Berechnungslogik:
KlasseMein Spiel(Arkade. Fenster):
def__drin__(Selbst, Breite, Höhe):
super().__init__(Breite, Höhe)
self.player_x = Breite // 3
self.score = 0defon_key_press(selbst, Schlüssel, Modifikatoren):
Wenn Schlüssel == arcade.key. LINKS:
self.player_x -= 10
elif Schlüssel == arcade.key. RECHTS:
self.player_x += 10
defaktualisieren(self, delta_time):
Wenn self.player_x > 330Und self.player_x < 470:
self.score += 1
Anzeige der Partitur
Um dem Spieler die Punktzahl anzuzeigen, ändern Sie die on_draw Methode zum Einbinden einer Textdarstellung:
KlasseMein Spiel(Arkade. Fenster):
# ...defon_draw(selbst):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, 50, 20, arcade.color. BLAU)
arcade.draw_rectangle_filled(400, 300, 100, 50, arcade.color. ROT)
score_text = f"Punktzahl: {self.score}"
arcade.draw_text (score_text, 10, 10, arcade.color. WEISS, 14)
Durch Hinzufügen des obigen Codes können Sie den Punktestand in der unteren linken Ecke des Spielfensters anzeigen.
Speichern des Highscores
Um den Spielern Erfolgserlebnisse und Wettbewerbserlebnisse zu vermitteln, ist es wichtig, den Highscore zu speichern und anzuzeigen. Sie können hierfür einen einfachen dateibasierten Ansatz verwenden.
Benutzen Sie die Load_high_score Methode zum Lesen des Highscores aus einer Datei namens high_score.txt und gib es zurück. Danach können Sie den neuen Highscore mit in der Datei speichern save_high_score Methode.
KlasseMein Spiel(Arkade. Fenster):
def__drin__(Selbst, Breite, Höhe):
super().__init__(Breite, Höhe)
self.player_x = Breite // 3
self.score = 0
self.high_score = self.load_high_score()defLoad_high_score(selbst):
versuchen:
mit offen(„high_score.txt“, "R") als Datei:
zurückkehren int (file.read())
außer FileNotFoundError:
zurückkehren0defsave_high_score(selbst):
mit offen(„high_score.txt“, „w“) als Datei:
file.write (str (self.high_score))defaktualisieren(self, delta_time):
# ...
Wenn self.score > self.high_score:
self.high_score = self.score
self.save_high_score()
Highscore anzeigen
Ähnlich wie bei der Anzeige des aktuellen Punktestands können Sie eine Textdarstellung hinzufügen, um den Highscore anzuzeigen:
KlasseMein Spiel(Arkade. Fenster):
# ...defon_draw(selbst):
# ...
high_score_text = f"Highscore: {self.high_score}"
arcade.draw_text (high_score_text, 10, 30, arcade.color. WEISS, 14)
Indem Sie den obigen Code in die einfügen on_draw Mit dieser Methode können Sie den Highscore knapp über dem aktuellen Score anzeigen lassen.
Inklusive zusätzlicher Funktionen
Die Verwaltung von Spielständen erfordert häufig die Integration zusätzlicher Funktionen, um das Gameplay ansprechender und dynamischer zu gestalten. Sehen wir uns einige Beispiele an, wie Sie neben der Punkteverwaltung zusätzliche Funktionen in Ihr Spiel einführen können.
Einschalten
Power-Ups sind besondere Gegenstände, die Spielern vorübergehende Vorteile oder Bonuspunkte gewähren. Erstelle ein activate_power_up Methode, die die Aktivierung des Einschaltvorgangs auslöst und die festlegt power_up_active Flag auf True setzen.
Sie können das planen deaktivieren_power_up Methode, die nach einer bestimmten Dauer (z. B. 10 Sekunden) mit dem ausgeführt wird arcade.schedule Funktion. Während des aktiven Zeitraums des Power-Ups können Sie das verwenden apply_power_up_effects Methode zur Implementierung spezifischer Gameplay-Verbesserungen.
Hier ist ein Beispiel für die Implementierung einer Power-Up-Funktion in Ihrem Spiel.
KlasseMein Spiel(Arkade. Fenster):
def__drin__(Selbst, Breite, Höhe):
super().__init__(Breite, Höhe)
self.player_x = Breite // 3
self.score = 0
self.power_up_active = FALSCHdefaktualisieren(self, delta_time):
Wenn self.power_up_active:
# Wende Power-Up-Effekte während des Spiels an
self.apply_power_up_effects()
self.score += 10defapply_power_up_effects(selbst):
# Fügen Sie hier eine Einschalt-spezifische Logik hinzu
passierendefactivate_power_up(selbst):
self.power_up_active = WAHR
# Stellen Sie einen Timer oder eine Dauer für den Power-Up-Effekt ein
arcade.schedule (self.deactivate_power_up, 10.0)
defdeaktivieren_power_up(self, delta_time):
self.power_up_active = FALSCH
Combo-System
Ein Combo-System belohnt Spieler für das Erreichen aufeinanderfolgender erfolgreicher Aktionen oder Punktemultiplikatoren. Erstelle ein raise_combo_counter Methode, die den Combo-Zähler erhöht und die Punktzahl basierend auf der aktuellen Combo-Stufe erhöht.
Sie können das anrufen reset_combo_counter Methode und setzen Sie den Combo-Zähler auf Null zurück, wenn eine erfolglose Aktion auftritt. Hier ist eine einfache Implementierung eines Combo-Systems:
KlasseMein Spiel(Arkade. Fenster):
def__drin__(Selbst, Breite, Höhe):
super().__init__(Breite, Höhe)
self.player_x = Breite // 3
self.score = 0
self.combo_counter = 0defaktualisieren(self, delta_time):
# Auf erfolgreiche Aktionen prüfen
Wenn self.check_successful_action():
self.increase_combo_counter()
anders:
self.reset_combo_counter()defraise_combo_counter(selbst):
self.combo_counter += 1
self.score += self.combo_counter
defreset_combo_counter(selbst):
self.combo_counter = 0
Durch die Integration zusätzlicher Funktionen wie Power-Ups und Combo-Systeme können Sie Ihrem Spiel Tiefe und Spannung verleihen. Bereitstellung zusätzlicher Anreize für Spieler, ihre Leistung zu verbessern, ihre Aktionen strategisch zu planen und höhere Ziele zu erreichen Partituren.
Best Practices für das Score-Management
Wenn es um die Verwaltung von Spielständen geht, kann die Befolgung von Best Practices dazu beitragen, den Spielern ein angenehmeres und ansprechenderes Erlebnis zu bieten. Hier sind einige wichtige Praktiken, die Sie berücksichtigen sollten:
Aussagekräftige Bewertungsmechanismen
Entwerfen Sie Bewertungsmechanismen, die auf die Ziele des Spiels abgestimmt sind und den Spielern aussagekräftiges Feedback geben. Das Punktesystem sollte den Fortschritt, das Können und die Erfolge des Spielers im Spiel widerspiegeln.
Erwägen Sie, verschiedenen Aktionen oder Ereignissen je nach Schwierigkeitsgrad oder Bedeutung für das Gameplay unterschiedliche Punktwerte zuzuweisen.
Visuelles Feedback
Geben Sie den Spielern visuelles Feedback, wenn sich der Spielstand ändert. Dies können Sie durch Bildschirmbenachrichtigungen, Animationen oder Partikeleffekte erreichen. Visuelle Hinweise schaffen ein Erfolgserlebnis, verstärken die Aktionen des Spielers und erhöhen so seine Beteiligung am Spiel.
Soundeffekte und Animationen
Übernehmen Soundeffekte in Ihrem Spiel im Zusammenhang mit Partituraktualisierungen, um das Erlebnis noch intensiver zu gestalten. Spielen Sie beispielsweise einen feierlichen Soundeffekt ab oder lassen Sie Konfetti explodieren, wenn der Spieler einen wichtigen Meilenstein erreicht. Diese audiovisuellen Elemente sorgen für Spannung und verstärken die positive Feedbackschleife für die Spieler.
Schwierigkeitsgrad und Punkteskalierung ausgleichen
Stellen Sie ein ausgewogenes Verhältnis zwischen Schwierigkeitsgrad und Punkteskalierung sicher. Wenn die Spieler im Spiel vorankommen oder auf anspruchsvollere Hindernisse stoßen, passen Sie das Punktesystem entsprechend an. Die Skalierung der Punktzahl basierend auf der Schwierigkeitskurve des Spiels trägt dazu bei, den Spielern ein faires und lohnendes Erlebnis zu bieten.
Durch die Einhaltung dieser Best Practices können Sie die Ergebnisse Ihres Spiels effektiv verwalten, den Spielern aussagekräftiges Feedback geben und ein lohnendes und ansprechendes Erlebnis schaffen.
Verbessern Sie das Spielengagement mit Score-Tracking
Durch die Implementierung der Punkteverfolgung in Ihrem Spiel können Sie das Spielerengagement erheblich steigern. Ergebnisse vermitteln ein Erfolgserlebnis, fördern die Wiederspielbarkeit und fördern den Wettbewerb unter den Spielern.
Zeigen Sie Punkte deutlich an und belohnen Sie hohe Leistungen – Sie motivieren die Spieler, nach besseren Leistungen zu streben und ihre Fähigkeiten zu verbessern.