Смотрите.. в случае 2D вы используете
cos для
x и
sin для
y. Это правильно, но из-за этого у вас и путаница, потому что более строго это выглядит так:
x+=Math.cos(angleX)*speed;
y+=Math.cos(angleY)*speed; // да, тут тоже косинус, но угол другой
потому что мы не можем 'перемещать на угол', мы можем только перемещать
вдоль вектора.
В случае 2D - это вектор
{cos(angleX), cos(angleY)}.
В случае 3D -
{cos(angleX), cos(angleY), cos(angleZ)},
где angle* - угол с соответствующей осью.
Почитайте про
направляющие косинусы.
То есть, если отвечать на ваш вопрос '
как сюда приписать третью координату и третью ось', то найдите угол с осью Z и добавьте
z+=Math.cos(angleZ)*speed;
UPD Сейчас внимательнее посмотрел ваш код - у вас объявлена переменная
angle2 - может быть это она и есть (угол с осью Z)? :) Тогда будет просто
z += Math.cos(angle2) * speed;