Trainingsprojekt bei Godot - Pong (Teil 2) Erstellen und Aufstellen des Balls

Ich grüße dich, Chabrowiten! In diesem Teil werde ich den Ball für das Pong-Spiel erstellen und anpassen. Wenn Sie den Anfang verpasst haben, dann ist es hier . Die Artikelebene ist noch ein Anfänger.


Unter dem Schnitt gibt es noch viele Screenshots.

Rufen Sie die Kinder an und begrüßen Sie unter Katze.


Zum Bearbeiten wird das Projekt durch Doppelklick auf den Namen des Projekts oder durch Klicken auf die Schaltfläche "Bearbeiten" geöffnet.



Beim Neustart der Engine wurde die zuvor erstellte Szene nicht geöffnet. Sie können es öffnen, indem Sie im Bereich "Dateisystem" darauf doppelklicken. Der analoge Bereich in Unity heißt "Projekt".


Jetzt können Sie den Ball erstellen, die richtige Reihenfolge für diesen Motor, den physischen Körper und seine beiden Erben: den Collider und die Grafiken. Aber ich werde es in einer anderen Reihenfolge tun und gleichzeitig werde ich Ihnen sagen, warum diese Reihenfolge von Knoten benötigt wird.


Das erste, was ich mit dem Ball machen möchte, ist ihn zu sehen. Deshalb werde ich mit den Grafiken beginnen. Ich kann in jedem Bildeditor ein weißes Quadrat mit 3 x 3 Pixeln zeichnen. Ich mache jedoch nicht gerne in einem Drittanbieterprogramm, was ich direkt in der Engine machen kann.


Um der Szene einen Knoten hinzuzufügen, klicken Sie im Szenenfenster auf das Pluszeichen. (Natürlich ist es möglich, das Kontextmenü oder die Tastenkombinationen zu verwenden.)



Im folgenden Fenster wird eine große Liste verschiedener Knotentypen angezeigt. Sie müssen alle angezeigt werden, idealerweise über jeden der Knoten in der Dokumentation gelesen werden oder zumindest alle Knoten direkt in der Liste anzeigen, indem Sie die Beschreibung jedes einzelnen Knotens lesen.


Dies hilft, besser zu verstehen, welche Knoten sich in der Engine befinden und was mit ihnen zu tun ist. Und für unser aktuelles Ziel ist der Polygon2D-Knoten geeignet.



Standardmäßig werden alle Knoten als untergeordnete Knoten relativ zum Stammknoten erstellt. Wenn Sie einen untergeordneten Knoten für einen bestimmten Knoten erstellen müssen, sollten Sie ihn erstellen, indem Sie zuerst den übergeordneten Knoten auswählen. Offensichtlich ist dies beim Wurzelknoten nicht erforderlich.


Es ist Zeit, auf die rechte Seite des Fensters zu achten, es gibt eine Inspektorplatte.



Für die Kleinsten

Ein Quadrat ist eine geometrische Figur, die aus 4 Winkeln und 4 Seiten besteht, wobei alle Seiten gleich sind.


Die Größe des Polygons bestimmt die Anzahl der Winkel, nach denen eine Liste von Punkten angezeigt wird, deren Koordinaten eingegeben werden sollten. Ich persönlich bevorzuge es, von der oberen linken Ecke aus zu beginnen und mich im Uhrzeigersinn um die Punkte zu bewegen. Umriss einer Figur um die Mitte. Standardmäßig ist in Godot die Mitte aller Knoten die obere linke Ecke der Szene. Und die Einführung von Pixelbrüchen ist erlaubt.



Jetzt können Sie „Transformieren“ einrichten und den Ball in der Mitte der Szene positionieren.
Um es besser zu sehen, müssen Sie die Spielszene im Hauptteil des Fensters leicht vergrößern.
Durch Scrollen des Scrollers mit der Maus können Sie die Szene vergrößern und verkleinern. Wenn Sie auf den Scroller klicken und die Maus bewegen, wird die Szene verschoben.



Jetzt müssen Sie den Ball bewegen, und es gibt zwei Hauptwege:


  1. Sie können die Einstellung "Transformieren" ändern und den Ball auf die gleiche Weise bewegen, wie ich ihn in die Mitte der Bühne verschoben habe, jedoch unter Verwendung des Programmcodes und reibungslos.
  2. Und Sie können diesem Diagramm einen Knoten eines physischen Elements hinzufügen, das als "Solid" oder "Physical Object" bezeichnet wird. Bewegen Sie die Wirkung der physischen Engine auf dieses Objekt.

