Erfahren Sie, wie Sie mit den GUI-Tools von Arcade mühelos Spielmenüs erstellen und Benutzeroberflächen entwerfen.

Spielmenüs und Benutzeroberflächen (UI) spielen eine entscheidende Rolle bei der Verbesserung der Benutzererfahrung und des Engagements eines Spiels. Arcade, eine beliebte Python-Bibliothek für die Spieleentwicklung, bietet leistungsstarke GUI-Tools (Graphical User Interface), mit denen sich Spielmenüs und UI-Elemente einfach entwerfen und implementieren lassen.

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

Beginnen Sie mit der Erstellung eines einfachen Spiels mit Arcade.

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 gibt es ein Spielerobjekt, das sich nach links und rechts bewegen kann, sowie ein feindliches Objekt. Hier ist der Code für das Spiel:

instagram viewer
importieren Arkade

BREITE = 800
HÖHE = 600
PLAYER_SPEED = 25

KlasseSpiel(Arkade. Fenster):
def__drin__(selbst):
super().__init__(WIDTH, HEIGHT, „Einfaches Spiel“)
self.player_x = WIDTH // 2
self.enemy_x = WIDTH - 50
self.game_over = FALSCH

defaufstellen(selbst):
arcade.set_background_color (arcade.color. WEISS)

