Andere Straße an "streetSecondConnection"

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


  • Hi ich bräuchte mal wieder Eure Hilfe !


    Ich will an dem 2. Straßenanschluß eine andere Straße hinsetzen ( mit Parkbuchten ) allerdings wird dort ja die addRoadEdgeMapped benutzt für die Radienanpassung !


    Soweit läd alles aber wenn ich die Station mit dem 2. Anschluß bauen will kommt die Fehlermeldung:



    Ich hoffe mir kann jemand sagen wie ich es richtig schreiben muß damit die addRoadEdgeMapped als roadEdges genommen werden !?!


    Hier mal der passende Quellcode und die Funktion dazu






    Code
    local function addRoadEdgeMapped(p, q)
    		local pm = mapping.getPos(p[1], p[2], p[3])
    		local qm = mapping.getPos(q[1], q[2], q[3])
    
    		local t = vec3.sub(qm, pm)
    		table.insert(roadEdges, { vec3.toArray(pm), vec3.toArray(t) })
    		table.insert(roadEdges, { vec3.toArray(qm), vec3.toArray(t) })
    	end
  • Nur so beim drüber schauen, roadEdges der Funktion addRoadEdgeMapped sieht sehr verdächtig aus. (Auch wenn die Funktion via einer globalen Variable an roadEdges kommen kann, eine Zuweisung mit Funktionsaufruf die die Variable auch ändert kann nicht gut gehen.




    Darüber hinaus gibt die Funktion keinen Wert zurück.



    Dh. das Ergebnis von:



    roadEdges = roadEdges = { {addRoadEdgeMapped({ roadLeftX, roadY, 0 }, { roadLeftX - roadLen, roadY, 0 })}, ...



    Würde dann


    roadEdges = { nil }, ...


    Das kann irgendwie so gar nicht stimmen...

  • Jo das war ja auch nur ein Versuch normal steht ja das was hinter den -- steht


    dann nimmt er aber den gleichen Straßentyp wie am Hauptanschluß.


    Wüsstest du wie man es richtig Skripten muss das er separat die addRoadEdgeMapped als edges nimmt?


    Und Danke das du mal rüber geschaut hast.

  • Also erst mal würde ich bei solchen Funktionen ungern irgendwelche globals nutzen.


    Bedenke das du für jeden Eintrag in edgeLists eigene Snapnodes und roadEdges definieren muss. (Deine Snapnodes sehen verdächtig aus)


    Daher würde ich addRoadEdgeMapped um einen Parameter für roadEdges erweitern.



    local function addRoadEdgeMappedNew(roadEdges, p, q)


    ..



    (Vorsicht das maskiert eine etwaige andere Variable, aber wie gesagt globals sind immer Böse)


    Dann kannst Du es so nutzen und hast keine Wechselwirkung mit etwaigen andern Straßenanschlüssen:
    local secondEdges = {}
    local secondSnapNodes = {}
    addRoadEdgeMappedNew(secondEdges, vec1, vec2)



    ..




    result.edgeLists[#result.edgeLists + 1] = {


    ...
    edges = secondEdges,


    snapNodes = secondSnapNodes,


    }


    Auch hier wieder, ich hab das nur kurz überflogen.



    Mein Rat ist, benutze keine globals und übergebe alles als Parameter zur einer Funktion. Dann gibt es auch keine ungewollten Interaktion.

BlueBrixx