Der Martin: Bereiche definieren (div. Programmiersprachen)

Beitrag lesen

Hallo,

Wie kann man einen bestimmten bereich definieren?

Ich möchte einen bereich definieren (hier weiß) wo sich der rote Kreis aufhalten darf und sobald er diesen Verlässt es einen Meldung etc. gibt.

wieviel Aufwand willst du dafür treiben? Es gibt unzählige Wege.

Einen einzelnen quadratische bereich zu definieren ist einfach (if abfragen wenn ball_xy ausserhalb von screen_xy dann soll er alarm machen)

Daraus folgt gleich die erste Möglichkeit:

1. Definiere den Bereich als Liste von Rechtecken, die sich ruhig teilweise überlagern dürfen. Deine Beispielgrafik würde ich z.B. mit 7 Rechtecken darstellen. Die Koordinaten des abgefragten Punktes müssen dann mindestens für eines dieser Rechtecke die Bedingung "innerhalb" erfüllen.

Aber wir haben ja noch mehr. ;-)

2. Definiere das gesamte Spielfeld als zweidimensionales Array, in dem du für jedes Planquadrat vermerkst, ob der Aufenthalt dort erlaubt ist oder nicht. Da eine boolsche Information pro Feld genügt, hält sich der Speicherbedarf in Grenzen, wenn man die Granularität nicht zu fein wählt.

3. Male das Spielfeld einfach als Grafik und frage jedesmal die Farbe des Punktes ab. Ist er schwarz, handelt es sich um einen verbotenen Bereich.

4. Definiere die Außenkanten des erlaubten Bereichs als Polygonzug. Es gibt mathematische Verfahren, dann anhand der Koordinaten zu bestimmen, ob ein Punkt innerhalb oder außerhalb des Polygons liegt (frag mich nicht nach Einzelheiten, ich bin kein Mathematiker). Vorteil: Funktioniert auch mit unregelmäßigen Formen und beliebig schrägen Kanten, und ist beliebig skalierbar.

Viel Spaß dabei,
 Martin

--
Um die Wahrheit zu erfahren, muss man den Menschen widersprechen.
  (George Bernhard Shaw)