| public void my_first_method ( ) {
Object[] skaters = ; |
||
| wait( 1 second ); | ||
| // Each skater should do the routine in turn. | ||
| For all skaters , one item_from_skaters at a time { | ||
| world.skate ( whichSkater = item_from_skaters ); | ||
| world.jump ( whichSkater = item_from_skaters ); | ||
| } | ||
| } | ||
| public void skate ( Object whichSkater) {
Object skatersLeftLeg = <None> ; Object skatersRightLeg = <None> ; |
||||
| skatersLeftLeg .set( value , ( whichSkater .partNamed( leftLeg ) ) ); | ||||
| skatersRightLeg .set( value , ( whichSkater .partNamed( rightLeg ) ) ); | ||||
| // First skating step. | ||||
| doTogether { | ||||
| whichSkater .move( FORWARD , 1 meter ); duration = 2 seconds | ||||
| doInOrder { | ||||
| doTogether { | ||||
| skatersLeftLeg .turn( FORWARD , 0.12 revolutions ); | ||||
| skatersLeftLeg .roll( RIGHT , 0.12 revolutions ); | ||||
| } | ||||
| doTogether { | ||||
| skatersLeftLeg .turn( BACKWARD , 0.12 revolutions ); | ||||
| skatersLeftLeg .roll( LEFT , 0.12 revolutions ); | ||||
| } | ||||
| } | ||||
| } | ||||
| // Second skating step. | ||||
| doTogether { | ||||
| whichSkater .move( FORWARD , 1 meter ); duration = 2 seconds | ||||
| doInOrder { | ||||
| doTogether { | ||||
| skatersRightLeg .turn( FORWARD , 0.12 revolutions ); | ||||
| skatersRightLeg .roll( LEFT , 0.12 revolutions ); | ||||
| } | ||||
| doTogether { | ||||
| skatersRightLeg .turn( BACKWARD , 0.12 revolutions ); | ||||
| skatersRightLeg .roll( RIGHT , 0.12 revolutions ); | ||||
| } | ||||
| } | ||||
| } | ||||
| } | ||||
| public void jump ( Object whichSkater) {
Object legOnRight = <None> ; Object body = <None> ; |
||
| // Upward part of the jump | ||
| doTogether { | ||
| whichSkater .move( FORWARD , 1 meter ); style = BEGIN_AND_END_ABRUPTLY asSeenBy = coach duration = 0.5 seconds | ||
| whichSkater .move( UP , 1 meter ); style = BEGIN_ABRUPTLY_AND_END_GENTLY duration = 0.5 seconds | ||
| whichSkater .turn( LEFT , 0.75 revolutions ); style = BEGIN_AND_END_ABRUPTLY duration = 0.5 seconds | ||
| } | ||
| // Downward part of the jump | ||
| doTogether { | ||
| whichSkater .move( FORWARD , 1 meter ); style = BEGIN_AND_END_ABRUPTLY asSeenBy = coach duration = 0.5 seconds | ||
| whichSkater .move( DOWN , 1 meter ); style = BEGIN_GENTLY_AND_END_ABRUPTLY duration = 0.5 seconds | ||
| whichSkater .turn( LEFT , 0.75 revolutions ); style = BEGIN_AND_END_ABRUPTLY duration = 0.5 seconds | ||
| } | ||
| legOnRight .set( value , ( whichSkater .partNamed( rightLeg ) ) ); | ||
| body .set( value , ( whichSkater .partNamed( upperBody ) ) ); | ||
| // Land on one foot. | ||
| doTogether { | ||
| legOnRight .turn( FORWARD , 0.25 revolutions ); duration = 0.25 seconds style = BEGIN_ABRUPTLY_AND_END_GENTLY | ||
| body .turn( FORWARD , 0.12 revolutions ); duration = 0.25 seconds style = BEGIN_ABRUPTLY_AND_END_GENTLY | ||
| } | ||
| // Glide after landing. | ||
| whichSkater .move( BACKWARD , 2 meters ); | ||
| // Stop standing on both feet. | ||
| doTogether { | ||
| legOnRight .turn( BACKWARD , 0.25 revolutions ); duration = 0.25 seconds style = BEGIN_ABRUPTLY_AND_END_GENTLY | ||
| body .turn( BACKWARD , 0.12 revolutions ); duration = 0.25 seconds style = BEGIN_ABRUPTLY_AND_END_GENTLY | ||
| } | ||
| } | ||