Add gradual steering
This commit is contained in:
parent
c992ddeb3f
commit
252bf57e41
4 changed files with 21 additions and 9 deletions
3
TODO.txt
3
TODO.txt
|
@ -1,5 +1,7 @@
|
|||
=========== GENERAL ==============
|
||||
|
||||
- Consider better input handling in SDL? Currently it just detects presses on
|
||||
the exact frame, so a press can be missed. But how tho?
|
||||
- FPS logging for optim
|
||||
- try to add distance fog?
|
||||
- use 332 in SDL with potato?
|
||||
|
@ -68,6 +70,7 @@
|
|||
=========== HANDLED ==============
|
||||
|
||||
- add ifdefs that change car color?
|
||||
- Try progressively slower steering?
|
||||
- compile time option to choose how many maps to include (for platforms with
|
||||
- sometimes the games prints huge long ass number of newlines, WHY (happens
|
||||
when driving on accelerator)
|
||||
|
|
6
data
6
data
|
@ -61,3 +61,9 @@ details
|
|||
:=410 :f222
|
||||
:]X1uL :f118
|
||||
:]&1uJ :f118x\
|
||||
#RLC1;00LC1;8bd6e314 0000622:01a1:0159:0031:0139:00b1:0143:0031:0069:0041:0093:0021:0069:0011:0085:0051:00e9:0071:0133:02c2:0038:001c:0162:0033:0141:0053:0021:00f3:0021:0139:0041:00a9:0051:0073:0041:00a9:0031:00d9:0021:01b5:0041:02d3:00d1:0043:0031:0033:0081:00a3:0041:02e9:0011:0145:0031:01d9:0021:00a3:0031:0079:0021
|
||||
#BLC1;
|
||||
#RLCtiny5;00LCtiny5;5c14d8b6 0000359:0128:0060:0118:01a0:0081:00a9:0051:0063:0061:0049:00e1:0029:0061:0063:0051:0093:0051:0129:0041:0043:0151:0033:0061:00f9:0041:0083:0021:0063:0071:0033:0041:0033:0081:0093:0041:0083:0021:00e5:0031:0023:0111:0049:0071:0033:0071:0010
|
||||
#BLCtiny5;
|
||||
#RLCtiny5;00LCtiny5;5c14d8b6 0000359:0128:0060:0118:01a0:0081:00a9:0051:0063:0061:0049:00e1:0029:0061:0063:0051:0093:0051:0129:0041:0043:0151:0033:0061:00f9:0041:0083:0021:0063:0071:0033:0041:0033:0081:0093:0041:0083:0021:00e5:0031:0023:0111:0049:0071:0033:0071:0010
|
||||
#RLCtiny5;00LCtiny5;5c14d8b6 0000278:0011:00b3:0051:0089:0031:0079:00b1:0069:0061:0059:0021:0123:0031:0099:0021:0013:0151:0023:00b1:0099:0081:0093:0041:00b3:00b1:0053:0041:0033:0061:0033:0041:0165:0031:0123:0051:0089:0021:0043:0031:0049
|
||||
|
|
|
@ -243,6 +243,9 @@ A few tips for making maps:
|
|||
not even being noticed by the player.
|
||||
- There is a special "mirror" block that's very useful for creating
|
||||
8-symmetrical structures.
|
||||
- Add more visual detail only where it's worth it, i.e. where the player will
|
||||
see it, for example the near the start instead of a section that just quickly
|
||||
passed at high speed.
|
||||
|
||||
~~~~~ COMPILING AND MODIFYING ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
|
18
racing.h
18
racing.h
|
@ -76,7 +76,7 @@ typedef int32_t LCR_GameUnit; ///< abstract game unit
|
|||
#define LCR_CAR_STEER_FRICTION ((3 * TPE_F) / 4)
|
||||
#define LCR_CAR_ELASTICITY (TPE_F / 64)
|
||||
#define LCR_CAR_ACCELERATION (LCR_PHYSICS_UNIT / 9)
|
||||
#define LCR_CAR_STEER_SPEED (LCR_GAME_UNIT / 14)
|
||||
#define LCR_CAR_STEER_SPEED 13 ///< 0 to 16, lower is faster
|
||||
#define LCR_CAR_STEER_MAX (LCR_GAME_UNIT / 2)
|
||||
|
||||
#define LCR_CAR_ACCELERATOR_FACTOR 2
|
||||
|
@ -1289,24 +1289,24 @@ uint32_t LCR_racingStep(unsigned int input)
|
|||
if (input & LCR_RACING_INPUT_RIGHT)
|
||||
{
|
||||
steering = 2;
|
||||
|
||||
LCR_racing.wheelSteer = TPE_min(
|
||||
LCR_racing.wheelSteer + LCR_CAR_STEER_SPEED,
|
||||
LCR_CAR_STEER_MAX);
|
||||
|
||||
LCR_racing.wheelSteer =
|
||||
LCR_CAR_STEER_MAX -
|
||||
(LCR_CAR_STEER_SPEED * (LCR_CAR_STEER_MAX - LCR_racing.wheelSteer)) / 16;
|
||||
}
|
||||
else if (input & LCR_RACING_INPUT_LEFT)
|
||||
{
|
||||
steering = 1;
|
||||
|
||||
LCR_racing.wheelSteer = TPE_max(
|
||||
LCR_racing.wheelSteer - LCR_CAR_STEER_SPEED,
|
||||
-1 * LCR_CAR_STEER_MAX);
|
||||
LCR_racing.wheelSteer =
|
||||
-1 * LCR_CAR_STEER_MAX +
|
||||
(LCR_CAR_STEER_SPEED * (LCR_racing.wheelSteer + LCR_CAR_STEER_MAX)) / 16;
|
||||
}
|
||||
|
||||
if ((LCR_racing.wheelCollisions & 0xcc)) // back wheel on ground?
|
||||
{
|
||||
if (input & LCR_RACING_INPUT_FORW)
|
||||
{
|
||||
{
|
||||
_LCR_racingWheelAccelerate(0,carForw,groundMat,onAccel);
|
||||
_LCR_racingWheelAccelerate(1,carForw,groundMat,onAccel);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue