本文整理汇总了C++中MouseInput::setTimeStamp方法的典型用法代码示例。如果您正苦于以下问题:C++ MouseInput::setTimeStamp方法的具体用法?C++ MouseInput::setTimeStamp怎么用?C++ MouseInput::setTimeStamp使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MouseInput
的用法示例。
在下文中一共展示了MouseInput::setTimeStamp方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: simulateMouseClick
void SDLInput::simulateMouseClick(const int x, const int y,
const MouseButton::Type button)
{
MouseInput mouseInput;
mouseInput.setX(x);
mouseInput.setY(y);
mouseInput.setReal(x, y);
mouseInput.setButton(button);
mouseInput.setType(MouseEventType::PRESSED);
mouseInput.setTimeStamp(SDL_GetTicks());
mMouseInputQueue.push(mouseInput);
mouseInput.setType(MouseEventType::RELEASED);
mouseInput.setTimeStamp(SDL_GetTicks());
mMouseInputQueue.push(mouseInput);
}
示例2: pushInput
void SDLInput::pushInput(SDL_Event event)
{
KeyInput keyInput;
MouseInput mouseInput;
switch (event.type)
{
case SDL_KEYDOWN:
keyInput.setKey(convertKeyCharacter(event.key.keysym));
keyInput.setType(KeyInput::PRESS);
mKeyInputQueue.push(keyInput);
break;
case SDL_KEYUP:
keyInput.setKey(convertKeyCharacter(event.key.keysym));
keyInput.setType(KeyInput::RELEASE);
mKeyInputQueue.push(keyInput);
break;
case SDL_MOUSEBUTTONDOWN:
mMouseDown = true;
mouseInput.x = event.button.x;
mouseInput.y = event.button.y;
mouseInput.setButton(convertMouseButton(event.button.button));
mouseInput.setType(MouseInput::PRESS);
mouseInput.setTimeStamp(SDL_GetTicks());
mMouseInputQueue.push(mouseInput);
break;
case SDL_MOUSEBUTTONUP:
mMouseDown = false;
mouseInput.x = event.button.x;
mouseInput.y = event.button.y;
mouseInput.setButton(convertMouseButton(event.button.button));
mouseInput.setType(MouseInput::RELEASE);
mouseInput.setTimeStamp(SDL_GetTicks());
mMouseInputQueue.push(mouseInput);
break;
case SDL_MOUSEMOTION:
mouseInput.x = event.button.x;
mouseInput.y = event.button.y;
mouseInput.setButton(MouseInput::EMPTY);
mouseInput.setType(MouseInput::MOTION);
mouseInput.setTimeStamp(SDL_GetTicks());
mMouseInputQueue.push(mouseInput);
break;
case SDL_ACTIVEEVENT:
/*
* This occurs when the mouse leaves the window and the Gui-chan
* application loses its mousefocus.
*/
if ((event.active.state & SDL_APPMOUSEFOCUS)
&& !event.active.gain)
{
mMouseInWindow = false;
if (!mMouseDown)
{
mouseInput.x = -1;
mouseInput.y = -1;
mouseInput.setButton(MouseInput::EMPTY);
mouseInput.setType(MouseInput::MOTION);
mMouseInputQueue.push(mouseInput);
}
}
if ((event.active.state & SDL_APPMOUSEFOCUS)
&& event.active.gain)
{
mMouseInWindow = true;
}
break;
} // end switch
}
示例3: pushInput
void SDLInput::pushInput(const SDL_Event &event)
{
BLOCK_START("SDLInput::pushInput")
KeyInput keyInput;
MouseInput mouseInput;
switch (event.type)
{
case SDL_KEYDOWN:
{
keyInput.setType(KeyEventType::PRESSED);
convertKeyEventToKey(event, keyInput);
mKeyInputQueue.push(keyInput);
break;
}
case SDL_KEYUP:
{
keyInput.setType(KeyEventType::RELEASED);
convertKeyEventToKey(event, keyInput);
mKeyInputQueue.push(keyInput);
break;
}
#ifdef USE_SDL2
case SDL_TEXTINPUT:
keyInput.setType(KeyEventType::PRESSED);
keyInput.setKey(Key(Key::TEXTINPUT));
keyInput.setText(event.text.text);
mKeyInputQueue.push(keyInput);
break;
case SDL_MOUSEWHEEL:
{
const int y = event.wheel.y;
if (y)
{
mouseInput.setX(gui->getLastMouseX());
mouseInput.setY(gui->getLastMouseY());
#ifdef ANDROID
mouseInput.setReal(0, 0);
#endif
mouseInput.setButton(MouseButton::WHEEL);
if (y > 0)
mouseInput.setType(MouseEventType::WHEEL_MOVED_UP);
else
mouseInput.setType(MouseEventType::WHEEL_MOVED_DOWN);
mouseInput.setTimeStamp(SDL_GetTicks());
mMouseInputQueue.push(mouseInput);
}
break;
}
#endif
#ifdef ANDROID
#ifndef USE_SDL2
case SDL_ACCELEROMETER:
break;
#endif
#endif
case SDL_MOUSEBUTTONDOWN:
{
mMouseDown = true;
const int scale = mainGraphics->getScale();
const int x = event.button.x / scale;
const int y = event.button.y / scale;
mouseInput.setX(x);
mouseInput.setY(y);
#ifdef ANDROID
#ifdef USE_SDL2
mouseInput.setReal(x, y);
#else
mouseInput.setReal(event.button.realx / scale,
event.button.realy / scale);
#endif
#endif
mouseInput.setButton(convertMouseButton(event.button.button));
#ifndef USE_SDL2
if (event.button.button == SDL_BUTTON_WHEELDOWN)
mouseInput.setType(MouseEventType::WHEEL_MOVED_DOWN);
else if (event.button.button == SDL_BUTTON_WHEELUP)
mouseInput.setType(MouseEventType::WHEEL_MOVED_UP);
else
#endif
mouseInput.setType(MouseEventType::PRESSED);
mouseInput.setTimeStamp(SDL_GetTicks());
mMouseInputQueue.push(mouseInput);
break;
}
case SDL_MOUSEBUTTONUP:
{
mMouseDown = false;
const int scale = mainGraphics->getScale();
const int x = event.button.x / scale;
const int y = event.button.y / scale;
mouseInput.setX(x);
mouseInput.setY(y);
//.........这里部分代码省略.........
示例4: pushInput
void SDLInput::pushInput(SDL_Event event)
{
KeyInput keyInput;
MouseInput mouseInput;
switch (event.type)
{
case SDL_KEYDOWN:
{
int value = convertSDLEventToGuichanKeyValue(event);
if (value == -1)
{
value = (int)event.key.keysym.unicode;
}
keyInput.setKey(Key(value));
keyInput.setType(KeyInput::PRESSED);
keyInput.setShiftPressed(event.key.keysym.mod & KMOD_SHIFT);
keyInput.setControlPressed(event.key.keysym.mod & KMOD_CTRL);
keyInput.setAltPressed(event.key.keysym.mod & KMOD_ALT);
keyInput.setMetaPressed(event.key.keysym.mod & KMOD_META);
keyInput.setNumericPad(event.key.keysym.sym >= SDLK_KP0
&& event.key.keysym.sym <= SDLK_KP_EQUALS);
mKeyInputQueue.push(keyInput);
break;
}
case SDL_KEYUP:
{
int value = convertSDLEventToGuichanKeyValue(event);
if (value == -1)
{
value = (int)event.key.keysym.sym;
}
keyInput.setKey(Key(value));
keyInput.setType(KeyInput::RELEASED);
keyInput.setShiftPressed(event.key.keysym.mod & KMOD_SHIFT);
keyInput.setControlPressed(event.key.keysym.mod & KMOD_CTRL);
keyInput.setAltPressed(event.key.keysym.mod & KMOD_ALT);
keyInput.setMetaPressed(event.key.keysym.mod & KMOD_META);
keyInput.setNumericPad(event.key.keysym.sym >= SDLK_KP0
&& event.key.keysym.sym <= SDLK_KP_EQUALS);
mKeyInputQueue.push(keyInput);
break;
}
case SDL_MOUSEBUTTONDOWN:
mMouseDown = true;
mouseInput.setX(event.button.x);
mouseInput.setY(event.button.y);
mouseInput.setButton(convertMouseButton(event.button.button));
if (event.button.button == SDL_BUTTON_WHEELDOWN)
{
mouseInput.setType(MouseInput::WHEEL_MOVED_DOWN);
}
else if (event.button.button == SDL_BUTTON_WHEELUP)
{
mouseInput.setType(MouseInput::WHEEL_MOVED_UP);
}
else
{
mouseInput.setType(MouseInput::PRESSED);
}
mouseInput.setTimeStamp(SDL_GetTicks());
mMouseInputQueue.push(mouseInput);
break;
case SDL_MOUSEBUTTONUP:
mMouseDown = false;
mouseInput.setX(event.button.x);
mouseInput.setY(event.button.y);
mouseInput.setButton(convertMouseButton(event.button.button));
mouseInput.setType(MouseInput::RELEASED);
mouseInput.setTimeStamp(SDL_GetTicks());
mMouseInputQueue.push(mouseInput);
break;
case SDL_MOUSEMOTION:
mouseInput.setX(event.button.x);
mouseInput.setY(event.button.y);
mouseInput.setButton(MouseInput::EMPTY);
mouseInput.setType(MouseInput::MOVED);
mouseInput.setTimeStamp(SDL_GetTicks());
mMouseInputQueue.push(mouseInput);
break;
case SDL_ACTIVEEVENT:
/*
* This occurs when the mouse leaves the window and the Gui-chan
* application loses its mousefocus.
*/
if ((event.active.state & SDL_APPMOUSEFOCUS)
&& !event.active.gain)
{
//.........这里部分代码省略.........