scripted Ipo Actuator usage

I am trying to get an IPO actuator to simulate the way a helicopter rotor spins up (game-style, of course). From a stop, the rotor should start to spin up while a keyboard sensor is true, and if it fails to complete the process of spinning up, the rotor should continue to spin, however gradually lose its speed until it returns again to a stop. My first thought was to use an IPO actuator, but after numerous attempts at implementation, this does not seem to be working out so well. For one I cannot arpitrarily pause the playback of the IPO, nor can I reset it to its initial position when I care to. I’m guessing I should just create a function using a timer to set a frame property that will have the behaviours I’m interested in, but just poking around for any other ideas first.


My idea:
Have a rotational IPO that rotates the rotor.
Use an ipoactuator in property mode to play the ipo.
Then increase the play property (e.g. “frame”) by another “speed” property. The property actuator could add “speed” to “frame”.
By increasing/decreasing the speed property you can control the speed of the rotation of the rotor.

Here is an example:
variable animation speed.blend (172 KB)