I've got a neat little animation where a spring compresses, let's go and then flies across the room.
In the interaction editor I've got the Animate Object of the spring compressing and releasing. And then the Move Object so the spring flies.
1) How can I change the destination of the spring in midair? I want it to go straight out and then fall to a desk. I now have one set of destination coords in the Move Object interaction followed by the second action with the different coordinates. I thought that would work, but what happens is that it ignores the first action location and goes directly to the second action coordinates. Not bad, but not what I want.
2) Is there a way to have the animation finish and then immediately go to the Move Object? Right now the animation shows the spring compressing, the last view shows it back to the original shape. But then there's a slight delay before the object moves across the room and it looks unnatural.
Any help on these two problems would be appreciated.
You need to tell us more about what you've tried already. For example, the first question - I'd say making the first part of the movement blocking would solve it (Wait for move to finish: True in the interaction editor, or the eBlock parameter in scripting). However if you've tried that, or don't want it blocking (e.g. if it's a background action), then obviously that's no good. Likewise, the second question depends on how you've got it set up to start with.
The only general answer I could give would be to have the whole thing (compression & jump) on the sprite - instead of having a small spring object that you move, have a large object that shows the movement - but maybe someone else can come up with a better suggestion.
Thanks for responding. You answered my first question. I had to make sure the blocking was set for the first movement to finish before the second one.
I still can't figure out the second problem. Here's what I have:
object[0].SetView(14);
object[0].Animate(0,20,eOnce,eBlock);
object[0].Move(152,92,7,eBlock);
object[0].Move(214,140,5,eBlock);
Sorry, I can't understand what you're trying to say here:
Quote from: Ashen on Fri 11/11/2005 11:56:25
The only general answer I could give would be to have the whole thing (compression & jump) on the sprite - instead of having a small spring object that you move, have a large object that shows the movement - but maybe someone else can come up with a better suggestion.
The only thing I can think to suggest is changing the delay / frame speeds you use when animating the object. I.e. decrease the DELAY parameter of
Object.Animate, and increase the SPD setting (in the 'View' editor) for every frame of the spring anim
except the last. Since the frame delay is DELAY + SPD, the last frame shouldn't stay on as long as the others before moving onto the
Object.Move command, possibly removing the 'slight delay' you mentioned.
QuoteSorry, I can't understand what you're trying to say here:
I was trying to explain quickly, and I guess I didn't do a very good job. Instead of having, for example, an object 10 pixels by 10 pixels, and moving it up the screen 100 pixels, then 100 pixels down again, have a 100x10 pixel object, and
animate the movement, while the object actually stands still.
So, instead of moving this guy (http://www.geocities.com/whoismonkey/lilguy.png) with
Object.Move, you'd use a view like this:
(http://www.geocities.com/whoismonkey/bounce.gif)
Thanks Ashen.
Changing the delay and frame speed did the trick after quite a bit of trial & error. But I like how it looks now.
I understand your second suggestion now. I'm sure that would have done the trick too but with a lot more work.
I appreciate your help.