Jump to content
Sign in to follow this  
Guest JR Morgan

Rotating Scenery Objects

Recommended Posts

Guest luissa

Hi,I am posting a SCASM macro, called RotatedCall64, which continuously rotates an object. The macro can be used inside another macro. In the following example I use the macro to rotate a beam of light:Area() PerpectiveCall( :call ) ShadowCall( :call ) Jump( : ):call RefPoint( :return ... ) macro( RotatedCall64 :beam 0 0 0 0 0 1 4 ):return Return:beam Transform_Mat( a ... ) Light( m 5 0 0 0 40 0.6 0.4 FF 255 255 255 1 1 1 ) TransformEnd ReturnEndAI hope this is useful. See the comments on the file RotatedCall64 for further information.Kind Regards, Luis; Macro to rotate an object with a period between 1 and 4 seconds.; Rotation is made of 64 frames during 4 seconds; A "pseudo" period of 1 second will consist on 4 rotations; CALLING PARAMETERS:; %1 label of object to rotate; %2 delta_X offset of center of rotation; %3 delta_Z offset of center of rotation; %4 delta_Y offset of center of rotation; %5 axis_X rotation : 1 clockwise 0 none -1 anticlockwise; %6 axis_Y rotation : 1 clockwise 0 none -1 anticlockwise ; %7 axis_Z rotation : 1 clockwise 0 none -1 anticlockwise; %8 period in seconds; evaluate the angle increment for each frameUvar( $d %8 )mif( [ %8 > 4 ] )Uvar( $d 4 )mifendmif( [ %8 < 1 ] )Uvar( $d 1 )mifend Uvar( $d [ 22.5 / $d ] )Call( :this@ )Jump( :next@ ):this@ IfVarAnd( :frame00_07@ 5FC 0b000000111000 )IfVarAnd( :frame08_15@ 5FC 0b000000110000 )IfVarAnd( :frame16_23@ 5FC 0b000000101000 )IfVarAnd( :frame24_31@ 5FC 0b000000100000 )IfVarAnd( :frame32_39@ 5FC 0b000000011000 )IfVarAnd( :frame40_47@ 5FC 0b000000010000 )IfVarAnd( :frame48_55@ 5FC 0b000000001000 )Jump( :frame56_63@ ):frame00_07@IfVarAnd( :frame00@ 5FC 0007 )IfVarAnd( :frame01@ 5FC 0006 )IfVarAnd( :frame02@ 5FC 0005 )IfVarAnd( :frame03@ 5FC 0004 )IfVarAnd( :frame04@ 5FC 0003 )IfVarAnd( :frame05@ 5FC 0002 )IfVarAnd( :frame06@ 5FC 0001 )Jump( :frame07@ ):frame08_15@IfVarAnd( :frame08@ 5FC 0007 )IfVarAnd( :frame09@ 5FC 0006 )IfVarAnd( :frame10@ 5FC 0005 )IfVarAnd( :frame11@ 5FC 0004 )IfVarAnd( :frame12@ 5FC 0003 )IfVarAnd( :frame13@ 5FC 0002 )IfVarAnd( :frame14@ 5FC 0001 )Jump( :frame15@ ):frame16_23@IfVarAnd( :frame16@ 5FC 0007 )IfVarAnd( :frame17@ 5FC 0006 )IfVarAnd( :frame18@ 5FC 0005 )IfVarAnd( :frame19@ 5FC 0004 )IfVarAnd( :frame20@ 5FC 0003 )IfVarAnd( :frame21@ 5FC 0002 )IfVarAnd( :frame22@ 5FC 0001 )Jump( :frame23@ ):frame24_31@IfVarAnd( :frame24@ 5FC 0007 )IfVarAnd( :frame25@ 5FC 0006 )IfVarAnd( :frame26@ 5FC 0005 )IfVarAnd( :frame27@ 5FC 0004 )IfVarAnd( :frame28@ 5FC 0003 )IfVarAnd( :frame29@ 5FC 0002 )IfVarAnd( :frame30@ 5FC 0001 )Jump( :frame31@ ):frame32_39@IfVarAnd( :frame32@ 5FC 0007 )IfVarAnd( :frame33@ 5FC 0006 )IfVarAnd( :frame34@ 5FC 0005 )IfVarAnd( :frame35@ 5FC 0004 )IfVarAnd( :frame36@ 5FC 0003 )IfVarAnd( :frame37@ 5FC 0002 )IfVarAnd( :frame38@ 5FC 0001 )Jump( :frame39@ ):frame40_47@IfVarAnd( :frame40@ 5FC 0007 )IfVarAnd( :frame41@ 5FC 0006 )IfVarAnd( :frame42@ 5FC 0005 )IfVarAnd( :frame43@ 5FC 0004 )IfVarAnd( :frame44@ 5FC 0003 )IfVarAnd( :frame45@ 5FC 0002 )IfVarAnd( :frame46@ 5FC 0001 )Jump( :frame47@ ):frame48_55@IfVarAnd( :frame48@ 5FC 0007 )IfVarAnd( :frame49@ 5FC 0006 )IfVarAnd( :frame50@ 5FC 0005 )IfVarAnd( :frame51@ 5FC 0004 )IfVarAnd( :frame52@ 5FC 0003 )IfVarAnd( :frame53@ 5FC 0002 )IfVarAnd( :frame54@ 5FC 0001 )Jump( :frame55@ ):frame56_63@IfVarAnd( :frame56@ 5FC 0007 )IfVarAnd( :frame57@ 5FC 0006 )IfVarAnd( :frame58@ 5FC 0005 )IfVarAnd( :frame59@ 5FC 0004 )IfVarAnd( :frame60@ 5FC 0003 )IfVarAnd( :frame61@ 5FC 0002 )IfVarAnd( :frame62@ 5FC 0001 )Jump( :frame63@ ):frame00@TransformCall( %1 [%2] [%3] [%4] [00 * $d * %5] 0 [00 * $d * %6] 0 [00 * $d * %7] 0 )Return:frame01@TransformCall( %1 [%2] [%3] [%4] [01 * $d * %5] 0 [01 * $d * %6] 0 [01 * $d * %7] 0 )Return:frame02@TransformCall( %1 [%2] [%3] [%4] [02 * $d * %5] 0 [02 * $d * %6] 0 [02 * $d * %7] 0 )Return:frame03@TransformCall( %1 [%2] [%3] [%4] [03 * $d * %5] 0 [03 * $d * %6] 0 [03 * $d * %7] 0 )Return:frame04@TransformCall( %1 [%2] [%3] [%4] [04 * $d * %5] 0 [04 * $d * %6] 0 [04 * $d * %7] 0 )Return:frame05@TransformCall( %1 [%2] [%3] [%4] [05 * $d * %5] 0 [05 * $d * %6] 0 [05 * $d * %7] 0 )Return:frame06@TransformCall( %1 [%2] [%3] [%4] [06 * $d * %5] 0 [06 * $d * %6] 0 [06 * $d * %7] 0 )Return:frame07@TransformCall( %1 [%2] [%3] [%4] [07 * $d * %5] 0 [07 * $d * %6] 0 [07 * $d * %7] 0 )Return:frame08@TransformCall( %1 [%2] [%3] [%4] [08 * $d * %5] 0 [08 * $d * %6] 0 [08 * $d * %7] 0 )Return:frame09@TransformCall( %1 [%2] [%3] [%4] [09 * $d * %5] 0 [09 * $d * %6] 0 [09 * $d * %7] 0 )Return:frame10@TransformCall( %1 [%2] [%3] [%4] [10 * $d * %5] 0 [10 * $d * %6] 0 [10 * $d * %7] 0 )Return:frame11@TransformCall( %1 [%2] [%3] [%4] [11 * $d * %5] 0 [11 * $d * %6] 0 [11 * $d * %7] 0 )Return:frame12@TransformCall( %1 [%2] [%3] [%4] [12 * $d * %5] 0 [12 * $d * %6] 0 [12 * $d * %7] 0 )Return:frame13@TransformCall( %1 [%2] [%3] [%4] [13 * $d * %5] 0 [13 * $d * %6] 0 [13 * $d * %7] 0 )Return:frame14@TransformCall( %1 [%2] [%3] [%4] [14 * $d * %5] 0 [14 * $d * %6] 0 [14 * $d * %7] 0 )Return:frame15@TransformCall( %1 [%2] [%3] [%4] [15 * $d * %5] 0 [15 * $d * %6] 0 [15 * $d * %7] 0 )Return:frame16@TransformCall( %1 [%2] [%3] [%4] [16 * $d * %5] 0 [16 * $d * %6] 0 [16 * $d * %7] 0 )Return:frame17@TransformCall( %1 [%2] [%3] [%4] [17 * $d * %5] 0 [17 * $d * %6] 0 [17 * $d * %7] 0 )Return:frame18@TransformCall( %1 [%2] [%3] [%4] [18 * $d * %5] 0 [18 * $d * %6] 0 [18 * $d * %7] 0 )Return:frame19@TransformCall( %1 [%2] [%3] [%4] [19 * $d * %5] 0 [19 * $d * %6] 0 [19 * $d * %7] 0 )Return:frame20@TransformCall( %1 [%2] [%3] [%4] [20 * $d * %5] 0 [20 * $d * %6] 0 [20 * $d * %7] 0 )Return:frame21@TransformCall( %1 [%2] [%3] [%4] [21 * $d * %5] 0 [21 * $d * %6] 0 [21 * $d * %7] 0 )Return:frame22@TransformCall( %1 [%2] [%3] [%4] [22 * $d * %5] 0 [22 * $d * %6] 0 [22 * $d * %7] 0 )Return:frame23@TransformCall( %1 [%2] [%3] [%4] [23 * $d * %5] 0 [23 * $d * %6] 0 [23 * $d * %7] 0 )Return:frame24@TransformCall( %1 [%2] [%3] [%4] [24 * $d * %5] 0 [24 * $d * %6] 0 [24 * $d * %7] 0 )Return:frame25@TransformCall( %1 [%2] [%3] [%4] [25 * $d * %5] 0 [25 * $d * %6] 0 [25 * $d * %7] 0 )Return:frame26@TransformCall( %1 [%2] [%3] [%4] [26 * $d * %5] 0 [26 * $d * %6] 0 [26 * $d * %7] 0 )Return:frame27@TransformCall( %1 [%2] [%3] [%4] [27 * $d * %5] 0 [27 * $d * %6] 0 [27 * $d * %7] 0 )Return:frame28@TransformCall( %1 [%2] [%3] [%4] [28 * $d * %5] 0 [28 * $d * %6] 0 [28 * $d * %7] 0 )Return:frame29@TransformCall( %1 [%2] [%3] [%4] [29 * $d * %5] 0 [29 * $d * %6] 0 [29 * $d * %7] 0 )Return:frame30@TransformCall( %1 [%2] [%3] [%4] [30 * $d * %5] 0 [30 * $d * %6] 0 [30 * $d * %7] 0 )Return:frame31@TransformCall( %1 [%2] [%3] [%4] [31 * $d * %5] 0 [31 * $d * %6] 0 [31 * $d * %7] 0 )Return:frame32@TransformCall( %1 [%2] [%3] [%4] [32 * $d * %5] 0 [32 * $d * %6] 0 [32 * $d * %7] 0 )Return:frame33@TransformCall( %1 [%2] [%3] [%4] [33 * $d * %5] 0 [33 * $d * %6] 0 [33 * $d * %7] 0 )Return:frame34@TransformCall( %1 [%2] [%3] [%4] [34 * $d * %5] 0 [34 * $d * %6] 0 [34 * $d * %7] 0 )Return:frame35@TransformCall( %1 [%2] [%3] [%4] [35 * $d * %5] 0 [35 * $d * %6] 0 [35 * $d * %7] 0 )Return:frame36@TransformCall( %1 [%2] [%3] [%4] [36 * $d * %5] 0 [36 * $d * %6] 0 [36 * $d * %7] 0 )Return:frame37@TransformCall( %1 [%2] [%3] [%4] [37 * $d * %5] 0 [37 * $d * %6] 0 [37 * $d * %7] 0 )Return:frame38@TransformCall( %1 [%2] [%3] [%4] [38 * $d * %5] 0 [38 * $d * %6] 0 [38 * $d * %7] 0 )Return:frame39@TransformCall( %1 [%2] [%3] [%4] [39 * $d * %5] 0 [39 * $d * %6] 0 [39 * $d * %7] 0 )Return:frame40@TransformCall( %1 [%2] [%3] [%4] [40 * $d * %5] 0 [40 * $d * %6] 0 [40 * $d * %7] 0 )Return:frame41@TransformCall( %1 [%2] [%3] [%4] [41 * $d * %5] 0 [41 * $d * %6] 0 [41 * $d * %7] 0 )Return:frame42@TransformCall( %1 [%2] [%3] [%4] [42 * $d * %5] 0 [42 * $d * %6] 0 [42 * $d * %7] 0 )Return:frame43@TransformCall( %1 [%2] [%3] [%4] [43 * $d * %5] 0 [43 * $d * %6] 0 [43 * $d * %7] 0 )Return:frame44@TransformCall( %1 [%2] [%3] [%4] [44 * $d * %5] 0 [44 * $d * %6] 0 [44 * $d * %7] 0 )Return:frame45@TransformCall( %1 [%2] [%3] [%4] [45 * $d * %5] 0 [45 * $d * %6] 0 [45 * $d * %7] 0 )Return:frame46@TransformCall( %1 [%2] [%3] [%4] [46 * $d * %5] 0 [46 * $d * %6] 0 [46 * $d * %7] 0 )Return:frame47@TransformCall( %1 [%2] [%3] [%4] [47 * $d * %5] 0 [47 * $d * %6] 0 [47 * $d * %7] 0 )Return:frame48@TransformCall( %1 [%2] [%3] [%4] [48 * $d * %5] 0 [48 * $d * %6] 0 [48 * $d * %7] 0 )Return:frame49@TransformCall( %1 [%2] [%3] [%4] [49 * $d * %5] 0 [49 * $d * %6] 0 [49 * $d * %7] 0 )Return:frame50@TransformCall( %1 [%2] [%3] [%4] [50 * $d * %5] 0 [50 * $d * %6] 0 [50 * $d * %7] 0 )Return:frame51@TransformCall( %1 [%2] [%3] [%4] [51 * $d * %5] 0 [51 * $d * %6] 0 [51 * $d * %7] 0 )Return:frame52@TransformCall( %1 [%2] [%3] [%4] [52 * $d * %5] 0 [52 * $d * %6] 0 [52 * $d * %7] 0 )Return:frame53@TransformCall( %1 [%2] [%3] [%4] [53 * $d * %5] 0 [53 * $d * %6] 0 [53 * $d * %7] 0 )Return:frame54@TransformCall( %1 [%2] [%3] [%4] [54 * $d * %5] 0 [54 * $d * %6] 0 [54 * $d * %7] 0 )Return:frame55@TransformCall( %1 [%2] [%3] [%4] [55 * $d * %5] 0 [55 * $d * %6] 0 [55 * $d * %7] 0 )Return:frame56@TransformCall( %1 [%2] [%3] [%4] [56 * $d * %5] 0 [56 * $d * %6] 0 [56 * $d * %7] 0 )Return:frame57@TransformCall( %1 [%2] [%3] [%4] [57 * $d * %5] 0 [57 * $d * %6] 0 [57 * $d * %7] 0 )Return:frame58@TransformCall( %1 [%2] [%3] [%4] [58 * $d * %5] 0 [58 * $d * %6] 0 [58 * $d * %7] 0 )Return:frame59@TransformCall( %1 [%2] [%3] [%4] [59 * $d * %5] 0 [59 * $d * %6] 0 [59 * $d * %7] 0 )Return:frame60@TransformCall( %1 [%2] [%3] [%4] [60 * $d * %5] 0 [60 * $d * %6] 0 [60 * $d * %7] 0 )Return:frame61@TransformCall( %1 [%2] [%3] [%4] [61 * $d * %5] 0 [61 * $d * %6] 0 [61 * $d * %7] 0 )Return:frame62@TransformCall( %1 [%2] [%3] [%4] [62 * $d * %5] 0 [62 * $d * %6] 0 [62 * $d * %7] 0 )Return:frame63@TransformCall( %1 [%2] [%3] [%4] [63 * $d * %5] 0 [63 * $d * %6] 0 [63 * $d * %7] 0 )Return:next@

Share this post


Link to post
Share on other sites
Guest JR Morgan

Hi Luis';'Haven't had a chance to try it yet but Thanks for sharing your macro's code.'Regards;J.R.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Tom Allensworth,
    Founder of AVSIM Online


  • Flight Simulation's Premier Resource!

    AVSIM is a free service to the flight simulation community. AVSIM is staffed completely by volunteers and all funds donated to AVSIM go directly back to supporting the community. Your donation here helps to pay our bandwidth costs, emergency funding, and other general costs that crop up from time to time. Thank you for your support!

    Click here for more information and to see all donations year to date.
×
×
  • Create New...