Kollisionen

Willkommen in der Transport Fever Community

Wir begrüßen euch in der Fan-Community zu den Spielen Transport Fever und Train Fever, den Wirtschaftssimulatoren von Urban Games. Die Community steht euch kostenlos zur Verfügung damit ihr euch über das Spiel austauschen und informieren könnt. Wir pflegen hier einen freundlichen und sachlichen Umgang untereinander und unser Team steht euch in allen Fragen gerne beiseite.

 

Die Registrierung und Nutzung ist selbstverständlich kostenlos.

 

Wir wünschen euch viel Spaß und hoffen auf rege Beteiligung.

Das Team der Transport-Fever Community


  • Werte Gemeinde,


    Bei einem Projekt, das nahe am Wasser gebaut ist (in jeder Hinsicht, bin schon fast ein Jahr dran ;(), suche ich noch eine elegante Methode für Kollision und Nicht-Kollision.

    Ich will nicht, daß Schiffe durchfahren; also ist skipCollision=true in der .con keine Lösung.

    Wenn ich boundingInfo und collider hinreichend hoch setze, bekomme ich es hin, daß es keine Kollision mit dem Wasser gibt. Ich will aber (optional) eine Kette anbieten, die teilweise im Wasser hängt. Die Kettenglieder werden so gedreht, daß ich keine, relativ zum Kettenglied feste, Position für einen collider angeben kann, die auf jeden Fall in der Luft ist.


    Häßliche Lösung: Ich definiere drei oder vier verschiedene Kettenglieder; dann kann ich immer eines nehmen, bei dem der collider/boundingInfo in der Luft ist.


    Gibt es eine elegante Lösung, bei der ich für eine einzelne .mdl die Kollisionsprüfung ausschalte, während sie für alle anderen .mdls noch funktioniert? Wenn ja, wie?


    Zusatzfrage: Kann jemand erklären, wie boundingInfo und collider zueinander stehen? Irgendwie können beide Kollisionen verursachen. Gibt es von beiden unabhängig Kollisionen? Kollidiert die boundingInfo nur, wenn es keinen collider gibt? Wird bei fehlendem collider vom Programm einer aus der boundingInfo gebastelt?

    13! = 13*12!

  • Danke für die Antwort. Collider kann man auch in Modellen angeben, und sie funktionieren - irgendwie. Es scheint aber alles ein bißchen merkwürdig zu funktionieren; wohl als Ergebnis der Entwicklungsgeschichte von TpF.


    Einige Sachen habe ich inzwischen herausgefunden:

    - boundingInfo ist für Erdarbeiten, aber auch für das Blockieren von schiffbaren Wasserflächen (diese 32x32-m²-Quadrate) zuständig.

    - Mit skipCollision=true in der Konstruktion funktioniert die boundingInfo immer noch für Erdarbeiten und Blockade von schiffbaren Wasserflächen.

    - Mit results.terrainAlignmentLists ist die boundingInfo nicht mehr für die Erdarbeiten, aber immer noch für die Blockade der Wasserflächen zuständig (löst mein Ketten-Problem).

    - Wenn man die Höhe der boundingInfo gleich 0 hat (beide z-Koordinaten gleich; andere nicht ausprobiert), werden auch keine Erdarbeiten durchgeführt.

    - Der collider dafür, ob sich das Modell/die Konstruktion mit anderen Modellen/Konstruktionen zankt (leider einschließlich der Wasseroberfläche ...).
    - Wenn es keinen collider gibt, wird statt dessen die boundingInfo herangezogen.

    - Auch eine punktförmige boundingInfo (bbMin = bbMax) kollidiert dann noch.

    - skipCollision=True blockiert einen Collider nicht nur in den Modellen, sondern auch in der Konstruktion (wozu eigentlich?). VacuumTube kann sein "vermutlich" streichen.

    - Wenn die Konstruktion einen Collider hat, werden die Collider der Modelle nicht mehr ausgewertet.

    - Ein Collider kollidiert nicht mit Schiffen (und wahrscheinlich auch nicht mit anderen Fahrzeugen.


    - Eine schiffbare Wasserfläche wird blockiert, wenn ihr Mittelpunkt in/unter der boundingInfo-Box liegt (d. h. die Box darf auch über dem Wasser schweben und wirkt doch). Das scheint auch die Wirkungsweise bei den Häfen von UG zu sein.

    - Eine so blockierte Wasserfläche kann genau dann von Schiffen befahren werden, wenn ihr Start- oder Zielpunkt in ihr liegt. Ansonsten blockiert sie die Schiffahrt; man kann also mit einem Hafen einen Fluß sperren.

    - Die Meldung "die Docks befinden sich ausserhalb von befahrbarem Gewässer" scheint nichts mit boundingInfo zu tun haben.


    Um zu verhindern, daß Schiffe durch ein Gebäude im Wasser fahren, muß man also die boundingInfo ausdehnen, aber nicht so weit, daß eine Ein-Kästchen-Fahrrinne zwangsläufig blockiert wird. Ich fürchte, das bringt mich so nahe an die Lösung für die Schiffe, wie es geht. Jedenfalls hat der Schönbauer da noch etwas zu tüfteln.

    13! = 13*12!

BlueBrixx