defon_draw(selbst):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, HEIGHT // 2, 20, arcade.color. BLAU)
arcade.draw_circle_filled (self.enemy_x, HEIGHT // 2, 20, arcade.color. ROT)

defaktualisieren(self, delta_time):
self.enemy_x += 0.5
Wenn self.enemy_x >= WIDTH:
self.game_over = WAHR

defon_key_press(selbst, Schlüssel, Modifikatoren):
Wenn Schlüssel == arcade.key. LINKS:
self.player_x -= PLAYER_SPEED
elif Schlüssel == arcade.key. RECHTS:
self.player_x += PLAYER_SPEED

Spiel = Spiel()
game.setup()
arcade.run()

Game Over Screen hinzufügen

Fügen Sie einen Game-Over-Bildschirm hinzu, der eine Meldung anzeigt, wenn das Der Feind bewegt sich außerhalb des Spielfensters. Benutzen Sie die arcade.gui. UIManager Und arcade.gui. UIMessageBox Klassen, um dies zu erreichen.

Erstellen Sie eine Instanz von UIManager und aktivieren Sie es. Im Inneren on_draw Methode, prüfen Sie, ob die Spiel ist aus Flag gesetzt ist, und wenn ja, zeichnen Sie den UI-Manager. Der show_game_over_screen Methode erstellt eine UIMessageBox mit einer Game-Over-Nachricht und fügt sie dem UI-Manager hinzu. Sie können den UI-Manager auch im aktivieren und deaktivieren aktualisieren Methode basierend auf dem Spielstatus.

Erstellen Sie eine neue Datei mit dem Namen game-over.py und fügen Sie den Code mit den folgenden Updates hinzu:

importieren Arkade
aus arcade.gui importieren UIManager, UIMessageBox

BREITE = 800
HÖHE = 600
PLAYER_SPEED = 25

KlasseSpiel(Arkade. Fenster):
def__drin__(selbst):
super().__init__(WIDTH, HEIGHT, „Einfaches Spiel“)
self.player_x = WIDTH // 2
self.enemy_x = WIDTH - 50
self.ui_manager = UIManager()
self.game_over = FALSCH

defaufstellen(selbst):
arcade.set_background_color (arcade.color. WEISS)
self.ui_manager.enable() # Aktivieren Sie den UI-Manager

defon_draw(selbst):
arcade.start_render()
arcade.draw_circle_filled (self.player_x, HEIGHT // 2, 20, arcade.color. BLAU)
arcade.draw_circle_filled (self.enemy_x, HEIGHT // 2, 20, arcade.color. ROT)
Wenn self.game_over:
self.ui_manager.draw()

defaktualisieren(self, delta_time):
self.enemy_x += 0.5
Wenn self.enemy_x >= WIDTH:
self.show_game_over_screen()
self.game_over = WAHR
Wenn self.game_over:
self.ui_manager.enable()
anders:
self.ui_manager.disable()

defon_key_press(selbst, Schlüssel, Modifikatoren):
Wenn Schlüssel == arcade.key. LINKS:
self.player_x -= PLAYER_SPEED
elif Schlüssel == arcade.key. RECHTS:
self.player_x += PLAYER_SPEED

defshow_game_over_screen(selbst):
message_box = UIMessageBox(
Breite=400,
Höhe=200,
message_text="Spiel ist aus!"
)
self.ui_manager.add (message_box)

Spiel = Spiel()
game.setup()
arcade.run()

Unten ist die Ausgabe:

Schaltflächen hinzufügen

Verbessern Sie nun den Game-over-Bildschirm, indem Sie Schaltflächen hinzufügen, um das Spiel neu zu starten oder zu beenden. Sie können dies erreichen, indem Sie die verwenden Tasten Parameter von UIMessageBox und Bereitstellung einer Rückruffunktion zur Verarbeitung von Tastenklicks.

Erstellen Sie eine neue Datei mit dem Namen Buttons.py und fügen Sie den Code mit den folgenden Updates hinzu:

defshow_game_over_screen(selbst):
message_box = UIMessageBox(
Breite=400,
Höhe=200,
message_text="Spiel ist aus!",
Tasten=("Neu starten", "Ausfahrt"),
callback=self.on_game_over_button_click
)
self.ui_manager.add (message_box)

defon_game_over_button_click(self, button_text):
Wenn button_text == "Neu starten":
self.restart_game()
elif button_text == "Ausfahrt":
arcade.close_window()

defSpiel neustarten(selbst):
self.game_over = FALSCH
self.enemy_x = WIDTH - 50
self.ui_manager.clear()

Unten ist die Ausgabe:

Im show_game_over_screen Methode, zwei Schaltflächen hinzufügen, Neu starten Und Ausfahrt, zum UIMessageBox indem Sie sie im angeben Tasten Parameter. Stellen Sie außerdem eine Rückruffunktion bereit. on_game_over_button_click, um Schaltflächenklicks zu verarbeiten. Überprüfen Sie innerhalb der Rückruffunktion, auf welche Schaltfläche geklickt wurde, und führen Sie die entsprechende Aktion aus.

Die GUI-Tools von Arcade bieten eine Vielzahl zusätzlicher Funktionen, die die Funktionalität und Interaktivität Ihrer Spielmenüs und UI-Designs weiter verbessern können. Hier ein paar Beispiele:

UIDraggableMixin

Der UIDraggableMixin Die Klasse kann verwendet werden, um jedes UI-Widget ziehbar zu machen. Es bietet Funktionen zur Handhabung des Ziehverhaltens und ermöglicht Benutzern das Verschieben von UI-Elementen auf dem Bildschirm. Durch die Kombination dieses Mixins mit anderen UI-Widgets können Sie ziehbare Fenster oder Panels in Ihrem Spiel erstellen.

UIMouseFilterMixin

Der UIMouseFilterMixin Mit der Klasse können Sie alle Mausereignisse abfangen, die innerhalb eines bestimmten Widgets auftreten. Dies ist besonders nützlich für fensterähnliche Widgets, bei denen Sie verhindern möchten, dass Mausereignisse Auswirkungen auf die zugrunde liegenden UI-Elemente haben. Durch das Filtern der Mausereignisse können Sie die Interaktion innerhalb des Widgets unabhängig steuern.

UIWindowLikeMixin

Der UIWindowLikeMixin Die Klasse stellt einem Widget fensterähnliches Verhalten bereit. Es verarbeitet alle Mausereignisse, die innerhalb der Grenzen des Widgets auftreten, und ermöglicht das Ziehen des Widgets. Dies ist ideal zum Erstellen verschiebbarer Fenster oder Panels, mit denen Benutzer in Ihrem Spiel interagieren können.

Oberfläche

Der Oberfläche Die Klasse stellt einen Puffer zum Zeichnen von UI-Elementen dar. Es abstrahiert die Zeichnung auf dem Puffer und stellt Methoden zum Aktivieren, Löschen und Zeichnen des Puffers auf dem Bildschirm bereit. Sie können diese Klasse intern zum Rendern von Widgets oder benutzerdefinierten UI-Elementen in Ihrem Spiel verwenden.

Diese zusätzlichen Funktionen bieten Möglichkeiten zur Schaffung interaktiverer und dynamischerer Benutzererlebnisse in Ihren Spielen. Experimentieren Sie mit diesen Funktionen, um einzigartige Funktionen hinzuzufügen und Ihre Spielmenüs und UI-Designs hervorzuheben.

Best Practices für die Integration von GUI

Wenn Sie GUI-Tools mit Arcade in Ihre Spiele integrieren, ist es wichtig, einige Best Practices zu befolgen, um ein reibungsloses und nahtloses Benutzererlebnis zu gewährleisten. Hier sind einige Tipps, die Sie beachten sollten:

Plan und Prototyp

Bevor Sie mit der Implementierung beginnen, nehmen Sie sich Zeit für die Planung und Prototyperstellung Ihrer Spielmenüs und UI-Elemente. Berücksichtigen Sie Layout, Funktionalität und visuelle Ästhetik, um ein kohärentes und benutzerfreundliches Design zu gewährleisten.

Halten Sie es konsistent

Behalten Sie einen einheitlichen visuellen Stil und ein einheitliches Layout in Ihren Spielmenüs und UI-Elementen bei. Dies hilft Benutzern, einfacher durch Ihr Spiel zu navigieren und sorgt für ein zusammenhängendes Erlebnis.

Sich anpassendes Design

Gestalten Sie Ihre UI-Elemente so, dass sie reaktionsfähig und an verschiedene Bildschirmgrößen und Auflösungen anpassbar sind. Dadurch wird sichergestellt, dass Ihre Spielmenüs und Ihre Benutzeroberfläche auf verschiedenen Geräten nutzbar und optisch ansprechend bleiben.

Effizientes Event-Handling

Behandeln Sie Benutzereingabeereignisse effizient, um reaktionsschnelle und reibungslose Interaktionen sicherzustellen. Vermeiden Sie unnötige Berechnungen oder Ereignisverarbeitungen, die zu Verzögerungen oder Verzögerungen bei der Reaktionsfähigkeit der Benutzeroberfläche führen könnten.

Benutzer-Feedback

Geben Sie Benutzern klares und sofortiges Feedback, wenn sie mit Ihren Spielmenüs und UI-Elementen interagieren. Visuelle Hinweise, Animationen und Audio-Feedback in Spielen kann das Benutzererlebnis verbessern und dafür sorgen, dass sich das Spiel ausgefeilter anfühlt.

Wenn Sie diese Best Practices befolgen, können Sie Spielmenüs und UI-Designs erstellen, die intuitiv und optisch ansprechend sind.

Erhöhen Sie die Benutzerinteraktion mit einer optisch ansprechenden Benutzeroberfläche

Das Hinzufügen von GUI-Elementen zu Ihrem Spiel verbessert nicht nur die Benutzerfreundlichkeit, sondern erhöht auch die visuelle Attraktivität und das allgemeine Engagement der Spieler. Unabhängig davon, ob Sie ein Startmenü, ein Game-over-Screen oder ein anderes UI-Element erstellen, bieten die GUI-Tools von Arcade eine Reihe von Features und Funktionalitäten, um das Benutzererlebnis Ihres Spiels zu verbessern.