I'm currently working on some code to simulate the throwing of a ball when the left mouse is clicked. At the moment, when the left mouse button is clicked a sphere mesh is loaded, and attached to a node positioned at the camera position. It then moves off in the direction the camera is pointing as required. However, a second sphere mesh is also being created and remains stationary at the point the sphere was fired. My code dealing with this is as follows:
Try putting a time limit between fire times. My guess is you're making tons of balls, not just one extra one... one ball each frame.. and only the most recently created is moved.
Another way would be to have a boolean value and use it so that only one ball can be created at a time.
The only other problem I'm noticing is that if I fire a ball soon after the application starts (within the first second or so) it seems to fly about randomly at extremely high speeds before dissapearing. If I wait a few moments though (or fire a second ball off) it acts as expected.
I think I'll probably just ensure a ball can't be fired for a couple of seconds after application start to solve this issue, rather than go hunting for the problem.