kollision isometrisch

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • kollision isometrisch

    hallo,

    ich habe da ein projekt am laufen,

    leider komm ich ab und zu auf probleme...

    Problem: ein objekt, eine isometrische starße, soll schecken, ob oben unten rechts und oder links andere straßenteile sind, sodass diese sich auomatisch anpassen kann...

    wie mach ich das am besten?
  • Du brauchst am besten ein ds_grid was deine Welt repräsentiert, jede Koordinate repräsentiert einen Isometrischen Block (zB. 0=nichts,1=erde,2=straße...)

    das Grid malst du indem du die koordinaten umwandelst

    GML-Quellcode

    1. m = round(y/height - x/width)
    2. n = round(y/height + x/width)


    m -> zeile von oben links nach unten rechts \ \ \
    n -> zeile von unten links nach oben rechts / / /

    Um zurück in x/y kooridnaten umzurechnen :
    x = (n - m)/2 * w
    y = (n + m)/2 * h

    um abzufragen ob eine straße daneben ist benutzt du die eingebauten ds_grid Funktionen
    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel:
  • Bevor jetzt hier irgendjemand in der Community meint dir hier ein Code-Beispiel, oder ein übertrieben langes Tutorial in dieses Thema reinzuklatschen, obwohl es schon massig gibt. (da will ich ja einige Personen lieber nicht angucken.)

    Solltest du vielleicht erstmal wissen, was ein ds_grid ist, geschweige denn, überhaupt eine Datenstruktur.
    Du solltest lernen, wie man ds_ benutzt und für was es alles gut sein kann.

    Dafür hier einmal die Yoyo Docs Einträge für DS und ds_grid:

    DS: docs.yoyogames.com/source/dadi…ata structures/index.html

    ds_grid: docs.yoyogames.com/source/dadi…tures/ds grids/index.html

    Ansonsten hilft Google.

    Wenn du erstmal weist was das ist und wie man sowas einbaut, dann kannst du am besten weiter machen, da ich finde, dass die ds_ Funktionen eindeutig zu einer der wichtigeren Funktionen gehören.

    -Nils
  • Das soll keine Kritik an deiner Person sein, aber diese Selbsteinschätzung dient dem Zweck der Problemlösung. Dadurch kann man Lernstandgerechte Antworten verfassen. Und Datenstrukturen sind nunmal grundlegender Bestandteil einer Hochsprache, die man als Fortgeschrittener kennen sollte. Desshalb ist mein Lösungsvorschlag dir eventuell zu kompliziert.
    132 little bugs in the code. 132 little bugs. Fix a few, set the compiler to stew, 172 little bugs in the code... :vogel:
  • Grids sind extrem hilf reich. Klingt zwar doof aber ohne grids wüsten ich und bestimmt so viele andere hier nicht wie sie gewisse sachen umsetzten sollten.

    Aber wie ich auch das in der Skypekonservations dir gezeigta hatte. Sind grid nichts anders als eine Art Kariertes Papier in der du in jedes Kästen einen Wert ( Inforamtion )speichern kannst.
    Die spalten sind die X-Achse und die Zeilen sind auf der Y-Achse.
    Somit hast du also ein 2 Dimensionales Koordianten system mit dem du also mit x und y einen Wert in ein Bestimtest Kästchen Schreiben kannst und Auslesen kannst.

    Aber zu deinen Problem. Welches ich dir auch über skype erklärt hatte.
    Jeder block der ja so od erso schin auch einen 2d Koordiantne System ist ,soll einen Wert in ein Grid speicher. 0=grass 1=Wohnhaus 2=strasse. usw usw.........
    Nun brauch die straße nur noch zu gegebener Situation abfragen ob links recht oben oder unten zb der 2 (für strass) ist. wenn nicht so dir eine 0 zurück gegeben werden.
    Ich habe dann alle 4 Werte in einen String gewandelt und bekomme so einen Einamliegen Code für jede Straßen Kostelation hin.

    Ohne eigenWerbung...Aber der ein oder andere wird sich noch an mein Altes Projekt The City errinern....genau so hab ich meine Strassen und Schienen gebaut.

    Lies dich unbedingt mal bei grids ein. Und du wirst sehen das manches viel einfacher umzusetzen ist.
    Grids sind kein Hexenwert. Wenn du es schafst dir ein Blattpapier zu holen und etwas dort rein zu schreiben...dann kannst du grids. es ist nichts anderes.


    GM hild nach ds_grid suchen.....
    Meine Signatur hat kein Visum für das GM Forum erhalten.