Making Things Move! into 3rd printing!

Unbelievable. I was just informed that Foundation ActionScript Animation: Making Things Move! is now beginning its third print run, after only 5 months on the shelves. Out of the other eight books I’ve worked on, only one other one has ever made it to a second printing as far as I know, and that was after almost a year.

Also, it looks like I’ll actually be seeing some more money from this one. The way books generally work is that the author gets an advance and the royalties on the actual sales go to pay off that advance. Once the advance is paid off, any additional royalties go to back to the author. Again, out of the books I’ve worked on, only one has ever paid off its advance, and I think I wound up with and additional $50 or $100 after that. But it looks like that in the fourth quarter 05, about 70% of my advance was covered. Since the book was released in late October, that’s just over two months sales. So I think I should be getting a nice check at the end of this quarter.

So thanks for everyone buying it and saying nice things about it. As mentioned, I’m pretty sure we’ll start planning an AS3 version in the next few months, though that probably won’t see the shelves til very late 2006, if not early 2007 (in other words, keep buying this one!!!)

This entry was posted in General. Bookmark the permalink.

9 Responses to Making Things Move! into 3rd printing!

  1. That’s awesome! Congratulations! I know I bought one and I’ve used it on many occasions already. Since you’ve mentioned how books generally work, I have a quick question for you if you don’t mind: What if the royalties don’t ever match up and pay off the advance? Does that mean you owe them money? I ask because my first opportunity to take part in helping write a book has presented itself. Just a chapter for now, but I hear that’s generally how you get started.

  2. kp says:

    Thanks. No, generally the publisher just takes the loss. Of course, you should always check your contract to make sure that’s how it works. I read that only 10% of all books published actually make enough to cover the advances. But I guess they make enough to cover all the rest.

  3. MD says:

    I am fairly new to AS and OOP and recently purchased your book. In fact, I have it open on p. 204 at this very moment. I am enjoying it so far. There are not very many books out there dealing specifically with AS animation techniques. And yours is very helpful. Thanks for your work.

  4. Daniel says:

    Hi Keith,

    i think this article will be of interest to you 😉

    http://www.loudthinking.com/arc/000580.html

  5. MD says:

    I am having trouble getting this script to work. I wonder why?

    var vr:Number = .05;
    var cosine:Number = Math.cos(vr);
    var sine:Number = Math.sin(vr);
    function onEnterFrame():Void{
    var x:Number = ball._x – Stage.width / 2;
    var y:Number = ball._y – Stage.height / 2;
    var x1:Number = cosine * x – sine * y;
    var y1:Number = cosine * y + sine * x;
    ball._x = Stage.width / 2 + x1;
    ball._y = Stage.height / 2 + y1;
    }

  6. MD says:

    Neither does this one, from ch. 10, pps. 220-221, “Coordinate Rotation and Bouncing Off Angles.”

    var vx:Number = 0;
    var vy:Number = 0;
    var gravity:Number = .5;
    var bounce:Number = -0.7;

    function onEnterFrame():Void
    {
    vy += gravity;
    ball._x += vx;
    ball._y += vy;

    //get angle, sine and cosine

    var angle:Number = line._rotation * Math.PI / 180;
    var cosine:Number = Math.cos(angle);
    var sine:Number = Math.sin(angle);

    //get the position of ball relative to the line
    var x:Number = ball._x – line._x;
    var y:Number = ball._y – line._y;

    //rotate the line
    var x1:Number = cosine * x + sine * y;
    var y1:Number = cosine * y – sine * x;

    // rotate velocity

    var vx1:Number = cosine * vx + sine * vy;
    var y1:Number = cosine * vy – sine * vx;

    //perform bounce with rotated values
    if (y1 > -ball._height / 2)
    {
    y1 = -ball._height / 2;
    vy1 *= bounce;
    }

    //rotate everything back
    x = cosine * x1 – sine * y1;
    y = cosine * y1 + sine * x1;
    vx = cosine * vx1 – sine * vy1;
    vy = cosine * vy1 + sine * vx1;

    // reset actual ball position

    ball._x = line._x + x;
    ball._y = line._y + y;
    }

  7. kp says:

    MD, i have no idea what you want your first script to do, so i don’t know what “not working” means.

    In the second one…

    // rotate velocity

    var vx1:Number = cosine * vx + sine * vy;
    var y1:Number = cosine * vy – sine * vx;

    last line should be

    var vy1:Number = cosine * vy – sine * vx;

    I copied and pasted your code and changed that one thing and it worked.

  8. gene says:

    hi, keith
    this a great book, i really learn a lot from it.
    here is a question for you. On page 249(Billiard ball physics), i dont understand the formula:
    var x1:Number = dx*cosine + dy*sine;
    var y1:Number = dy*cosine – dx*sine;

    first of all, i cant understand these two will out a diagram or illustration,

    second, according to your explaination on p 244-246; y1 should be always “0” , rite?
    but in your formula for y1, it will calculate out a very small number, not 0, could you please illustrate how you get y1?

    third, why x1 always be a “positive” number?
    is the formula rotating the ball_1 to the right side of ball_0?

    Please tell me how it works, you are a truely master of mine, thank you for publishing such a good book!

  9. gene says:

    Keith,
    I know how you got x1 now. in fact, it’s equal to “dist”, right?

Leave a Reply