Antworten auf deine Fragen:
Neues Thema erstellen

U-Bahn soll auf Gleis (Pfad) fahren

Vladutz

Noch nicht viel geschrieben

Hallo Leute,
ich habe ziemlich lange recherchiert und leider nichts gefunden. Kurz und knapp will ich dass ein Zug ein Pfad folgt. Mit dem klassischen Tween geht des, aber ich will des mit AS3 programmieren.
Ich hoffe ihr könnt mir mit einen kleinen Beispiel weiterhelfen.

mfg

kann mir keiner helfen????
 
Zuletzt bearbeitet von einem Moderator:

FlashSoft

Besserwisser

AW: U-Bahn soll auf Gleis (Pfad) fahren

Um dies Umsetzen zu können, benötigt man viel Zeit und sehr gute Mathematische Kenntnisse. Selbst etwas, in einem Kreis sich bewegen zu lassen, ist nicht einfach. Bleibe da lieber beim klassischen Tween.
 

Vladutz

Noch nicht viel geschrieben

AW: U-Bahn soll auf Gleis (Pfad) fahren

Ich hab da aber ein anderes Problem. Es sind zwei U-Bahnlinien, die an einer haltestelle zusammentreffen und auf dem selben Gleis weiterfahren. Es sind automatisch betriebene Züge, müssen also selbst erkennen ob in der Haltestelle vor Ihnen noch eine U-Bahn ist oder nicht. Zusätzlich will ich noch was programmieren, und zwar beim Mausklick soll ein Zug ein paar Sekunden länger warten, so dass die anderen Züge auch warten müssen. Deswegen muss ich meines Erachtens nach alles mit ActionScript programmieren damit es so funktioniert.


Wieso kann mir hier keiner helfen?? Kann doch net sein dass es keinen gibt, der erfahrung damit hat
 
Zuletzt bearbeitet:
AW: U-Bahn soll auf Gleis (Pfad) fahren

Ich hab da aber ein anderes Problem. Es sind zwei U-Bahnlinien, die an einer haltestelle zusammentreffen und auf dem selben Gleis weiterfahren. Es sind automatisch betriebene Züge, müssen also selbst erkennen ob in der Haltestelle vor Ihnen noch eine U-Bahn ist oder nicht. Zusätzlich will ich noch was programmieren, und zwar beim Mausklick soll ein Zug ein paar Sekunden länger warten, so dass die anderen Züge auch warten müssen. Deswegen muss ich meines Erachtens nach alles mit ActionScript programmieren damit es so funktioniert.


Wieso kann mir hier keiner helfen?? Kann doch net sein dass es keinen gibt, der erfahrung damit hat

wieso dir keiner helfen kann? was kannst du jetzt oder was hast du bis jetzt gemacht? ich versteh zusätzlich nicht, wie das genau aussehen soll. willst du vorm pc sitzen und auf dem bildschirm läuft irgwendwas ab? oder soll das nen programm werden mit welchem du deine modeleisenbahn steuerst. vorallem den sinn versteh ich nicht.

ansonsten mach dir ne karte, lege "ebenen" an und pro "ebene" einen "pfad", dann brauchst du enn paar "abfragen" und die geschwindigkeit. die movieclips(in deinem fall züge) dürfen sich eben nicht berühren und bevor es zur kollision kommt stoppen sie eben.

so jetzt hast du eine grundlage, genug schlagwörter und nun viel spaß!
 

Vladutz

Noch nicht viel geschrieben

AW: U-Bahn soll auf Gleis (Pfad) fahren

Also ich bin so weit, dass die Züge nen Pfad entland fahren, aber nur als Klassicher Tween. Jetzt müsste ich halt noch programmieren, dass sie alles selbstständig machen, d.h., wenn ein Zug mal ne verspätung haben sollte, sollen die anderen warten. Die Verspätung soll durch einen Mausklick auf dem Zug eintretten. Des Problem ist, ich weiß nicht wie ich den Zügen befehlen soll, dass sie stehen bleiben usw., denn sie sind ja nur eine animation, nicht in actionscript programmiert.
 
