Liebe LOTUS-Menschen,
ich bin dabei einen Fahrschalter aus Julians Fahrzeugbau-Tutorial zu "bauen". Dabei werden zwar die entsprechenden Variablen vehement auf 0 gebracht, jedoch sind die Buttons wirkungslos und haben keinen Einfluss auf die Variablen, die sie eigentlich steuern sollen. Kann mir jemand helfen?
Code: MainScript.pas
- {PUBLIC_VARS
- Timegap: single;
- M_Axle_N_0_1 : single;
- M_Axle_N_0_0 : single;
- MBrake_Axle_N_0_0 : single;
- MBrake_Axle_N_0_1 : single;
- Reverser : single;
- a_ground: single;
- v_ground: single;
- CP_Umkehrhebel: single;
- CP_Fahrkurbel: single;
- FS_Fahrtrichtung: integer;
- FS_Besch: single;
- FS_Bremskraft: single;
- }
- {PUBLIC_BUTTONS
- Throttle;
- Neutral;
- Brake;
- EigenesEvent;
- V_Soll;
- ReverserPlus;
- ReverserMinus;
- FahrkurbelPlus;
- FahrkurbelMinus;{PUBLIC_AXIS
- ThrottleAxis;
- }
- {$I StdElements.pas}
- {$I TechElements.pas}
- {$I Fahrstand.pas}
- {$I Fahrschalter.pas}
- //{$I Zusatzscript.pas}
- procedure Initialize;
- begin
- Cockpit_Initialize;
- Fahrschalter_Initialize;
- end;
- procedure SimStep;
- begin
- Cockpit_SimStep;
- Fahrschalter_SimStep;
- end;
- procedure OnButton(id: string; value: boolean; CockpitIndex: integer);
- begin
- Cockpit_OnButton(id, value);
- Fahrschalter_OnButton(id, value);
- end;
- procedure OnFloatInput(id: string; value: single; cockpitIndex: integer);
- begin
- end;
- end.
Code: Fahrstand.pas
- var
- FS_Umkehrhebel: TStepSwitch;
- FS_Fahrkurbel: TStepSwitch;
- // INITIALISIERUNG
- procedure Cockpit_Initialize;
- begin
- FS_Umkehrhebel.A := -1;
- FS_Umkehrhebel.B := 1;
- FS_Fahrkurbel.A := -10;
- FS_Fahrkurbel.B := 10;
- end;
- // SIMSTEP
- procedure Cockpit_SimStep;
- begin
- CP_Umkehrhebel := FS_Umkehrhebel.Pos;
- CP_Fahrkurbel := FS_Fahrkurbel.Pos;
- end;
- // ONBUTTON
- procedure Cockpit_OnButton(id: string; value: boolean);
- begin
- if (id = 'ReserverPlus') then begin if StepSwitch_Plus (FS_Umkehrhebel, value) then end
- else if (id = 'ReserverMinus') then begin if StepSwitch_Minus (FS_Umkehrhebel, value) then end
- else if ((id = 'FahrkurbelPlus') or (id = 'Throttle')) then begin if StepSwitch_Plus (FS_Fahrkurbel, value) then end
- else if ((id = 'FahrkurbelMinus') or (id = 'Brake') or (id = 'EmergencyBrake') or (id = 'MaxBrake')) then begin if StepSwitch_Minus (FS_Fahrkurbel, value) then end;
- end;
Code: Fahrschalter.pas
- // INITIALISIERUNG
- procedure Fahrschalter_Initialize;
- begin
- end;
- // SIMSTEP
- procedure Fahrschalter_SimStep;
- begin
- //Fahrtrichtung
- if (CP_Umkehrhebel > 0) then
- begin
- FS_Fahrtrichtung := 1;
- end
- else if (CP_Umkehrhebel < 0) then
- begin
- FS_Fahrtrichtung := -1;
- end
- else
- begin
- FS_Fahrtrichtung := 0;
- end;
- //Beschleunigungskraft
- if (CP_Fahrkurbel >= 0) then
- begin
- FS_Besch := CP_Fahrkurbel * 800;
- end
- else
- begin
- FS_Besch := 0;
- end;
- //Bremskraft
- if (CP_Fahrkurbel < 0) then
- begin
- FS_Bremskraft := -1600 * CP_Fahrkurbel;
- end
- else
- begin
- FS_Bremskraft := 0;
- end;
- MBrake_Axle_N_0_0 := FS_Bremskraft;
- MBrake_Axle_N_0_1 := FS_Bremskraft;
- M_Axle_N_0_0 := FS_Besch * FS_Fahrtrichtung;
- M_Axle_N_0_1 := FS_Besch * FS_Fahrtrichtung;
- end;
- procedure Fahrschalter_OnButton(id: string; value: boolean);
- begin
- end;