Mit der physischen Engine können Sie die genauesten, reibungslosesten und glaubwürdigsten Bewegungen verwenden, ohne alle komplexen Berechnungen selbst beschreiben zu müssen.


Zusätzlich zur Bewegung des Balls müssen wir noch feststellen, ob der Ball auf den Bildschirmrand gestoßen ist. Wenn konfrontiert, welche Grenze? Hat der Ball einen Schläger getroffen? Wenn mit welchem ​​der Schläger und welchem ​​Teil konfrontiert? Diese Dinge lassen sich jedoch am einfachsten mit einer physischen Engine überprüfen.


Im Allgemeinen gibt es ein sehr einfaches Schema für diese Wahl. Wenn sich alle Objekte im Spiel entlang des Gitters bewegen und es eine Bewegungswarteschlange gibt. Zum Beispiel beginnt ein schwarzer Spieler im Schach seinen Zug nicht, bevor der weiße Spieler seinen Zug beendet hat. Und keiner der Spieler hat das Recht, mehrere Teile gleichzeitig zu bewegen.


In solchen Spielen ist es praktisch, die Einstellungen für "Transformieren" direkt zu ändern.
Für alle anderen Fälle gibt es eine Physik-Engine.


Ich denke, es ist offensichtlich, dass es bequemer ist, die Physik-Engine im Pong-Spiel zu verwenden.


Dazu benötigen Sie den Ball, jetzt ist dies der Knoten "Polygon2D", fügen Sie den Knoten "PhysicsBody2D" hinzu.



Es gibt jedoch drei solcher Knoten: kinematisch, starr und statisch. Nach der Beschreibung:


  1. Kinematik ist ein physisches Objekt, das sich gemäß dem geschriebenen Programmcode bewegt und der physischen Engine nicht gehorcht. (Unsere Option)
  2. Rigid ist ein physisches Objekt, das der physischen Engine vollständig untergeordnet ist.
  3. Statisch ist ein bewegungsloses physisches Objekt.

Analoge dieser Knoten sind in allen mir bekannten Spiel-Engines verfügbar und haben in Unity dieselben Namen und Eigenschaften.


Nach dem Hinzufügen des Knotens "KinematicBody2D" wird eine Fehlerbenachrichtigung angezeigt.



Wenn Sie den Mauszeiger darüber halten, wird deutlich, dass die Fehlerursache das Fehlen einer Collider-Maske für diesen Knoten ist. In diesem Fall wurde mir eine von zwei Optionen angeboten: CollisionShape2D oder CollisionPoligon2D.


Ich habe bereits versucht, ein Polygon zu erstellen, jetzt möchte ich das Formular betrachten. Was bei der Erstellung einen weiteren Fehler meldet. Diesmal sagt sie, dass die Maske dort zu sein scheint, aber niemand hat die Maskenform erstellt.


Es wird im Bereich "Inspektor" erstellt. Für unser Quadrat ist die Form „RectangleShape2D“ mit den folgenden Einstellungen geeignet.



Jetzt können Sie den Ball auf dem Bildschirm bewegen, aber mit der physischen Engine können Sie den „physischen Körper“ nur mit allen Erben bewegen und er bewegt sich relativ zu seinem Elternteil. In diesem Fall bewegt sich der Körper zusammen mit dem Kollider relativ zu dem auf der Bühne gezeichneten Quadrat, das auf dem Bildschirm stationär bleibt. Das Update ist sehr einfach:


  • Damit sich der physische Körper relativ zur Szene bewegen kann, muss er zu einem untergeordneten Knoten der Szene gemacht werden.


  • Damit sich das gezeichnete Quadrat mit dem physischen Körper bewegen kann, muss es in Bezug auf den physischen Körper zum Kind gemacht werden.


Wenn ich nun den physischen Körper bewege, bewege ich die Kollisionsmaske zusammen mit dem gezeichneten Quadrat.


Der Ball ist bereit sich zu bewegen, das nächste Mal werden wir ihn endlich starten und sehen, wie er im Spiel aussehen wird.


Ich freue mich über Ihre Kritik in den Kommentaren.

Source: https://habr.com/ru/post/de466491/


All Articles