AW: U-Bahn soll auf Gleis (Pfad) fahren

ist das nen witz? man hält den film an indem man stop(); einbaut. oder du nimmst ein "warte-script". musste eben mit mehreren movieclips arbeiten. den sinn versteh ich bis jetzt immer noch nicht xD. du brauchst auf jeden fall eine abfrage, kannst du mit den x und y koordinaten machen. oder du legst dir geistermovieclips an, die dannverschiedene namen bekommen und auf alpha = 0; gesetzt sind.
 

Vladutz

Noch nicht viel geschrieben

AW: U-Bahn soll auf Gleis (Pfad) fahren

oke dann erklär ich des nochma. in nürnberg gibt es automatische u-bahnzüge. so ähnlich will ich des machen, bloß in einer 2D ansicht. Die Züge sollen selbstständig die ganze zeit fahren, wenn ich auf ein zug klicke soll er 20 sekunden länger in der haltestelle bleiben wie sonst eingestellt. dannach müssen die anderen züge warten dass der wieder abfährt und sie einfahren können. das sollen sie alles selbstständig machen.

jetzt verstanden?
 
AW: U-Bahn soll auf Gleis (Pfad) fahren

ja, also son sinnlos projekt nur für dich. dann mach das doch einfach, die paar abfragen wirste schon hinbekommen, ich glaub an dich xD.
 

h_seldon

Aktives Mitglied

AW: U-Bahn soll auf Gleis (Pfad) fahren

hm, schwierig. Das wird ja eine richtige Simulation einer Gleisanlage, na dann viel Spaß. So auf die Schnelle wüßte ich keine Lösung; aber rumspielen kann man mal folgendermaßen:

- erstelle eine Datei mit einer Pfadanimation entlang eines gewünschten Schinenennetzes. Je mehr Frames Du verwendest, desto genauer lässt sich später der Pfad berechnen.
- speichere frameweise die Pos des am Pfad entlang bewegten Objektes in ein Array
- lasse am Ende die Daten ausgeben (speichern über php, xml, oder, wenn ohne Server, Ausgabe im Nachrichtenfenster)
- füge die Daten in einer anderen Datei, in der die Ani dargestellt werden soll, ein.
- Animiere ein Objekt durch sukzessives Zuweisen der PosWerte. Die dabei notwendige Drehung des Objekts lässt sich mit atan2 aus den gespeicherten Werten ermitteln. Übrigens: Das kann man auch direkt beim Ermitteln der PosDaten machen und im Array abspeichern, das spart später Rechenzeit.

Beispiel:
Hauptzeitleiste, Instanz train (MovieClip 74 * 15, RegPunkt horizontal und vertikal mittig), Bildskript:

PHP:
var aTrack1:Array = [[585.15, 566.55], [579.2, 560.35], [573.4, 554.05], [567.75, 547.65], [562.25, 541.15], [556.85, 534.6], [551.6, 527.95], [546.45, 521.25], [541.4, 514.5], [536.45, 507.7], [531.6, 500.8], [526.8, 493.95], [522.2, 487.1], [517.75, 480.35], [513.45, 473.5], [509.25, 466.55], [505.15, 459.55], [501.2, 452.45], [497.4, 445.3], [493.75, 438], [490.3, 430.65], [487, 423.2], [483.95, 415.6], [481.15, 407.9], [478.6, 400.1], [476.35, 392.2], [474.4, 384.2], [472.85, 376.1], [471.7, 367.9], [471, 359.65], [470.85, 351.35], [471.2, 343], [472.15, 334.7], [473.7, 326.5], [475.9, 318.4], [478.75, 310.55], [482.15, 302.9], [485.65, 295.6], [489.2, 288.4], [492.85, 281.2], [496.6, 274.05], [500.5, 267], [504.55, 260], [508.8, 253.1], [513.3, 246.35], [518.05, 239.75], [523.2, 233.4], [528.8, 227.45], [535.15, 222.15], [542.45, 217.9], [550.45, 214.45], [558.7, 211.55], [567.05, 209.1], [575.4, 207.05], [583.75, 205.25], [592.1, 203.7], [600.5, 202.3], [608.85, 201.1], [617.15, 200.05], [625.5, 199.15], [633.8, 198.45], [642.2, 197.95], [650.55, 197.65], [658.95, 197.6], [667.3, 197.75], [675.65, 198.15], [684.05, 198.75], [692.4, 199.55], [700.75, 200.55], [709.05, 201.8], [717.35, 203.3], [725.55, 205], [733.75, 206.9], [741.9, 209], [749.95, 211.3], [757.95, 213.85], [765.9, 216.55], [773.8, 219.45], [781.6, 222.55], [789.3, 225.85], [796.95, 229.3], [804.5, 232.9], [811.85, 236.45], [819.05, 240.05], [826.3, 243.75], [833.5, 247.45], [840.65, 251.25], [847.75, 255.15], [854.85, 259.15], [861.9, 263.3], [868.9, 267.5], [875.8, 271.85], [882.65, 276.35], [889.4, 281.05], [896, 285.95], [902.45, 291.05], [908.7, 296.5], [914.6, 302.35], [920, 308.9], [924.25, 316.4], [927.55, 324.4], [930.05, 332.55], [931.95, 340.85], [933.4, 349.2], [934.45, 357.55], [935.2, 365.95], [935.7, 374.4], [935.9, 382.85], [935.85, 391.3], [935.55, 399.75], [935, 408.15], [934.3, 416.55], [933.35, 424.9], [932.25, 433.25], [931, 441.5], [929.55, 449.7], [927.95, 457.85], [926.15, 466], [924.15, 474.1], [921.95, 482.15], [919.55, 490.15], [916.95, 498.1], [914.1, 506], [911.05, 513.75], [907.75, 521.45], [904.25, 528.9], [900.5, 536.25], [896.45, 543.45], [892.1, 550.5], [887.35, 557.3], [882.25, 563.85], [876.7, 570.1], [870.75, 575.95], [864.2, 581.3], [856.9, 586], [849.1, 589.95], [841.1, 593.25], [832.95, 596], [824.7, 598.35], [816.45, 600.35], [808.15, 602.1], [799.8, 603.55], [791.45, 604.75], [783.15, 605.8], [774.8, 606.75], [766.5, 607.65], [758.15, 608.45], [749.8, 609.15], [741.45, 609.8], [733.1, 610.4], [724.75, 610.9], [716.35, 611.35], [708, 611.7], [699.65, 612], [691.25, 612.2], [682.85, 612.3], [674.45, 612.4], [666.1, 612.35], [657.65, 611.6], [649.25, 609.75], [641.15, 607], [633.3, 603.5], [625.8, 599.45], [618.6, 594.9], [611.7, 590], [605.05, 584.8], [598.65, 579.35]];
var nIndex:Number = 0;
var mAllTracks:MovieClip = this.createEmptyMovieClip("contPaint", 0);
var nRad2Grad:Number = 180/Math.PI;
var nInterval:Number;
var nTempo:Number = 25;
function buildTrack(pWhich:Array) {
	nIndex = 0;
	mAllTracks.moveTo(pWhich[nIndex][0],pWhich[nIndex][1]);
	for (var i:Number = 0; i<pWhich.length; i++) {
		mAllTracks.lineTo(pWhich[nIndex][0],pWhich[nIndex][1]);
		nIndex++;
	}
	mAllTracks.lineTo(pWhich[0][0],pWhich[0][1]);
}
function setTrain(pWhich:MovieClip, pWhere:Array, pIndex:Number) {
	pWhich._x = pWhere[pIndex][0];
	pWhich._y = pWhere[pIndex][1];
}
function rotateTrain(pWhich:MovieClip, pTrack:Array, pIndex:Number) {
	var nDistX:Number, nDistY:Number, nAngle:Number, nZiel:Number;
	if (pIndex>=pTrack.length-2) {
		nZiel = Math.abs(pTrack.length-(pIndex+2));
	} else {
		nZiel = pIndex+2;
	}
	nDistX = pTrack[nZiel][0]-pTrack[pIndex][0];
	nDistY = pTrack[nZiel][1]-pTrack[pIndex][1];
	nAngle = Math.atan2(nDistY, nDistX)*nRad2Grad;
	pWhich._rotation = nAngle;
	updateAfterEvent();
}
function moveTrain(pWhich:MovieClip, pTrack:Array) {
	nIndex++;
	if (nIndex>=pTrack.length) {
		nIndex = 0;
	}
	setTrain(pWhich,pTrack,nIndex);
	rotateTrain(pWhich,pTrack,nIndex);
}
function init() {
	mAllTracks.lineStyle(1,0xffffff,100);
	buildTrack(aTrack1);
	nIndex = 0;
	setTrain(train,aTrack1,nIndex);
	rotateTrain(train,aTrack1,nIndex);
	nInterval = setInterval(moveTrain, nTempo, train, aTrack1);
}
init();

