Zum Hauptinhalt springen

Wie zeichne ich einen Bogen in einer Arcade-Python

Arcade-Python – es ist eine praktische Programmierbibliothek in Python, mit der Sie Spiele und grafische Anwendungen erstellen können. Es bietet verschiedene Werkzeuge und Funktionen für die Arbeit mit Grafiken, Ton und Tastatureingaben, wodurch der Entwicklungsprozess angenehm und einfach wird.

Eines der nützlichsten Werkzeuge, die es bietet arcade-Python, ist die Fähigkeit, Bögen zu zeichnen. Bögen sind gekrümmte Linien, die verwendet werden können, um verschiedene Formen und Elemente der Spielwelt zu erstellen. Sie können beispielsweise schöne Landschaften, Animationen oder Bewegungseffekte erstellen.

Zum Zeichnen von Bögen in python arcade es gibt eine spezielle Funktion – create_arc(). Sie können die Koordinaten des Mittelpunkts des Bogens, seinen Radius, den Anfangs- und Endwinkel, die Farbe und die Linienstärke angeben. Dies bietet mehr Flexibilität bei der Arbeit mit Bögen und ermöglicht die Implementierung verschiedener visueller Effekte in einem Spiel oder einer Anwendung.

Installieren der Arcade-Bibliothek

Zuerst müssen Sie die Arcade-Bibliothek in Ihrer Python-Umgebung installieren. Dazu können Sie das Pip-Paketinstallationstool verwenden. Öffnen Sie eine Eingabeaufforderung oder ein Terminal und führen Sie den folgenden Befehl aus:

pip install arcade

Nachdem Sie diesen Befehl ausgeführt haben, lädt pip die Arcade-Bibliothek automatisch herunter und installiert sie auf Ihrem Computer.

Wenn Sie eine Version von Python installiert haben, die Sie nicht bereits verwenden, können Sie mit dem venv-Tool eine virtuelle Umgebung erstellen, um Konflikte mit Paketversionen zu vermeiden. Führen Sie dazu die folgenden Befehle aus:

python -m venv myenv

Nachdem Sie die virtuelle Umgebung aktiviert haben, installieren Sie die Arcade-Bibliothek wie oben beschrieben mit dem Befehl pip.

Glückwunsch! Jetzt können Sie mit der Arcade-Bibliothek beginnen, um faszinierende Spiele und grafische Anwendungen in Python zu erstellen.

Fenster und Leinwand erstellen

Bevor wir einen Bogen in der Arcade-Bibliothek zeichnen, müssen wir ein Fenster und eine Leinwand erstellen, auf der wir zeichnen werden.

Um ein Fenster und eine Leinwand zu erstellen, benötigen wir mehrere Codezeilen:

window = arcade.Window(WIDTH, HEIGHT, "Mein Spiel")

In der ersten Zeile importieren wir die Arcade-Bibliothek, um ihre Funktionalität zu nutzen.

Dann erstellen wir zwei Konstanten, WIDTH und HEIGHT, die die Größe des Fensters bzw. der Leinwand bestimmen. In diesem Beispiel legen wir die Werte für die Breite auf 800 Pixel und für die Höhe auf 600 Pixel fest.

Als nächstes erstellen wir ein Fensterobjekt mit einer Funktion arcade.Window, indem Sie die Werte WIDTH und HEIGHT sowie die Zeile mit dem Namen des Fensters "Mein Spiel" übergeben.

In der letzten Codezeile rufen wir die Funktion auf arcade.run(), die eine Spielschleife startet und ein Fenster auf dem Bildschirm anzeigt.

Jetzt haben wir ein Fenster und eine Leinwand, auf der wir einen Bogen zeichnen können.

Zeichnen eines Bogens auf Leinwand

Sie müssen die Arcade-Methode verwenden, um einen Bogen auf einer Leinwand in der Python-Arcade-Bibliothek zu zeichnen.draw_arc(). Mit dieser Methode können Sie einen Bogen mit einem bestimmten Radius, Anfangswinkel, Endwinkel und Farbe zeichnen.

ParameterTypDie Beschreibung
center_xfloatX-Koordinate des Mittelpunkts des Bogens
center_yfloatDie y-Koordinate des Mittelpunkts des Bogens
radiusfloatBogenradius
start_anglefloatWinkel des Bogenanfangs
end_anglefloatEndwinkel des Bogens
color(int, int, int)Die im RGB-Format angegebene Bogenfarbe
border_widthfloatBogenumgrenzungsstärke (Standardwert 1)

Hier ist ein Beispielcode, der einen Bogen auf die Leinwand zeichnet:

arcade.draw_arc(WIDTH / 2, HEIGHT / 2, 100, 0, 180, arcade.color.RED, 5)

arcade.open_window(WIDTH, HEIGHT, "Zeichnen eines Bogens")

arcade.schedule(on_draw, 1 / 60)

In diesem Codebeispiel wird ein Fenster mit einer Größe von 600 x 400 Pixeln erstellt, in dem ein Bogen mit einem Radius von 100 Pixeln, einem Mittelpunkt in der Mitte des Fensters, einem Anfangswinkel von 0 Grad, einem Endwinkel von 180 Grad und einer roten Farbe gezeichnet wird. Die Dicke der Bogengrenze beträgt 5 Pixel.

Festlegen von Bogenoptionen

Es gibt mehrere Optionen zum Zeichnen eines Bogens in der Arcade-Bibliothek, die Sie anpassen können:

center_x, center_y - koordinaten des Mittelpunkts des Bogens

radius - Bogenradius

start_angle, end_angle - anfangs- und Endwinkel (in Grad) zum Zeichnen eines Bogens

color - farbe des Bogens

border_width - breite des Bogenrahmens (Standard ist 1)

tilt_angle - neigung des Bogens

Um einen Bogen zu zeichnen, müssen Sie ein Arcade-Objekt erstellen.Arc. Um beispielsweise einen roten Bogen mit einem Mittelpunkt an einem Punkt (100, 100) und einem Radius von 50 Pixeln zu zeichnen, verwenden Sie Winkel zwischen -90 und 90 Grad:

// Importieren Sie die Arcade-Bibliothek

window = arcade.open_window(WIDTH, HEIGHT, "Mein Arcade-Programm")

// Passen Sie die Parameter des Bogens an

arcade.draw_arc_outline(center_x, center_y, radius, start_angle, end_angle, color, border_width, tilt_angle)

// Starten Sie den Bildschirmaktualisierungszyklus

Auf diese Weise können Sie die Arc-Einstellungen anpassen und sie in Ihrem Arcade-Python-Programm mit der Arcade-Bibliothek zeichnen.

Animieren der Bogenbewegung

Sie müssen die Klassen Sprite und SpriteList verwenden, um eine Bogenbewegungsanimation in der Arcade-Bibliothek zu erstellen.

Ein Sprite stellt ein Objekt dar, das auf dem Bildschirm gezeichnet und bewegt werden kann, und eine SpriteList ist eine Liste von Sprites, die das Rendern und Verschieben von Sprites steuert. In unserem Fall wird das Sprite einen Bogen darstellen, und die Sprite-Liste enthält nur diesen Bogen.

Zuerst müssen Sie eine Klasse für unseren Bogen erstellen, indem Sie sie von der Arcade-Klasse erben.Sprite:

class ArcSprite(arcade.Sprite):def __init__(self, start_angle, end_angle, cx, cy, r, color, width):super().__init__()self.texture = arcade.make_soft_ellipse_texture(int(2*r), int(2*r), color, color)self.center_x = cxself.center_y = cyself.angle = start_angleself.width = widthself.start_angle = start_angleself.end_angle = end_angleself.r = rself.color = color

