There could well be a formula, but the easiest way to do things is to model the movement using x,y,z speed vectors. Then just position the object each program loop at its current position, plus each of the x,y,z speeds. To get the curve, you then just add a gravity constant to the yspeed.
Ya variables
xspeed# = 0
yspeed# = 0
zspeed# = 0
Gravityconstant# = 0.01
To calculate what speed each variable should be, based on the angle of your turret, plus the overall speed you want the projectile to be launched at:
xspeed# = shotspeed# * cos(turret_y_angle)
yspeed# = shotspeed# * sin(turret_x_angle)
zspeed# = shotspeed# * cos(turret_y_angle) * cos(turret_x_angle)
(Thanks to Ed for helping me out with those equations a while back)
Then simple move the object based on its speed each loop, and add a gravity contant to the yspeed# each loop:
yspeed#=yspeed# - GravityConstant#
position object obj,object position x(obj)+xspeed#,object position y(obj)+yspeed#,object position z(obj)+zspeed#
Hope that helps.
Insiiiiiiiiiiiiiiiiiiiiiiiide!