If all you’re doing is zooming a 2D camera, you should be able to just scale the difference in coordinates yourself…I think?
The camera View and Projection transforms depend on the ‘go.get_world’ functions, and as far as I know there’s no way to manually trigger a game object’s world transform to update, so during update the camera transforms will always be based on the camera’s position at the start of that frame.
If in your case you can assume that the camera will never have a transformed parent, you could modify it to calculate the View and Projection transforms based on the camera’s local transform instead. Take a look at ‘M.calculate_view()’ and ‘M.calculate_proj()’ in rendercam.lua.