Thread: [Tuxracer-checkins] CVS: tuxracer/src tux.c,1.10,1.11
Status: Beta
Brought to you by:
jfpatry
From: Jasmin P. <jf...@us...> - 2000-09-27 15:32:57
|
Update of /cvsroot/tuxracer/tuxracer/src In directory slayer.i.sourceforge.net:/tmp/cvs-serv32062 Modified Files: tux.c Log Message: - Changed for new jumping/flying code - Removed conditional based on value of tux_slides_on_belly parameter (which has been removed) Index: tux.c =================================================================== RCS file: /cvsroot/tuxracer/tuxracer/src/tux.c,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -r1.10 -r1.11 *** tux.c 2000/09/19 00:32:34 1.10 --- tux.c 2000/09/27 15:32:54 1.11 *************** *** 47,51 **** void adjust_tux_joints( scalar_t turnFact, bool_t isBraking, scalar_t paddling_factor, scalar_t speed, ! vector_t net_force, scalar_t jump_factor ) { scalar_t turning_angle[2] = {0., 0.}; --- 47,51 ---- void adjust_tux_joints( scalar_t turnFact, bool_t isBraking, scalar_t paddling_factor, scalar_t speed, ! vector_t net_force, scalar_t flap_factor ) { scalar_t turning_angle[2] = {0., 0.}; *************** *** 54,61 **** scalar_t kick_paddling_angle = 0.; /* leg kicking during paddling */ scalar_t braking_angle = 0.; - scalar_t belly_corr_fact = getparam_tux_slides_on_belly() ? -1 : 1; scalar_t force_angle = 0.; /* amount that legs move because of force */ scalar_t turn_leg_angle = 0.; /* amount legs move when turning */ ! scalar_t jump_angle = 0.; /* move arms */ --- 54,60 ---- scalar_t kick_paddling_angle = 0.; /* leg kicking during paddling */ scalar_t braking_angle = 0.; scalar_t force_angle = 0.; /* amount that legs move because of force */ scalar_t turn_leg_angle = 0.; /* amount legs move when turning */ ! scalar_t flap_angle = 0.; /* move arms */ *************** *** 75,143 **** turning_angle[1] = max(turnFact,0.0) * MAX_ARM_ANGLE; ! jump_angle = MAX_ARM_ANGLE * (0.5 + 0.5*sin(M_PI*jump_factor*4-M_PI/2)); /* Adjust arms for turning */ rotate_scene_node( tuxLeftShoulderJoint, 'z', ! belly_corr_fact * ! -min( braking_angle + paddling_angle + turning_angle[0], ! MAX_ARM_ANGLE ) + jump_angle ); rotate_scene_node( tuxRightShoulderJoint, 'z', ! belly_corr_fact * ! -min( braking_angle + paddling_angle + turning_angle[1], ! MAX_ARM_ANGLE ) + jump_angle ); ! if ( getparam_tux_slides_on_belly() ) { ! ! /* Adjust arms for paddling */ ! rotate_scene_node( tuxLeftShoulderJoint, 'y', -ext_paddling_angle ); ! rotate_scene_node( tuxRightShoulderJoint, 'y', ext_paddling_angle ); ! ! force_angle = max( -20.0, min( 20.0, -net_force.z / 300.0 ) ); ! turn_leg_angle = turnFact * 10; /* Adjust hip joints */ ! reset_scene_node( tuxLeftHipJoint ); ! rotate_scene_node( tuxLeftHipJoint, 'z', -20 + turn_leg_angle ! + force_angle ); ! reset_scene_node( tuxRightHipJoint ); ! rotate_scene_node( tuxRightHipJoint, 'z', -20 - turn_leg_angle ! + force_angle ); ! /* Adjust knees */ ! reset_scene_node( tuxLeftKneeJoint ); ! rotate_scene_node( tuxLeftKneeJoint, 'z', -10 + turn_leg_angle ! - min( 35, speed ) + kick_paddling_angle ! + force_angle ); ! reset_scene_node( tuxRightKneeJoint ); ! rotate_scene_node( tuxRightKneeJoint, 'z', -10 - turn_leg_angle ! - min( 35, speed ) - kick_paddling_angle ! + force_angle ); ! ! /* Adjust ankles */ ! reset_scene_node( tuxLeftAnkleJoint ); ! rotate_scene_node( tuxLeftAnkleJoint, 'z', -20 + min(50, speed ) ); ! reset_scene_node( tuxRightAnkleJoint ); ! rotate_scene_node( tuxRightAnkleJoint, 'z', -20 + min(50, speed ) ); /* Turn tail */ ! reset_scene_node( tuxTailJoint ); ! rotate_scene_node( tuxTailJoint, 'z', turnFact * 20 ); /* Adjust head and neck */ ! reset_scene_node( tuxNeck ); ! rotate_scene_node( tuxNeck, 'z', -50 ); ! reset_scene_node( tuxHead ); ! rotate_scene_node( tuxHead, 'z', -30 ); /* Turn head when turning */ ! rotate_scene_node( tuxHead, 'y', -turnFact * 70 ); ! } else { ! reset_scene_node( tuxNeck ); ! rotate_scene_node( tuxNeck, 'z', 20 ); ! reset_scene_node( tuxHead ); ! rotate_scene_node( tuxHead, 'z', 20 ); ! } } --- 74,131 ---- turning_angle[1] = max(turnFact,0.0) * MAX_ARM_ANGLE; ! flap_angle = MAX_ARM_ANGLE * (0.5 + 0.5*sin(M_PI*flap_factor*6-M_PI/2)); /* Adjust arms for turning */ rotate_scene_node( tuxLeftShoulderJoint, 'z', ! min( braking_angle + paddling_angle + turning_angle[0], ! MAX_ARM_ANGLE ) + flap_angle ); rotate_scene_node( tuxRightShoulderJoint, 'z', ! min( braking_angle + paddling_angle + turning_angle[1], ! MAX_ARM_ANGLE ) + flap_angle ); + /* Adjust arms for paddling */ + rotate_scene_node( tuxLeftShoulderJoint, 'y', -ext_paddling_angle ); + rotate_scene_node( tuxRightShoulderJoint, 'y', ext_paddling_angle ); ! force_angle = max( -20.0, min( 20.0, -net_force.z / 300.0 ) ); ! turn_leg_angle = turnFact * 10; /* Adjust hip joints */ ! reset_scene_node( tuxLeftHipJoint ); ! rotate_scene_node( tuxLeftHipJoint, 'z', -20 + turn_leg_angle ! + force_angle ); ! reset_scene_node( tuxRightHipJoint ); ! rotate_scene_node( tuxRightHipJoint, 'z', -20 - turn_leg_angle ! + force_angle ); ! /* Adjust knees */ ! reset_scene_node( tuxLeftKneeJoint ); ! rotate_scene_node( tuxLeftKneeJoint, 'z', -10 + turn_leg_angle ! - min( 35, speed ) + kick_paddling_angle ! + force_angle ); ! reset_scene_node( tuxRightKneeJoint ); ! rotate_scene_node( tuxRightKneeJoint, 'z', -10 - turn_leg_angle ! - min( 35, speed ) - kick_paddling_angle ! + force_angle ); ! ! /* Adjust ankles */ ! reset_scene_node( tuxLeftAnkleJoint ); ! rotate_scene_node( tuxLeftAnkleJoint, 'z', -20 + min(50, speed ) ); ! reset_scene_node( tuxRightAnkleJoint ); ! rotate_scene_node( tuxRightAnkleJoint, 'z', -20 + min(50, speed ) ); /* Turn tail */ ! reset_scene_node( tuxTailJoint ); ! rotate_scene_node( tuxTailJoint, 'z', turnFact * 20 ); /* Adjust head and neck */ ! reset_scene_node( tuxNeck ); ! rotate_scene_node( tuxNeck, 'z', -50 ); ! reset_scene_node( tuxHead ); ! rotate_scene_node( tuxHead, 'z', -30 ); /* Turn head when turning */ ! rotate_scene_node( tuxHead, 'y', -turnFact * 70 ); } |