Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Architekt

Community-Fossil

  • »Architekt« ist der Autor dieses Themas

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

1

21.09.2010, 19:34

Zufällige Platzierung

Ich bin zur Zeit dabei ein kleines Spiel im Sinne von Asteroids zu programmieren.
Allerdings bin ich nun, wo ich mehr als 4 Asteroiden habe (welche ich bislang einfach zu Probe zwecken in den 4 Ecken platziert habe) an ein Problem gestoßen, bzw. eine Frage.
Wo und wie platziere ich am besten die weiteren Asteroiden? Da es ja in jedem späteren Level mehr und mehr Asteroiden geben wird, wären die Ecken nicht geeignet, da die einzelnen Asteroiden miteinander kollidieren würden und das Spiel womöglich bei mehreren übereinander liegenden und damit kollidierenden Asteroiden hacken würde.
Also was meint ihr? Einfach rund herum im Fenster? Oder an den Rändern (wobei da eine geeignete Methode noch gefunden werden müsste)? Oder was ganz neues?
Bin für Vorschläge offen.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

BurningWave

Alter Hase

Beiträge: 1 106

Wohnort: Filderstadt/Konstanz

Beruf: Student

  • Private Nachricht senden

2

21.09.2010, 21:31

Ich würde die Asteroiden im Laufe der Zeit über den Rand ins Spielfeld kommen lassen. Die Richtung und Startposition wäre dabei zufällig, genauso wie der genaue Zeitpunkt, wann ein Asteroid erscheint. Damit keine Asteroiden kollidieren, kann man ja zuvor prüfen, ob sich an der gewählten Position bereits irgend ein Objekt befindet und wenn ja, die Position einfach noch mal berechnen.

Architekt

Community-Fossil

  • »Architekt« ist der Autor dieses Themas

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

3

22.09.2010, 11:36

Ich würde die Asteroiden im Laufe der Zeit über den Rand ins Spielfeld kommen lassen.
Die Richtung und Startposition wäre dabei zufällig, genauso wie der genaue Zeitpunkt, wann ein Asteroid erscheint.

Startposition zufällig? Wie soll das aussehen? Einfach Zufalls Koordinaten zwischen 0 - Breite (x) bzw. 0 - Höhe (y)?
Die Richtung berechne ich bislang aus dem Tangens (mit atan) zwischen Asteroiden Position und Mittelpunkt des Fensters, damit die Asteroiden auf die Mitte des Fensters zusteuern. Oder würdet ihr das ändern? So das die Asteroiden bspw. einfach zufällig durch das Fenster schweben, ohne konkrete Richtung und Ziel.
Und was meinst du mit Zeitpunkt wann der Asteroid erscheint? Bislang packte ich alle erstellten Asteroiden per Funktion gleichzeitig in ein array und durchlaufe diese in der main Funktion zum Updaten & Zeichen etc.
Hier mal der bisherige Code für die Erstellung der Asteroiden.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

MCP

Alter Hase

Beiträge: 513

Wohnort: Paderborn

Beruf: Software-Entwickler

  • Private Nachricht senden

4

22.09.2010, 11:46

Nach einer kurzen Pause will ich mich auch mal wieder melden. ^^

Ich würde bei so einem Spiel auch dazu übergehen die Startposition, Richtung und Geschwindigkeit per Random zu bestimmen. Bei der Geschwindigkeit kann man ja, je nach Level, den Bereich in dem die Zufallszahl liegt, eingrenzen. Richtung und Geschwindigkeit ändern sich dann erst bei einer Kollision.
Die Positionen, an welcher die Asteroiden erscheinen, liegen dann im Fenster und müssen vorher auf Kollision geprüft werden, oder außerhalb und schweben rein, wo man die Kollision überprüfen muss, aber vor allem die Richtung. Immerhin kommt ja alles, was auf der einen Seite rausfliegt, beim Original, auf der anderen Seite wieder rein.
Asteroiden würde ich direkt beim Levelstart erzeugen. Alternativ eben ein Array oder eine Liste nach bestimmten, zufälligen Intervallen füllen.

Architekt

Community-Fossil

  • »Architekt« ist der Autor dieses Themas

Beiträge: 2 481

Wohnort: Hamburg

Beruf: Student

  • Private Nachricht senden

5

22.09.2010, 11:54


Ich würde bei so einem Spiel auch dazu übergehen die Startposition, Richtung und Geschwindigkeit per Random zu bestimmen.

Gut, werde ich dann auch mal so machen. Dann werde ich den Ansatz zwischen 0 und Breite bzw. 0 und Höhe per Random zu platzieren mal ausprobieren. Danke :)


Richtung und Geschwindigkeit ändern sich dann erst bei einer Kollision.

Korrekt, war bislang so und bleibt auch so.


Immerhin kommt ja alles, was auf der einen Seite rausfliegt, beim Original, auf der anderen Seite wieder rein.

Bei meinem "Klon" (wenn man denn so will) ebenfalls.
Der einfachste Weg eine Kopie zu entfernen ist sie zu löschen.
- Stephan Schmidt -

Werbeanzeige