Member 13485594 Ответов: 2

Проблема "АБС": / перегруженные функции


двусмысленный вызов перегруженной функции. Не могу это исправить, и я не знаю, как работает АБС, просто пытаюсь исправить код и использовать его, чтобы сделать чит для видеоигры, ха-ха.
Любая помощь была бы признательна, если бы вы могли переписать эту строку для меня, я был бы очень признателен.

Что я уже пробовал:

float GetWavRoll(Vector dir)
{
	Vector forward(1, -dir.x, dir.y);

	Vector up(0, -dir.x, abs(dir.y + (1 / dir.y) + (1 / dir.y)));

	if (dir.x > 0 && dir.y < 0)
		up.y = abs(up.y);
	else if (dir.x < 0 && dir.y < 0)
		up.y = -abs(up.y);

	Vector left = up.Cross(forward);

	float roll = deg(atan2f(left.z, (left.y * forward.x) - (left.x * forward.y)));
}

Richard MacCutchan

Что такое up и что это за тип члена y?

2 Ответов

Рейтинг:
2

Richard MacCutchan

Смотреть также abs, labs, llabs, _abs64[^].


CPallini

5.

Рейтинг:
1

CPallini

abs ожидает целочисленный параметр, когда вы используете переменные с плавающей запятой (я думаю). Воспользуйся внедрение FABS[^] вместо.

[обновление]
Как правильно заметил Ричард, существуют перегруженные реализации abs для C++.
[/обновление]


Richard MacCutchan

Смотрите мою ссылку выше.

CPallini

Ну, все эти функции применимы и к целочисленным параметрам. Я что-то упустил?

Richard MacCutchan

double abs(
double n
); // C++ only

Все еще называть брюшной пресс

CPallini

Ну, похоже, я действительно что-то упустил. Спасибо, что указал на это, Ричард.

Richard MacCutchan

Если бы у меня был фунт (или евро) за каждый раз, когда я что-то упускал ... :)

CPallini

:-) Фунт все же лучше.

Richard MacCutchan

Только что :(