Tutorials Home
What's New
Top Rated
Submit
myTutes
Random!

Tutorials »
3D
3D Engine for Dummies
Author: KStor
The Rotations (con't)
Now we are going to do the buttons:
- open your first button (say the up-rotation around the x-axis).
Enter this
On (Roll Over)
Set Variable: "sin" = - basesin
Set Variable: "cos" = basecos
Set Variable: "axis" = "x"
End On
On (Release, Roll Out)
Set Variable: "axis" = "none"
End On
The sign of the sine determines which direction the object turns.
When you roll over the button, the axis turned around is set to x, and the sin and cos are stored.
When you roll out, the axis is set to none.
The principle is the same for all the other buttons, but with different values.
- x-axis down rotation
Set Variable: "sin" = basesin
Set Variable: "cos" = basecos
Set Variable: "axis" = "x"
- y-axis right-rotation
Set Variable: "sin" = - basesin
Set Variable: "cos" = basecos
Set Variable: "axis" = "y"
- y-axis left-rotation
Set Variable: "sin" = - basesin
Set Variable: "cos" = basecos
Set Variable: "axis" = "y"
- z-axis rotation(1)
Set Variable: "sin" = - basesin
Set Variable: "cos" = basecos
Set Variable: "axis" = "z"
- z-axis rotation(2)
Set Variable: "sin" = basesin
Set Variable: "cos" = basecos
Set Variable: "axis" = "z"
The last thing we have to do to make our rotation functional is obviously to program the rot frames.
This is a simple use of the math-formulas. Open the rotx frame and enter this
Set Variable: "n" = "1"
Loop While (n<=totalpoints)
Set Variable: "tmp" = (sin * eval("y"&n)) + ( cos * eval("z"&n))
Set Variable: "y"&n = cos * eval("y"&n) - sin * eval("z"&n)
Set Variable: "z"&n = tmp
Set Variable: "n" = n + 1
End Loop If you check this out it corresponds to the formulas in The Math.
Now do the same for the
roty frame:
Set Variable: "n" = "1"
Loop While (n<=totalpoints)
Set Variable: "tmp" = - (sin * eval("x"&n)) + ( cos * eval("z"&n))
Set Variable: "x"&n = cos * eval("x"&n) + sin * eval("z"&n)
Set Variable: "z"&n = tmp
Set Variable: "n" = n + 1
End Loop and for the
rotz frame:
Set Variable: "n" = "1"
Loop While (n<=totalpoints)
Set Variable: "tmp" = (sin * eval("x"&n)) + ( cos * eval("y"&n))
Set Variable: "x"&n = cos * eval("x"&n) - sin * eval("y"&n)
Set Variable: "y"&n = tmp
Set Variable: "n" = n + 1
End Loop
That's all, your engine is finished!
| » Level Advanced |
|
|
Added: : 2000-12-04
Rating: 8.97 Votes: 2633
Hits: 4706
|
| » Author |
|
KStor is a student living in France and working with Flash during his free time...that is, not very much.
|
| » Download |
|
Download the files used in this tutorial.
|
|
Download (39 kb)
|
|
Get conversion and unzipping tools
for PC and Mac here!
|
| » Forums |
|
More help? Search our boards for quick answers!
|
|
Please rate this tutorial, 10 is the top rating, you can also click the
comments link to read/write a review.
|
|
|