|
Home - Programmieren - Visual Basic - Wegpunkte
Hinweis: Für den hier dargestellte Inhalt ist nicht der Betreiber der Plattform, sondern der jeweilige Autor verantwortlich. Falls Sie Missbrauch vermuten, bitten wir Sie, uns unter missbrauch@it-academy.cc zu kontaktieren. [Druckansicht] [Als E-Mail senden] [Kommentar verfassen] Einleitung Oft hat man beim Programmieren von Computerspielen das Problem, dass der Spieler ein Objekt steuern kann, indem er es anklickt und danach auf den Zielort. Dabei kann der Spieler meistens auch gleich mehrere Zielorte angeben, die das Objekt, z.B. eine Spielfigur, hintereinander abläuft. Wie bekommt man nun heraus, wo die Figur herlaufen muss, um ans Ziel zu gelangen? Ich möchte hier eine Klasse entwickeln, die dieses Problem löst. Hindernisse, die evtl. im Weg der Figur stehen könnten werden hierbei nicht berücksichtigt. Wir brauchen erst mal die X und die Y-Koordinaten der Figur. Die Geschwindigkeit wird ebenfalls benötigt.
Außerdem brauchen wir ein Array in dem die X und die Y-Koordinaten der Zielpunkte gespeichert werden.
Nun schreiben wir eine Methode, die der Figur einen neuen Punkt mitteilt:
Damit der Spieler vielleicht zuviel gesetzte Wegpunkte wieder entfernen kann, brauchen wir eine Methode, die diese Wegpunkte aus dem Array löscht:
Die Methode MoveToWaypoint veranlasst die Figur einen Schritt zum Zielpunkt zu gehen. Wenn man sie im MainLoop des Spiels aufruft, sieht es so aus, als würde sich die Figur kontinuierlich auf das gewünschte Ziel zu bewegen.
In der Prozedur geschieht folgendes:Die Hypothenuse wird aus den Koordinaten der Figur und des Zielorts berechnet. Die Hypothenuse ist die Länge der Strecke, die die Figur zurückzulegen hat. Steps bezeichnet die Anzahl der Schritte, die das Objekt bis zum Zielpunkt machen muss. a / steps bzw. b / steps ist die Länge des Schritts, den wir die Figur in diesem Durchlauf verschieben müssen. Zuletzt überprüfen wir, ob wir schon am Ziel sind. Wenn ja, wird der aktuelle Wegpunkt aus dem Array entfernt und der nachfolgende Wegpunkte rutscht eine Position höher im Array, so dass beim nächsten Durchlauf der MainLoop-Schleife dieser Punkt das Ziel der MoveToWaypoint-Methode ist.
|
Autoren:04150
Artikel:00819 Glossar:04124 News:13569 Userbeiträge:16268 Queueeinträge:05150
Projektsteuerung statt Anwesenheitskontrolle
MONDroid - your monitoring Solution for Android with PRTG-Support Red-Hosting jetzt mit erweitertem Shop-Webhosting-Angebot [Mehr News]
Ihre Anforderungen an ein Online-Zeiterfassungs-Produkt?
|