Im Konstruktor legen wir die Textur des Bogens mit der Funktion make_soft_ellipse_texture aus dem Arcade-Modul fest, legen den Anfangsdrehwinkel, die Koordinaten des Mittelpunkts des Bogens, den Radius, die Farbe und die Linienstärke fest.

Als nächstes erstellen wir die Hauptanwendungsklasse mit der Arcade-Klasse.Window:

class MyGame(arcade.Window):def __init__(self, width, height, title):super().__init__(width, height, title)arcade.set_background_color(arcade.color.WHITE)self.arc_sprite_list = arcade.SpriteList()# Создание дуги и добавление её в список спрайтовstart_angle = 0end_angle = 180cx = width // 2cy = height // 2r = 100color = arcade.color.BLUEwidth = 5self.arc_sprite = ArcSprite(start_angle, end_angle, cx, cy, r, color, width)self.arc_sprite_list.append(self.arc_sprite)def on_draw(self):arcade.start_render()# Отрисовка спрайтовself.arc_sprite_list.draw()def on_update(self, delta_time):# Перемещение дугиself.arc_sprite.angle += 1

Erstellen Sie im Klassenkonstruktor eine Liste mit arc_sprite_list-Sprites und fügen Sie den erstellten arc_sprite-Bogen hinzu. Zeichnen Sie dann in der Methode on_draw alle Sprites aus der Liste. Ändern Sie in der on_update-Methode den Drehwinkel des Bogens, um einen Bewegungsanimationseffekt zu erzeugen.

Um die Animation zu starten und das Anwendungsfenster anzuzeigen, erstellen Sie ein MyGame-Objekt und rufen die run-Methode auf:

if __name__ == "__main__":window = MyGame(800, 600, "Animation of arc movement")arcade.run()

Jetzt, wenn das Programm gestartet wird, sehen wir ein Fenster mit einer Animation der Bogenbewegung.

Interaktivität hinzufügen

Sie können eine Anwendung, die auf der Arcade-Bibliothek basiert, mit verschiedenen Tools interaktive Elemente hinzufügen. Ein solches Element ist die Möglichkeit, Benutzeraktionen mithilfe von Tastatur- und Mausereignissen zu verfolgen und zu verarbeiten.

Um beispielsweise eine Änderung der Bogenposition mithilfe der Tastatur zu implementieren, können Sie den folgenden Code verwenden:

import arcadeclass MyGame(arcade.Window):def __init__(self, width, height):super().__init__(width, height)self.arc_start = 0def on_key_press(self, key, modifiers):if key == arcade.key.LEFT:self.arc_start -= 1elif key == arcade.key.RIGHT:self.arc_start += 1def on_draw(self):arcade.start_render()arcade.draw_arc_filled(200, 200, 100, 100, arcade.color.BLUE, self.arc_start, self.arc_start + 180)

In diesem Beispiel ändert sich der Wert self, wenn Sie die Tasten links und rechts drücken.arc_start , wodurch die Position des Bogens geändert wird.

Sie können auch Interaktivität mit der Maus hinzufügen. Ändern Sie beispielsweise die Position eines Bogens, wenn Sie auf einen bestimmten Bereich des Bildschirms tippen:

import arcadeclass MyGame(arcade.Window):def __init__(self, width, height):super().__init__(width, height)self.arc_start = 0def on_mouse_press(self, x, y, button, modifiers):if x > 300 and x < 400 and y >300 and y < 400:self.arc_start += 1def on_draw(self):arcade.start_render()arcade.draw_arc_filled(200, 200, 100, 100, arcade.color.BLUE, self.arc_start, self.arc_start + 180)

In diesem Beispiel, wenn Sie auf den Bildschirmbereich mit den Koordinaten klicken (300, 300) - (400, 400) der Wert von self.arc_start wird vergrößert, wodurch sich die Position des Bogens ändert.

Das Hinzufügen von Interaktivität zu einer auf der Arcade-Bibliothek basierenden App macht es für die Benutzer spannender und interessanter.