Changeset 9050 in orxonox.OLD for branches/single_player_map
- Timestamp:
- Jul 3, 2006, 5:08:54 PM (18 years ago)
- Location:
- branches/single_player_map/src/lib
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/single_player_map/src/lib/collision_reaction/cr_physics_ground_walk.cc
r9003 r9050 95 95 // collision in the x-axis 96 96 case COLLISION_TYPE_AXIS_X: 97 front = collPos. x- box->halfLength[0]; // should be [0]97 front = collPos.len() - box->halfLength[0]; // should be [0] 98 98 99 99 // object is beneath the plane (ground) 100 100 if( front <= 0.0f ) 101 101 { 102 Vector backoff = entity->getAbsDirX() * front; 103 // entity->shiftCoor(backoff); 102 Vector dirX = entity->getAbsDirX(); dirX.y = 0.0f; dirX.normalize(); 103 Vector backoff = dirX * front; 104 entity->shiftCoor(backoff); 104 105 } 105 106 // object is already in the wall … … 118 119 119 120 // object is beneath the plane (ground) 120 if( height <= 0.0f ) 121 { 122 entity->shiftCoor(Vector(0.0f, -height, 0.0f)); 121 if(height >= 0.0f && height <= 0.0001f) break ;// Do nothing 122 else if( height < 0.0f ) 123 { 124 entity->shiftCoor(Vector(0.0f, -height + 0.00001, 0.0f)); 123 125 entity->setOnGround(true); 124 126 } … … 139 141 case COLLISION_TYPE_AXIS_Z: 140 142 141 side = collPos. z- box->halfLength[2]; // should be [2]143 side = collPos.len() - box->halfLength[2]; // should be [2] 142 144 143 145 // object is beneath the plane (ground) 144 146 if( side <= 0.0f ) 145 147 { 146 Vector backoff = entity->getAbsDirX() * side; 147 // entity->shiftCoor(backoff); 148 149 Vector dirZ = entity->getAbsDirZ(); dirZ.y = 0.0f; dirZ.normalize(); 150 Vector backoff = dirZ * side; 151 // entity->shiftCoor(backoff); 148 152 } 149 153 // object is already in the wall … … 155 159 } 156 160 } 157 //PRINTF(0)("collision distances: x: %f, y: %f, z: %f\n", front, height, side);161 PRINTF(0)("collision distances: x: %f, y: %f, z: %f\n", front, height, side); 158 162 159 163 -
branches/single_player_map/src/lib/graphics/importer/bsp_manager.cc
r9003 r9050 986 986 987 987 if( box != NULL) { 988 position = worldEntity->getAbsCoor() + box->center + Vector(0.0, 1.0, 0.0) * box->halfLength[1]; 989 dest = worldEntity->getAbsCoor() + box->center - Vector(0.0, 1.0, 0.0) * (box->halfLength[1] + BSP_Y_OFFSET); 990 991 position1 = worldEntity->getAbsCoor() + box->center - worldEntity->getAbsDirX() * (box->halfLength[0] + BSP_X_OFFSET); 992 dest1 = worldEntity->getAbsCoor() + box->center + worldEntity->getAbsDirX() * (box->halfLength[0] + BSP_X_OFFSET); 993 994 position2 = worldEntity->getAbsCoor() + box->center - worldEntity->getAbsDirZ() * (box->halfLength[2] + BSP_Z_OFFSET); 995 dest2 = worldEntity->getAbsCoor() + box->center + worldEntity->getAbsDirZ() * (box->halfLength[2] + BSP_Z_OFFSET); 988 position = worldEntity->getAbsCoor() + box->center + Vector(0.0, 1.0, 0.0) * box->halfLength[1] * 0.001; 989 dest = worldEntity->getAbsCoor() + box->center - Vector(0.0, 1.0, 0.0) * (box->halfLength[1] + BSP_Y_OFFSET) * 100; 990 991 Vector dirX = worldEntity->getAbsDirX(); dirX.y = 0.0f; dirX.normalize(); 992 dirX.debug(); 993 position1 = worldEntity->getAbsCoor() + box->center - dirX * (box->halfLength[0] + BSP_X_OFFSET); 994 dest1 = worldEntity->getAbsCoor() + box->center + dirX * (box->halfLength[0] + BSP_X_OFFSET); 995 996 Vector dirZ = worldEntity->getAbsDirZ(); dirX.y = 0.0f; dirZ.normalize(); 997 position2 = worldEntity->getAbsCoor() + box->center - dirZ * (box->halfLength[2] + BSP_Z_OFFSET); 998 dest2 = worldEntity->getAbsCoor() + box->center + dirZ * (box->halfLength[2] + BSP_Z_OFFSET); 996 999 997 1000 } else { -
branches/single_player_map/src/lib/graphics/importer/bsp_manager.h
r9003 r9050 28 28 29 29 30 #define BSP_X_OFFSET 20.0f30 #define BSP_X_OFFSET 40.0f 31 31 #define BSP_Y_OFFSET 40.0f 32 32 #define BSP_Z_OFFSET 20.0f
Note: See TracChangeset
for help on using the changeset viewer.