Explorar o código

Make rendering nicer

Miloslav Ciz %!s(int64=3) %!d(string=hai) anos
pai
achega
d445c67c0d
Modificáronse 2 ficheiros con 32 adicións e 18 borrados
  1. 31 17
      programs/car.c
  2. 1 1
      programs/make.sh

+ 31 - 17
programs/car.c

@@ -8,7 +8,7 @@
 #include "carModel.h"
 
 #define ACCELERATION 32
-#define TURN_RADIUS 3500
+#define TURN_RADIUS 3000
 
 TPE_Vec3 environmentDistance(TPE_Vec3 p, TPE_Unit maxD)
 {
@@ -100,7 +100,7 @@ wheelSize = TPE_JOINT_SIZE(tpe_world.bodies[0].joints[0]) + 30;
 TPE_bodyMove(carBody,TPE_vec3(3000,1000,0));
 
 tpe_world.bodies[0].elasticity = 64; 
-tpe_world.bodies[0].friction = 100; 
+tpe_world.bodies[0].friction = 64; 
 
   while (helper_running)
   {
@@ -196,13 +196,23 @@ carPos = TPE_vec3KeepWithinBox(carPos,
  carBody->joints[4].position,TPE_vec3(20,20,20));
 
 
-
 //S3L_lookAt(toCar,&s3l_scene.camera.transform);
 
 
-carForw = TPE_vec3Normalized( 
+carForw = 
+
+TPE_vec3Plus(
+  TPE_vec3Normalized( 
   TPE_vec3Minus(carBody->joints[2].position,
-  carBody->joints[0].position));
+  carBody->joints[0].position)),
+
+  TPE_vec3Normalized( 
+  TPE_vec3Minus(carBody->joints[3].position,
+  carBody->joints[1].position)) );
+
+carForw.x /= 2;
+carForw.y /= 2;
+carForw.z /= 2;
 
 carSide = TPE_vec3Normalized( 
   TPE_vec3Minus(carBody->joints[1].position,
@@ -252,24 +262,28 @@ TPE_bodySpinWithCenter(carBody,TPE_vec3Times(carUp,
 if (backOnGround)
 {
 
+TPE_Unit acc = ACCELERATION + speed;
+
 #define AAAA 16
 if (sdl_keyboard[SDL_SCANCODE_W])
 {
-  carBody->joints[0].velocity[0] += (carForw.x * ACCELERATION) / TPE_FRACTIONS_PER_UNIT;
-  carBody->joints[0].velocity[1] += (carForw.y * ACCELERATION) / TPE_FRACTIONS_PER_UNIT;
-  carBody->joints[0].velocity[2] += (carForw.z * ACCELERATION) / TPE_FRACTIONS_PER_UNIT;
-  carBody->joints[1].velocity[0] += (carForw.x * ACCELERATION) / TPE_FRACTIONS_PER_UNIT;
-  carBody->joints[1].velocity[1] += (carForw.y * ACCELERATION) / TPE_FRACTIONS_PER_UNIT;
-  carBody->joints[1].velocity[2] += (carForw.z * ACCELERATION) / TPE_FRACTIONS_PER_UNIT;
+  TPE_bodyActivate(carBody);
+  carBody->joints[0].velocity[0] += (carForw.x * acc) / TPE_FRACTIONS_PER_UNIT;
+  carBody->joints[0].velocity[1] += (carForw.y * acc) / TPE_FRACTIONS_PER_UNIT;
+  carBody->joints[0].velocity[2] += (carForw.z * acc) / TPE_FRACTIONS_PER_UNIT;
+  carBody->joints[1].velocity[0] += (carForw.x * acc) / TPE_FRACTIONS_PER_UNIT;
+  carBody->joints[1].velocity[1] += (carForw.y * acc) / TPE_FRACTIONS_PER_UNIT;
+  carBody->joints[1].velocity[2] += (carForw.z * acc) / TPE_FRACTIONS_PER_UNIT;
 }
 else if (sdl_keyboard[SDL_SCANCODE_S])
 {
-  carBody->joints[0].velocity[0] -= (carForw.x * ACCELERATION) / TPE_FRACTIONS_PER_UNIT;
-  carBody->joints[0].velocity[1] -= (carForw.y * ACCELERATION) / TPE_FRACTIONS_PER_UNIT;
-  carBody->joints[0].velocity[2] -= (carForw.z * ACCELERATION) / TPE_FRACTIONS_PER_UNIT;
-  carBody->joints[1].velocity[0] -= (carForw.x * ACCELERATION) / TPE_FRACTIONS_PER_UNIT;
-  carBody->joints[1].velocity[1] -= (carForw.y * ACCELERATION) / TPE_FRACTIONS_PER_UNIT;
-  carBody->joints[1].velocity[2] -= (carForw.z * ACCELERATION) / TPE_FRACTIONS_PER_UNIT;
+  TPE_bodyActivate(carBody);
+  carBody->joints[0].velocity[0] -= (carForw.x * acc) / TPE_FRACTIONS_PER_UNIT;
+  carBody->joints[0].velocity[1] -= (carForw.y * acc) / TPE_FRACTIONS_PER_UNIT;
+  carBody->joints[0].velocity[2] -= (carForw.z * acc) / TPE_FRACTIONS_PER_UNIT;
+  carBody->joints[1].velocity[0] -= (carForw.x * acc) / TPE_FRACTIONS_PER_UNIT;
+  carBody->joints[1].velocity[1] -= (carForw.y * acc) / TPE_FRACTIONS_PER_UNIT;
+  carBody->joints[1].velocity[2] -= (carForw.z * acc) / TPE_FRACTIONS_PER_UNIT;
 }
 
 //TPE_bodyAccelerate(&tpe_world.bodies[0],TPE_vec3Times(carForw,BBB) );

+ 1 - 1
programs/make.sh

@@ -1,5 +1,5 @@
 #!/bin/bash
 
-PROGRAM=car # change this to name of a program you want to compile :)
+PROGRAM=conservation # change this to name of a program you want to compile :)
 
 clear; clear; g++ -x c -g -fmax-errors=5 -pedantic -O3 -Wall -Wextra -Wstrict-prototypes -Wold-style-definition -Wno-unused-parameter -Wno-missing-field-initializers -o $PROGRAM $PROGRAM.c -lm -lSDL2 && ./$PROGRAM