Member 13448150 Ответов: 0

Как бы я заставил своего персонажа сделать 360 в игре, используя только ввод мыши?


Эй, я пытаюсь заставить свою мышь делать 360-градусное движение в игре, используя только ввод мыши, возможно ли это?

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

В настоящее время я использую эти функции для управления мышью:
void cMouseInput::MouseSetup(INPUT* InputBuffer)
{
	InputBuffer->type = INPUT_MOUSE;
	InputBuffer->mi.dx = (0 * (0xFFFF / SCREEN_WIDTH));
	InputBuffer->mi.dy = (0 * (0xFFFF / SCREEN_HEIGHT));
	InputBuffer->mi.mouseData = 0;
	InputBuffer->mi.dwFlags = MOUSEEVENTF_ABSOLUTE;
	InputBuffer->mi.time = 0;
	InputBuffer->mi.dwExtraInfo = 0;
}

void cMouseInput::MoveMouse(INPUT* InputBuffer, int X, int Y)
{
	InputBuffer->mi.dx = (X * (0xFFFF / SCREEN_WIDTH));
	InputBuffer->mi.dy = (Y * (0xFFFF / SCREEN_HEIGHT));
	InputBuffer->mi.dwFlags = (MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE);

	SendInput(1, InputBuffer, sizeof(INPUT));
}

И я использую их вот так:
cMouseInput M;
M.MouseSetup(&M.InputBuffer);
M.MoveMouse(&M.InputBuffer, POS_X, POS_Y);

Это не работает, потому что,
1. слишком быстро, я должен был бы найти способ сгладить это на ступеньку ниже.
2. Я не могу получить его, чтобы выполнить полное вращение.
3. Он только перемещает курсор с определенными координатами x и y координата на экране. Неужели нет никакого способа просто заставить мышь сделать имитированное правильное движение..? Например MoveRight(200px); -> переместить курсор мыши на 200 пикселей вправо. (В качестве примера)

Rick York

Мне кажется, и я могу ошибаться, что это подпадает под категорию интерпретации жестов, так что взгляните на код для этого. Там обязательно будет много, потому что этот материал используется во многих местах. Вероятно, что-то есть и на этом сайте. Я бы добавил ссылки, но вы можете искать так же хорошо, как и я.

0 Ответов