sorry, ist as2, geht bei 3 genauso, nur statt createEmptyMovieclip new Shape und zeichnen mit graphics

Wenn es etwas ernsthaftes werden soll, würde ich allerdings anders vorgehen: Erstelle einen Editor, mit dem Du die Gleisanlage zusammen bastelst (eine Art Leveleditor, wenn man so will). Das hat den Vorteil, dass Du Gleisteile mit gleicher Länge und bestimmter Krümmung vorgeben kannst, wodurch sich das Auslesen der Bewegungspunkte bzw. das Berechnen der Zugpos vereinfachen lässt. Zudem kann man so zuverlässig jene Abschnitte bestimmen, bei denen der Übergang von einem Gleis zum anderen erfolgt (das geht ja oben bei meiner Lösung nicht automatisch). Außerdem kannst Du so für eine gleichmäßigere Bewegung sorgen als bei obigem Vorschlag.

Viel Spaß
 

Vladutz

Noch nicht viel geschrieben

AW: U-Bahn soll auf Gleis (Pfad) fahren

danke für die antwort, die hilft mir wirklich weiter. ich versuchs mal. vielleicht klappts
 

Xerkis

Noch nicht viel geschrieben

AW: U-Bahn soll auf Gleis (Pfad) fahren

Ansich total einfach. Kopiere einfach die wirkliche Welt... wie ist es da? Genau, im Notfall zeigen Lichtsignale ob die Strecke vor einem frei ist oder nicht. Wie sieht das nun für dich aus?
Du setzt einfach für jeden Streckenabschnitt ein Feld (logischer Weise solltest du auch auf normalen Streckenabschnitt mehrere Felder setzen wenn du später mehr als 1 Zug auf dem gleichen Gleis einsetzen möchtest). Jedes Feld wird logisch belegt: bsp 0 für blockiert und 1 für frei. Jeder Zug gibt eine Information über das Feld ab, auf dem er steht und setzt das Feld auf dem er zuvor war gleichzeitig wieder zurück. Erweitern kannst du das Ganze indem du Weichen mit 0a, 0b, 1a oder 1b ausfüllen läßt (a und b geben hier an ob Weiche links oder rechts gestellt ist). Kannst du ebenso mit Bahnhöfen machen um Passagiere ein- und aussteigen zu lassen. a heißt dann durchfahren und b wäre dann x Sekunden warten.

Das kannst auch einmal auf dem Papier durchspielen. Funktioniert. :p Das in Programmiersprache umzusetzen schafft auch ein Anfänger. ;) Wie du das mit dem Mausklick machst kann ich dir allerdings nicht sagen. Nicht vergessen das der Zug bei Betreten des neuen Feldes 2 Aktionen ausführen muss: 1. Feld das er betritt blockieren und 2. altes Feld freigeben.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Zurzeit aktive Besucher

Statistik des Forums

Themen
118.565
Beiträge
1.538.068
Mitglieder
67.488
Neuestes Mitglied
Andrew56524
Oben