First time here? First time here? Newsletter Signup Newsletter
Search tutorials
Author: Morten Barslund (GotCha) | Website: http://www.hhbk.subnet.dk/GotCha.html

Friction and Elasticity (cont.)

Finally, we want to back and forth until we reach the position (elasticity), which is done by changing the way we calculate the distance v. Here, we take the previous value of v plus 100-x, which we divide by another constant myRatio (this is simply equivalent to another speed). This is divided by myFriction. Hereby, we accomplish that even though the distance is 0, we will still move either back or forward, because of the previous speed. We are just adding the previous speed to the current speed; the code looks like this:

i = 1; 
for (i; i<%lt%>=myLength; i++) { 
    if (i == 1) { 
        trail1.speedX = (myTrails[i].speedX+(_xmouse+letterSpace-myTrails[i].xPos)/myRatio)/myFriction; 
        trail1.speedY = (myTrails[i].speedY+(_ymouse-myTrails[i].yPos)/myRatio)/myFriction; 
        trail1.xPos = myTrails[i].xPos+myTrails[i].speedX; 
        trail1.yPos = myTrails[i].yPos+myTrails[i].speedY; 
    } else { 
        myTrails[i].speedX = (myTrails[i].speedX+(myTrails[i-1].xPos+letterSpace-           
        myTrails[i].speedY = (myTrails[i].speedY+(myTrails[i-1].yPos-myTrails[i].yPos)/myRatio)/myFriction; 
        myTrails[i].xPos = myTrails[i].xPos+myTrails[i].speedX; 
        myTrails[i].yPos = myTrails[i].yPos+myTrails[i].speedY; 
    myTrails[i]._x = myTrails[i].xPos; 
    myTrails[i]._y = myTrails[i].yPos; 

The first thing we do is to reset our counter i, because we want to use it again. Next, we have a loop, which ensures that our instructions are carried out to every movie clip. This loop can be divided into two cases. In the first case, i equals 1 and we calculate the distance to the mouse rather than the previous movie clip (it doesn't exist). After this, we store a variable speedX according to the logic described earlier (speedX equals v), inside the first movie clip. What we're doing is to take the previous value of speedX, the distance to the mouse plus the distance between to movie clips (letterSpace) and add these. Then, we divide by myRatio and since myFriction. When we look at the expression, we also see that these two must be greater than 1. For instance, if myFriction were 0,5 then we would be multiplying by 2; we would be moving further and further away (myRatio can be smaller than 1, though it isn't desirable). After this, we calculate the next position xPos, which is the current position plus the calculated speed speedX. As mentioned, the logic is the same both in the horizontal plane and in the vertical plane, which is why we write exactly the same in the vertical plane (we simply change x to y). Finally, we look at the cases, where i isn't equal to 1 and discover that the logic is exactly the same, except from that we calculate the distance to the previous movie clip and not the mouse. These instructions are located in the second frame, while we find the following in the third and last frame:

gotoAndPlay (_currentframe-1);                    

This is simply another loop (frame-based), where we keep returning to the previous frame (frame 2).

This is the end of the tutorial.

» Level Advanced

Added: 2000-12-30
Rating: 8 Votes: 104
(10 being the highest)
» Author
» Download
Download the files used in this tutorial.
» Forums
More help? Search our boards for quick answers!


  • There are no comments yet. Be the first to comment!

  • You must have javascript enabled in order to post comments.

Leave a Comment
  • Your email address will not be published. All fields are required.
Featured Flash FLA
» Author: Inocreato
» Title: RaiseTheBlocks
» Description: Raise all the blocks to win the game
Featured Sound Loops
Image for equalize

Audio Player

» Author: TomCat Carty
» Title: The Wood
» Description: Just a little game ending or it can maybe be looped. Recorders with music box and percussion to give the feel of well, I don't know, the woods? Free to use, just credit me. thank you
Latest Font
» Author: Fábio FAFERS
» Description: I created this font for free use. Everyone can apply it in personal or business texts. Its free, but I want to be communicated in case of business use. Donations are accepted to keep the project of free fonts alive! Thank you all
Featured Sound Fx
Image for equalize

Audio Player

» Author: Davisigner
» Description: Hmm... what to say about this one? It's reminiscent of the closing notes of the opening music from the Three Stooges done in a church organ style with a closing cymbal crash. I'll give this one away gratis, but feel free to check out my free loops and potential upcoming license-mandated ones over in the respective part of Flashkit.