Ausrichten von zusammenhängenden Gebäuden(Straßen, Pipeline)
Übersicht

![]() |
dominikBetreff: Ausrichten von zusammenhängenden Gebäuden(Straßen, Pipeline) |
![]() Antworten mit Zitat ![]() |
---|---|---|
ihr kennt doch sicher "Transport Tycoon" oder "Sim City" wenn man da ne straße baut dann werden erstmal alle Straßen waagrecht gezeichnet (oder senkrecht ka mehr) und dann nach ner sekunde wird jedes einzelne straßenstück ausgerichtet in die richtung wo andere straßenteile angrenzen. so das die wenn z.b links und unten ein straßenstück angrenzen eine kurve eingesetzt wird.
ich hoffe ihr versteht was ich meine. ich brauche des nämlich für ne pipline. seht bei mir dann so aus: Code: [AUSKLAPPEN] Function pipeline_ausrichten()
For haus.gebeude = Each gebeude If haus\hausart = 5 Or haus\hausart = 6 Or haus\hausart = 7 Or haus\hausart = 8 Or haus\hausart = 9 Then For hausa.gebeude = Each gebeude If haus\x - 32 = hausa\x And haus\x + 32 = hausa\x Then haus\hausart = 1 If haus\y - 32 = hausa\y And haus\y + 32 = hausa\y Then haus\hausart = 5 If haus\x - 32 = hausa\x And haus\y + 32 = hausa\y Then haus\hausart = 6 If haus\x - 32 = hausa\x And haus\y - 32 = hausa\y Then haus\hausart = 7 If haus\y - 32 = hausa\y And haus\x + 32 = hausa\x Then haus\hausart = 8 If haus\x + 32 = hausa\x And haus\y + 32 = hausa\y Then haus\hausart = 9 Next EndIf Next End Function also es wird in der äußeren schleife erstma alle gebäude nach nem pipline stück durchsucht und wenn ein gefunden wird dann wird getestet wo an diese stück ein anderes piplinestück angrenzt. erste möglichkeit wäre z.b. das links und rechts ein stück angenzt: Code: [AUSKLAPPEN] If haus\x - 32 = hausa\x And haus\x + 32 = hausa\x Then haus\hausart = 1 steht links davon ein stück?: haus\x - 32 (tiles sind 32 pixel breit) und wenn rechts auch noch eins dranhängt: haus\x + 32 dann wird das stück zu einem waagerechten teil: Then haus\hausart = 1
nur leider wird kein einziges teil auch nur irgentwie ausgerichtet????????? |
||
BB+ 1.41|Sempron 2.8|geforce fx5200|1GB DDR|XP home SP2 / prof. |
Kekskiller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ich glaube, dass gehst du falsch an. Du willst Pipelines zusammenbauen,
ok. Ich hätte das Pipeline-Geflecht in ein Dimfeld geschrieben, welches sagt, ob auf der Position x,y sich eine Pipeline befindet, oder nicht. Und wenn du eine Pipeline setzt, dann änderst du den Wert so, dass er sagt, dasseine Pipeline gesetzt ist. Zusätzlich machst du parralel zu dem Dimfeld einen Pipelinetyp, und fügst jedesmal, wenn du auf x,y im Dimfeld eine Pipeline gebaut hast, auch eine neue Typepipeline ein, in welchen schließlich auch x und y,gespeichert werden. Dann gehts du be der Ausrichtung die Pipeline- Typen durch und fragst ab, ob bei den Positionen im Dimfeld (ausgehend von den Typepositionen) im Umkreis auch Pipelines sind, sprich: Code: [AUSKLAPPEN] for p.pipeline=each pipeline if pipe(p\x+1,p\y)=1 then (Animation auf seite setzen) if pipe(p\x,p\y+1)=1 then (Animation auf seite setzen) if pipe(p\x-1,p\y)=1 then (Animation auf seite setzen) if pipe(p\x,p\y-1)=1 then (Animation auf seite setzen) Also musst die die Positionen herum abfragen und entsprechd setzen. Eigentlich garnicht so kompliziert, man muss nur mal drauf kommen ![]() |
||
![]() |
dominik |
![]() Antworten mit Zitat ![]() |
---|---|---|
mmhh... also entweder hab ich mich falsch ausgedrückt oder du hast es nicht verstanden. genaus das mach ich doch nur anstatt +1 halt +32 weil meine tiles halt 32 pix groß sind. | ||
BB+ 1.41|Sempron 2.8|geforce fx5200|1GB DDR|XP home SP2 / prof. |
getlose |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
nein, +/-1 ist schon richtig, sonst prüfst
du es ja erst 32 felder weiter. |
||
![]() |
dominik |
![]() Antworten mit Zitat ![]() |
---|---|---|
ich prüf aber nicht die positon des feld sonder den inhalt der dadrin gespeichet wird.
wenn ich haus\x + 32 schreib dann werden die 32 zum inhalt gerechnet und nicht zur feldposition. es macht doch auch überahubt keinen sinn einfach nur das nächst gepeicherte feld zu kontrollieren, die felder können ja in einer völlig anderen Reihenfolge gespeichert sein als sie auf der karte gezeichnet sind. |
||
BB+ 1.41|Sempron 2.8|geforce fx5200|1GB DDR|XP home SP2 / prof. |
![]() |
Hubsi |
![]() Antworten mit Zitat ![]() |
---|---|---|
Wär das alles nicht tierisch viel einfacher wenn mans in ein Array speichern würde? ![]() |
||
Den ganzen Doag im Bett umanandflagga und iaz daherkema und meine Hendl`n fressn... |
![]() |
soli |
![]() Antworten mit Zitat ![]() |
---|---|---|
Na sicher ist es einfacher nichtdynamische Daten in Arrays unterzubringen.
Aber man schiesst hier immer gerne mit Kanonen auf Spatzen. |
||
solitaire |
Kekskiller |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Sagte ich ja schon, aber der versteht ja keine praktikable Datenversorgung ![]() |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group