Entwickler-Ecke
Sonstiges (Delphi) - Ampelkreuzung
seelachs - Sa 16.05.09 18:05
Titel: Ampelkreuzung
Hallo ihr,
ich bräuchte da mal eure Hilfe und zwar muss ich ein paar Hausaufgaben machen und ich weiß nicht wo der Fehler ist, da ich mich damit nicht so gut auskenne. Ich soll eine Ampelkreuzung programmieren mit 4 Ampeln die jeweils 4 Phasen haben ( Rot, Rot Gelb , Grün, Gelb ) und die sollen da richtig geschaltet werden . ( Dies soll mit Timern geschehen )
Könnt ihr mir vielleicht helfen ? Ich würde mich riesig über Antworten freuen. Sieht euch das Rot makierte an, dort müsste der Fehler sein !
Quelltext :
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202:
| interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls;
type TForm1 = class(TForm) Shape1: TShape; Shape2: TShape; shpRed1: TShape; shpYellow1: TShape; shpGreen1: TShape; shpYellow2: TShape; shpRed2: TShape; shpGreen2: TShape; Shape9: TShape; Shape10: TShape; Shape11: TShape; Shape12: TShape; Shape13: TShape; Shape14: TShape; Shape15: TShape; Shape16: TShape; Shape17: TShape; Shape18: TShape; Shape19: TShape; Shape20: TShape; Shape21: TShape; Shape22: TShape; Shape23: TShape; Shape24: TShape; Shape25: TShape; Shape26: TShape; Shape27: TShape; Shape28: TShape; Shape29: TShape; Shape30: TShape; Shape32: TShape; Shape33: TShape; Shape34: TShape; Shape35: TShape; Shape36: TShape; Shape37: TShape; Shape38: TShape; Shape39: TShape; Shape31: TShape; Shape40: TShape; Shape41: TShape; Shape42: TShape; Shape43: TShape; Shape44: TShape; Shape45: TShape; Shape46: TShape; Shape47: TShape; Shape48: TShape; Shape49: TShape; Shape50: TShape; Shape51: TShape; Shape52: TShape; Shape53: TShape; Shape54: TShape; Shape55: TShape; Shape56: TShape; Shape57: TShape; Shape59: TShape; Shape60: TShape; Shape61: TShape; Shape62: TShape; Shape63: TShape; Shape64: TShape; Shape65: TShape; Shape66: TShape; Shape67: TShape; Shape68: TShape; Button1: TButton; Timer1: TTimer; shpRed3: TShape; shpYellow3: TShape; shpGreen3: TShape; shpRed4: TShape; shpYellow4: TShape; shpGreen4: TShape; Timer2: TTimer; procedure shpRed2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Timer1Timer(Sender: TObject); procedure Timer2Timer(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.shpRed2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin Close; end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
if shpGreen2.Brush.Color = clblack then begin Timer1.interval := 3000; shpRed2.Brush.Color := clred; shpYellow2.Brush.Color := clblack; shpGreen2.Brush.Color := clnone; shpRed1.Brush.Color := clred; shpYellow1.Brush.Color := clblack; shpGreen1.Brush.Color := clnone; end
else if shpYellow2.Brush.Color = clblack then begin Timer1.interval := 3000; shpRed2.Brush.Color := clred; shpYellow2.Brush.Color := clyellow; shpGreen2.Brush.Color := clnone; shpRed1.Brush.Color := clred; shpYellow1.Brush.Color := clyellow; shpGreen1.Brush.Color := clnone; end else if shpRed2.Brush.Color = clred then begin Timer1.interval := 3000; shpRed2.Brush.Color := clnone; shpYellow2.Brush.Color := clnone; shpGreen2.Brush.Color := cllime; shpRed1.Brush.Color := clnone;
shpYellow1.Brush.Color := clnone; shpGreen1.Brush.Color := cllime; end else if shpGreen2.Brush.Color = cllime then begin Timer1.interval := 3000; shpRed2.Brush.Color := clblack; shpYellow2.Brush.Color := clyellow; shpGreen2.Brush.Color := clblack; shpRed1.Brush.Color := clblack; shpYellow1.Brush.Color := clyellow; shpGreen1.Brush.Color := clblack; end end;
procedure TForm1.Timer2Timer(Sender: TObject); begin if shpRed4.Brush.Color = clred then begin Timer1.interval := 3000; shpRed2.Brush.Color := clnone; shpYellow2.Brush.Color := clnone; shpGreen2.Brush.Color := cllime; shpRed1.Brush.Color := clnone; shpYellow1.Brush.Color := clnone; shpGreen1.Brush.Color := cllime; end else if shpGreen4.Brush.Color = cllime then begin Timer1.interval := 3000; shpRed2.Brush.Color := clblack; shpYellow2.Brush.Color := clyellow; shpGreen2.Brush.Color := clblack; shpRed1.Brush.Color := clblack; shpYellow1.Brush.Color := clyellow; shpGreen1.Brush.Color := clblack; end else if shpGreen4.Brush.Color = clblack then begin Timer1.interval := 3000; shpRed2.Brush.Color := clred; shpYellow2.Brush.Color := clblack; shpGreen2.Brush.Color := clnone; shpRed1.Brush.Color := clred; shpYellow1.Brush.Color := clblack; shpGreen1.Brush.Color := clnone; end
else if shpYellow4.Brush.Color = clblack then begin Timer1.interval := 3000; shpRed2.Brush.Color := clred; shpYellow2.Brush.Color := clyellow; shpGreen2.Brush.Color := clnone; shpRed1.Brush.Color := clred; shpYellow1.Brush.Color := clyellow; shpGreen1.Brush.Color := clnone; end end;
end. |
Ampel Senkrecht Funktioniert. Ampel Waagerecht macht nichts.
Mfg seelachs ;)
Moderiert von
Gausi: Delphi-Tags hinzugefügt
ffgorcky - Sa 16.05.09 19:03
Ich sehe leider nichts rot markiertes.
Also ich würde eher einzelne Int(eger)-Werte für die Phasenabhandlung nehmen.
Also eben, dass Du die Phasen bei Ampel Eins zum Beispiel so setzt:
Case AmpelPhase of
0:Rot
1:Rot
2:Gelb
3:Grün
4:Grün
Damit könntest Du dann die Ampelschaltung einfach so abhandeln, indem Du dann in einer Timer-Schaltung schreibst:
Delphi-Quelltext
1: 2: 3: 4:
| if AmpelPhase<4 then inc(AmpelPhase) else AmpelPhase:=0 |
Und ich denke mal, dass Du die Ampeln beide zur gleichen Zeit in der Gelbphase haben möchtest - oder?
Das hieße dann ja, dass Du Dann einfach nur bei der zweiten Ampel die Phasen umtauschen musst (aber die gleiche Variable nimmst!):
0:Grün
1:Grün
2:Gelb
3:Rot
4:Rot
Damit könntest Du doch abfragen:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| Case AmpelPhase of 0:begin MachDieAmpelDerStrasseEinsRot(); MachDieAmpelDerStrasseZweiGruen(); end; 1:begin MachDieAmpelDerStrasseEinsRot(); MachDieAmpelDerStrasseZweiGruen(); end; 2:begin MachDieAmpelDerStrasseEinsGelb(); MachDieAmpelDerStrasseZweiGelb(); end; 3:begin MachDieAmpelDerStrasseZweiRot(); MachDieAmpelDerStrasseEinsGrün() end; 4:begin MachDieAmpelDerStrasseZweiRot(); MachDieAmpelDerStrasseEinsGruen() end; |
seelachs - So 17.05.09 21:27
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45:
| begin if shpRed4.Brush.Color = clred then begin Timer1.interval := 3000; shpRed2.Brush.Color := clnone; shpYellow2.Brush.Color := clnone; shpGreen2.Brush.Color := cllime; shpRed1.Brush.Color := clnone; shpYellow1.Brush.Color := clnone; shpGreen1.Brush.Color := cllime; end else if shpGreen4.Brush.Color = cllime then begin Timer1.interval := 3000; shpRed2.Brush.Color := clblack; shpYellow2.Brush.Color := clyellow; shpGreen2.Brush.Color := clblack; shpRed1.Brush.Color := clblack; shpYellow1.Brush.Color := clyellow; shpGreen1.Brush.Color := clblack; end else if shpGreen4.Brush.Color = clblack then begin Timer1.interval := 3000; shpRed2.Brush.Color := clred; shpYellow2.Brush.Color := clblack; shpGreen2.Brush.Color := clnone; shpRed1.Brush.Color := clred; shpYellow1.Brush.Color := clblack; shpGreen1.Brush.Color := clnone; end
else if shpYellow4.Brush.Color = clblack then begin Timer1.interval := 3000; shpRed2.Brush.Color := clred; shpYellow2.Brush.Color := clyellow; shpGreen2.Brush.Color := clnone; shpRed1.Brush.Color := clred; shpYellow1.Brush.Color := clyellow; shpGreen1.Brush.Color := clnone; end end;
end. |
Hier befindet sich der Fehler.
Moderiert von
Kha: Delphi-Tags hinzugefügt
---
Moderiert von
Narses: Beiträge zusammengefasst---
Sobald die Ampel 1 auf Rot ist muss Ampel 2 Grün sein. Dann muss Ampel 1 RotGelb werden und Ampel 2 Gelb. Dann muss Ampel 1 Grün werden und Ampel 2 Rot.
oldmax - Mo 18.05.09 13:09
Hi
Wenn du schon eine Ampelkreuzung (Namentlich) im Kopf hast, warum suchst du nicht erst einmal danach. Dieses Thema scheint in regelmäßigen Abschnitten eine beliebte Hausaufgabe zu sein. Mittlerweile gibt es sehr viel Hilfe, was den Aufbau einer Ampelschaltung betrifft und auch jede Menge Code dazu. Auch ich hab vor ca. 1 Jahr bereits die Vorgehnsweise erläutert, so das sich daraus ein brauchbares Programm gestalten kann. Also, such mal nach Ampelkreuzung oder nach oldmax. Da wird dir bestimmt was brauchbares geliefert.
Gruß oldmax
seelachs - Mi 20.05.09 19:50
So hab es geschafft. Jetz muss ich es nur noch schaffen, das ein Auto dort fährt. Kennt sich einer damit aus ? Wie man sowas macht ?
ffgorcky - Mi 20.05.09 21:32
Naja, Du könntest es ja erst mal mit Panels machen, denen Du eine (beliebige) Farbe gibst und dann, wenn sie fahren dürfen, entsprechend
Delphi-Quelltext
1: 2:
| PanelAutoVonOben.Top:=PanelAutoVonOben.Top+1; PanelAutoVonUnten.Top:=PanelAutoVonUnten.Top-1; |
und wenn die andere Straße grün hat, dann die anderen fahren lassen:
Delphi-Quelltext
1: 2:
| PanelAutoVonLinks.Left:=PanelAutoVonLinks.Left+1;PanelAutoVonRechts.Left:=PanelAutoVonRechts.Left-1; |
Wobei die Namen der Panels ja eigentlich egal sind. Sie müssen nur auf jeden Fall unterschiedlich heißen damit sie eindeutig ansprechbar sind!
Standard-Namen sind aber auch möglich, also wie zum Beispiel:
Delphi-Quelltext
1:
| Panel1.Left:=Panel1.Left-1; |
Nur dadurch kommt man dann schnell mal durcheinander - also sollte man es sich nach Möglichkeit erst gar nicht angewöhnen!
seelachs - Do 21.05.09 14:23
Hm. Ich versuch ma.
---
Moderiert von
Narses: Beiträge zusammengefasst---
Ich versteh das nicht. Bewegt er sich dann von alleine oder wie muss ich das machen ?
ffgorcky - Do 21.05.09 17:39
Nein, das ganze müsstest Du dann in einem anderen, zweiten Timer-Event aufrufen.
Also einen (bzw. zwei - für die andere kreuzende Straße ja auch) Timer in das Programm bauen und dann auf OnTimer doppelklicken, dann müsste ja eine Procedure erscheinen, in dei Du dann schreibst:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| if AmpelPhase=0 or AmpelPhase=1 then begin PanelAutoVonOben.Top:=PanelAutoVonOben.Top+1; PanelAutoVonUnten.Top:=PanelAutoVonUnten.Top-1; end; else if AmpelPhase=3 or AmpelPhase=4 then begin PanelAutoVonLinks.Left:=PanelAutoVonLinks.Left+1; AutoPanelAutoVonRechts.Left:=PanelAutoVonRechts.Left-1; end; |
Alles verstanden?
seelachs - Do 21.05.09 17:53
Also so ?
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14:
| procedure TForm1.Timer4Timer(Sender: TObject);
if AmpelPhase=0 or AmpelPhase=1 then begin PanelAutoVonOben.Top:=PanelAutoVonOben.Top+1; AutoPanelAutoVonUnten.Top:=PanelAutoVonUnten.Top-1; end; procedure TForm1.Timer3Timer(Sender: TObject); else if AmpelPhase=3 or AmpelPhase=4 then begin PanelAutoVonLinks.Left:=PanelAutoVonLinks.Left+1; AutoPanelAutoVonRechts.Left:=PanelAutoVonRechts.Left-1;
end; |
Er zeigt mir dann aber ein Fehler bei ( if AmpelPhase=0 or AmpelPhase=1 then )
Moderiert von
Gausi: Delphi-Tags hinzugefügt
ffgorcky - Do 21.05.09 17:57
Wahrscheinlich beanstandet er, dass er diese Variable vonobennachunten nicht kennt.
Hast Du diese Variable denn schon als int deklariert? (unter var der Form)
- Müsstest Du ja eigentlich, wenn diese Abfrage geht:
Delphi-Quelltext
1: 2: 3: 4:
| Case AmpelPhase of 0:begin MachDieAmpelDerStrasseEinsRot(); MachDieAmpelDerStrasseZweiGruen(); |
seelachs - Do 21.05.09 17:58
var
Form1: TForm1;
ja so.
ffgorcky - Do 21.05.09 18:00
ich sehe noch nichts von der Zeile
seelachs - Do 21.05.09 18:05
Delphi-Quelltext
1: 2:
| procedure TForm1.shpRed2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); |
ich hab es so wo muss ich dann AmpelPhase hinmachen ?
Moderiert von
Gausi: Delphi-Tags hinzugefügt
ffgorcky - Do 21.05.09 18:09
Da Du sie ja jetzt in mehreren Proceduren brauchst, musst Du sie dann jetzt ja doch im Formular unter private deklarieren.
seelachs - Do 21.05.09 18:14
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116:
| interface
uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, ExtCtrls, StdCtrls;
type TForm1 = class(TForm) Shape1: TShape; Shape2: TShape; shpRed1: TShape; shpYellow1: TShape; shpGreen1: TShape; shpYellow2: TShape; shpRed2: TShape; shpGreen2: TShape; Shape9: TShape; Shape10: TShape; Shape11: TShape; Shape12: TShape; Shape13: TShape; Shape14: TShape; Shape15: TShape; Shape16: TShape; Shape17: TShape; Shape18: TShape; Shape19: TShape; Shape20: TShape; Shape21: TShape; Shape22: TShape; Shape23: TShape; Shape24: TShape; Shape25: TShape; Shape26: TShape; Shape27: TShape; Shape28: TShape; Shape29: TShape; Shape30: TShape; Shape32: TShape; Shape33: TShape; Shape34: TShape; Shape35: TShape; Shape36: TShape; Shape37: TShape; Shape38: TShape; Shape39: TShape; Shape31: TShape; Shape40: TShape; Shape41: TShape; Shape42: TShape; Shape43: TShape; Shape44: TShape; Shape45: TShape; Shape46: TShape; Shape47: TShape; Shape48: TShape; Shape49: TShape; Shape50: TShape; Shape51: TShape; Shape52: TShape; Shape53: TShape; Shape54: TShape; Shape55: TShape; Shape56: TShape; Shape57: TShape; Shape59: TShape; Shape60: TShape; Shape61: TShape; Shape62: TShape; Shape63: TShape; Shape64: TShape; Shape65: TShape; Shape66: TShape; Shape67: TShape; Shape68: TShape; Button1: TButton; Timer1: TTimer; shpRed3: TShape; shpYellow3: TShape; shpGreen3: TShape; shpRed4: TShape; shpYellow4: TShape; shpGreen4: TShape; Timer2: TTimer; Panel1: TPanel; Timer4: TTimer; Panel2: TPanel; Panel3: TPanel; Panel4: TPanel; Timer3: TTimer; procedure shpRed2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure Timer1Timer(Sender: TObject); procedure Timer2Timer(Sender: TObject); procedure Timer5Timer(Sender: TObject); procedure PanelAutoVonObenContextPopup(Sender: TObject; MousePos: TPoint; var Handled: Boolean); procedure Panel1Click(Sender: TObject); procedure Timer4Timer(Sender: TObject); procedure Timer3Timer(Sender: TObject); procedure Timer6Timer(Sender: TObject); private public end;
var Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.shpRed2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); |
So sieht es bei mir gerade aus.
Moderiert von
Narses: Delphi-Tags hinzugefügt
oldmax - So 24.05.09 12:53
Hi
| Zitat: |
Er zeigt mir dann aber ein Fehler bei ( if AmpelPhase=0 or AmpelPhase=1 then ) |
Ich weiß nicht, ob dein Problem mit der If- Abfrage gelöst ist, aber ich hab nix diesbezüglich gelesen.
Daher geh ich mal darauf ein.
Wenn du eine Abfrage in dieser Form benutzt, mußt du die Vergleiche in Klammern setzen.
Delphi-Quelltext
1:
| if (AmpelPhase=0) or (AmpelPhase=1) then |
Noch ein kleiner Hinweis zum Einrücken.
Dein Code ist nicht gerade leicht lesbar, wein Begin - End Bereiche nicht besonders erkannt werden können.
Es mag sein, das sich hier auch teilweise Experten nicht ganz einig sind, wie es richtig ist, aber nach meiner Erfahrung bin ich mit folgendem Aufbau gut zurechtgekommen
Beispiele...
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| if <Bedingung> then begin tu dies und das end else begin oder tu das eine und das andere end; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| For i = 0 to 100 do begin if <Bedingung> then begin tu dies und das end; tu dann noch was end; |
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8:
| Case i of 1: Begin mach was end; 2: mach nur das 3: Begin mach hier mehr end; end; |
Ich hab mir angewöhnt, grundsätzlich Begin eine eigene Zeile zu spendieren, außer bei Case, da kommt Begin hinter den Doppelpunkt.
Danach wird eingerückt (2 Spaces), dann kommt der Block und end wir wieder unter das Begin zurückgeschoben. Dadurch sind die gültigen Codeblöcke leicht zu erkennen. Bei vielen Verschachtelungen ist ein Kommentar wie bei End case sinnvoll und man weiß sofort welcher Codeblock endet.
Gruß oldmax
ffgorcky - So 24.05.09 13:25
Hast Du die Variable denn jetzt so deklariert?
Delphi-Quelltext
1: 2: 3:
| private
AmpelPhase:Integer; |
Dein Quelltext hört leider bei dieser Zeile auf:
Delphi-Quelltext
1:
| procedure TForm1.shpRed2MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); |
Könntest Du denn noch mal "die andere Hälfte" hier reinstellen?
Oder das gesamte Projekt als *.zip irgendwo (z.B. auf Deiner Webseite) hinterlegen und einen Link
(Auf diese Art: '[URL]'HierDeinLink,ohneDieHochkommas'[/URL]') dazu hier reinschreiben?
Oder hat sich das Thema jetzt erledigt? - Dann markiere es doch bitte so!
Danke!
seelachs - Mo 25.05.09 22:48
Ich lad ma alles hier hoch.
Wenn du es schaffen solltest es zum laufen zu bringen, wäre ich dir mega Dankbar.
Moderiert von
Narses: Archiv als Anhang hochgeladen.
ffgorcky - Di 26.05.09 09:40
So, jetzt fahren schon mal die auf der senkrechten Straße.
Hilft Dir das weiter?
Oder soll ich Dir gleich das gesammte Projekt gelöst hier reinstellen?
Dann brauchst Du ja nichts mehr selber schreiben - wodurch Du doch aber das ganze erst so wirklich lernen würdest!
seelachs - Di 26.05.09 13:46
Es hat sich nichts verändert. Könntest du vielleicht es nochma hochladen und die Datei dann Ampel2 oder so nennen.
Und das restliche sollte ich packen. Wenn ich es doch nicht schaffen sollte frag ich dich dann einfach nochma. :)
---
Moderiert von
Narses: Beiträge zusammengefasst---
Auch wenn du es mir ganz machen würdest, ich müsste es sowieso noch ma ganz durch gehen und es lernen weil ich dann mein Lehrer erklären müsste wie ich es gemacht hab. :-P Also wenn du alles reinstellen würdest , hätte ich mehr Zeit fürs lernen. :)
ffgorcky - Mi 27.05.09 12:14
So - Jetzt fahren sie in beide Richtungen - nur leider "knallen sie ab und an doch noch ineinander".
Wenn ich mir das so richtig angucke, dann liegt das wohl daran, dass ich die "Haltelinie" für den von rechts kommenden zu weit rechts gesetzt habe.
Aber ich hoffe, dass Dir damit geholfen ist.
Ich finde es ja sowieso immer noch recht komisch, dass die Haltelinie (in Fahrtrichtung gesehen) erst hinter dem Zebrastreifen ist - vor dem man doch sowieso anhalten muss, wenn man dort sonst bei rot stehen würde...
seelachs - Mi 27.05.09 14:12
Vielen Dank. Das mit dem rechten Auto mach ich dann ma ;-)
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!