Gremlin92
@Gremlin92
Целеустремленный

Сделать однократный поворот вокруг оси?

void Scene1::ShowDrum(int countdrums,int counttextureondrums,std::vector<std::string> drum, bool*buttons)
{
....
        if (buttons[2]) {
		StartRotate();
	}
	Rotate();
....
}
void Scene1::Rotate()
{
	for (int i = 0; i<CountDrum; i++)
	{
		if (startrotate[i])
		{
			if (rotate[i]<360.0f)
				rotate[i] += 5.0f;
			else
			{
				startrotate[i] = false;
				rotate[i] = 0.0f;
			}
		}
	}
}
void Scene1::StartRotate()
{
	for (int i = 0; i<CountDrum; i++)
	{
		if (startrotate[i] && rotate[i] != 0.0f)
			continue;
		startrotate[i] = true;
		rotate[i] = 0.0f;
	}
}

Тут получается что при нажатии иногда крутится больше чем на 360 градусов(например если зажать button[2] дольше чем происходит поворот , а иногда хз от чего)
  • Вопрос задан
  • 78 просмотров
Решения вопроса 1
Gremlin92
@Gremlin92 Автор вопроса
Целеустремленный
Добавил переменную pressbutton которая увеличивается на 1 если зажата клавиша (клавы или мыши)из-за чего она становится все больше и при отпускании переменная обращается в 0.
if (buttons[2] && pressbutton == 1) {//то есть один раз нажали стала 1 можно начинать крутить
		StartRotate();
	}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы