Sign in to follow this  
Guest JR Morgan

Rotating Scenery Objects

Recommended Posts

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
Help AVSIM continue to serve you!
Please donate today!

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