K, for 3 days now I have been working on this one section of a game. Actually just the neutral gear I'm having a hard time with.
Here's the full source code:
`Screen Setup
Sync On
Sync Rate 30
Hide Mouse
`Temp User Object
Make object Cube 1,10
Position Object 1,30,0,20
Color Object 1,RGB(255,255,255)
`Matrix
Make matrix 1,10000,10000,11,11
`Main Loop
DO
`Declare Variables
X#=Object Position X(1)
Y#=Object Position Y(1)
Z#=Object Position Z(1)
Ang#=Object Angle Y(1)
NX#=NewXValue(X#,Ang#,Speed#)
NZ#=NewZValue(Z#,Ang#,Speed#)
TireW#=275 :`Tire width
TireH#=(275*0.80) :`Sidewall height
Rim#=11.25 :`Tire size divided by 2
Rearend#=3.08 :`rearend gear ratio
Gear#=Gear#
Rpm#=Rpm#
Temp1#=Rpm#/GearA# :`Divides RPM buy Transmission gear ratio
Temp2#=Temp1#/Rearend# :`divides answer from Temp1 by rearend ratio
Temp3#=Temp2#*Rim# :` multiplies the answer from Temp2 by the wheel size
`temp Info Center and speedo
set cursor 5,5
Print "Gear ",Gears$
set cursor 5,20
Print "RPM ",Rpm#*100
set cursor 5,35
Print "Temp1 ",Temp1#
Set Cursor 5,65
Print "Temp2 ",Temp2#
Set cursor 5,80
Print "Speed ",Speed#
`Controls
IF UPKEY()=1 THEN INC Rpm#,0.4 : Speed#=Temp3# ELSE DEC Rpm#,0.4 : DEC Speed#,0.4 :` :`increments RPM and calculates speed
IF UPKEY()=0 AND DOWNKEY()=0 AND Rpm#<0.1 THEN Rpm#=0
IF Rpm#>60 THEN Rpm# = 60 :` sets max RPM ("Redline")
IF Rpm#<60 AND UPKEY()=0 AND DOWNKEY()=0 then DEC Speed#,0.4
IF DOWNKEY()=1 THEN Print "Has not been set! Grab the anchor!"
IF LEFTKEY()=1
rot#=Wrapvalue(Ang#-3)
Yrotate Object 1,rot#
ENDIF
IF RIGHTKEY()=1
rot#=Wrapvalue(Ang#+3)
Yrotate Object 1,rot#
ENDIF
OLDSpeed#=0
IF Keystate(31)=1 THEN Speed#=OLDSpeed# ELSE Speed#=Temp3# :` supposed to be the clutch
IF KEYSTATE(30)=1 THEN INC Gear#,1 :`these increment and deincrement way to fast, like 4 gears at once???
IF KEYSTATE(44)=1 THEN DEC Gear#,1 :`these increment and deincrement way to fast, like 4 gears at once???
IF Speed#>76.1 Then Speed#=76.1 :`sets max speed
IF UPKEY()=0 AND DOWNKEY()=0 AND Speed#<0.01 THEN Speed#=0 :` keeps you from rolling backward for now
IF Gear#=-2 THEN GearA#=-12.22
IF Gear#=-1 THEN GearA#=-23.96
IF Gear#=0 THEN GearA#=0 :`PROBLEM GEAR
IF Gear#=1 THEN GearA#=27.30
IF Gear#=2 THEN GearA#=13.90
IF Gear#=3 THEN GearA#=7.45
IF Gear#=4 THEN GearA#=5.33
IF Gear#=5 THEN GearA#=3.83
IF Gear#=6 THEN GearA#=2.73
IF Gear#=7 THEN GearA#=1.94
IF Gear#=8 THEN GearA#=1.39
IF Gear#=9 THEN GearA#=1.00
IF Gear#=10 THEN GearA#=0.71
IF Gear#=-2 THEN Gears$="High R"
IF Gear#=-1 THEN Gears$="LO R"
IF Gear#=0 THEN Gears$="N" :` PROBLEM GEAR
IF Gear#=1 THEN Gears$="1"
IF Gear#=2 THEN Gears$="2"
IF Gear#=3 THEN Gears$="3"
IF Gear#=4 THEN Gears$="4"
IF Gear#=5 THEN Gears$="5"
IF Gear#=6 THEN Gears$="6"
IF Gear#=7 THEN Gears$="7"
IF Gear#=8 THEN Gears$="8"
IF Gear#=9 THEN Gears$="9"
IF Gear#=10 THEN Gears$="10"
`Reposition Object
Position Object 1,NX#,Y#,NZ#
`Point Camera
cZ# = Newzvalue(NZ#,Ang#-180,100)
cX# = Newxvalue(NX#,Ang#-180,100)
Position Camera cX#,50,cZ#
Yrotate Camera rot#
`Call the Screen sync
Sync
Loop
K, so what it's doing is when the game starts (IE trans in "N", it says can't divide by zero. K, but I can't figure out how to make a neutral gear without it being 0.)
Also the gears are "skipping" gears from shifting to fast. What I'm trying to do here (it's not actually a game) is make a simulator for the new trainees. Problem is 1) I need atleast 10 forward gears, 6 reverse gears in some trucks, 13 forward gears, and 2 reverse gears in others. problem 2) I can't figure out how to make a gear system, and accel system, weight system to work together.
Thx to anyone that can help I would really appreciate it,
Phrozin