Basically what I did was based kinda on postings from dave yazel. I have a java collection of scenegraph transactions,
- move camera
- add sound
- animate texture
- etc
when a object is picked I add an animate/camera move/whatever object containing the required info door object, open direction, whatever to the transaction queue
Based on my frame rate goal, say20 frames/sec I perform a portion of the items in my trancation queue, BEFORE RENDERING,
As transactions occur I monitor frame rate and increment the number of prerender transactions I perform. If the frame reate drops to low I reduce the number per fram I process.
The advantage is your can extend the types of tranaactions as needed.
I my game I wanted to pick on a ladder, translate to it and climb it. Given the frames/sec I add N CAMERA_FORWARD transactions (small inc moves for smoothness) which moves me towards the ladder over say 2 secs and M CAMERA_ELEVATES to climb the ladder
Make sense??