I'm working on a game that you control a trebuchet to throw balls to the opponent.
It's like a game called 'Medieval Siege'. When the trebuchet is swinging its arm, player need to seize the best moment to press button and release the ball. Then the ball will fly at the tangent angle. My problem right now is that the trebuchet arm swing too fast for player to seize the right moment. Meanwhile it has to be this fast otherwise it can't throw far enough. And there is a tiny string connecting the ball and trebuchet arm, if the arm swing too slow, the ball is just hanging on the string when the arm move.
I solve the problem by toggling step size, whenever the arm is swing, I change step size from 1/60 to 1/200. And once player release the ball, it's back to 1/60.
This works pretty good except my game is for multiplayer with networking. So changing step may cause problem.
Another solution I can think of is to allow it swing slow, but when player release the ball, I manually add velocity onto the ball while keeping its direction. I don't really like this solution cause it looks fake and I still have the problem that the ball is just hanging on the string, unless I make string very very short..
Please shed some light on this, thanks!
Thanks for everyone's input, I solve the problem by making the arm swing slow and when player release the ball, grab ball's velocity and times two. It looks exactly the same as changing step size. There's just one extra thing I need to do. Because the arm is swinging really slow, the ball is just hanging on the arm end instead of swinging. I solved this by applying a force equal to the gravitational force on the ball during and only during the swing period. Then it no longer hang there but swing together with arm.
@MrCranky 's answer is detailed and looks doable, so I'd accept it. :)