本文整理汇总了C++中Window::GetEvent方法的典型用法代码示例。如果您正苦于以下问题:C++ Window::GetEvent方法的具体用法?C++ Window::GetEvent怎么用?C++ Window::GetEvent使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Window
的用法示例。
在下文中一共展示了Window::GetEvent方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Window_getEvent
static VALUE Window_getEvent(VALUE vSelf) {
// Get C++ object pointer from vSelf
Window *pSelf;
Data_Get_Struct(vSelf, Window, pSelf);
Event ePoll;
if(!pSelf->GetEvent(ePoll))
return Qnil;
DECLARE_OBJ_VAR(Event, Event, ePoll);
return vEvent;
}
示例2: update
void EngineInput::update( Window &win )
{
Event event;
U32 code;
for( size_t i = 0; i < IO_KEY_MAX; ++i ) {
keys[i].pressed = false;
keys[i].released = false;
if( i < IO_MOUSE_MAX ) {
buttons[i].pressed = false;
buttons[i].released = false;
}
}
closed = alpha = numeric = text = click = type = false;
alphastr.clear();
numericstr.clear();
textstr.clear();
mouse.w = 0;
while( win.GetEvent( event )) {
if( event.Type == Event::Closed ) {
closed = true;
} else if( event.Type == Event::KeyPressed ) {
code = event.Key.Code;
shift = event.Key.Shift;
assert( code < IO_KEY_MAX, "Key array to small: " << code );
keys[ code ].pressed = true;
keys[ code ].down = true;
keys[ code ].released = false;
if( 'a' <= code && code <= 'z' ) {
alpha = text = true;
alphastr += toupper((char)code);
textstr += toupper((char)code);
}
if( '0' <= code && code <= '9' ) {
numeric = text = true;
numericstr += (char)code;
textstr += (char)code;
}
type = true;
} else if( event.Type == Event::KeyReleased ) {
code = event.Key.Code;
shift = event.Key.Shift;
assert( code < IO_KEY_MAX, "Key array to small: " << code );
keys[ code ].pressed = false;
keys[ code ].down = false;
keys[ code ].released = true;
} else if( event.Type == Event::MouseButtonPressed ) {
code = event.MouseButton.Button;
if( code == Mouse::Left ) code = 0;
else if( code == Mouse::Right ) code = 1;
else if( code == Mouse::Middle ) code = 2;
else if( code == Mouse::XButton1 ) code = 3;
else code = 4;
assert( code < IO_MOUSE_MAX, "Button array is to small" );
buttons[ code ].pressed = true;
buttons[ code ].down = true;
buttons[ code ].released = false;
click = true;
} else if( event.Type == Event::MouseButtonReleased ) {
code = event.MouseButton.Button;
if( code == Mouse::Left ) code = MOUSE_LEFT;
else if( code == Mouse::Right ) code = MOUSE_RIGHT;
else if( code == Mouse::Middle ) code = MOUSE_MIDDLE;
else if( code == Mouse::XButton1 ) code = MOUSE_XBUTTON1;
else code = MOUSE_ELSE;
assert( code < IO_MOUSE_MAX, "Button array is to small" );
buttons[ code ].pressed = false;
buttons[ code ].down = false;
buttons[ code ].released = true;
} else if( event.Type == Event::MouseWheelMoved ) {
mouse.w = event.MouseWheel.Delta;
} else if( event.Type == Event::MouseMoved ) {
mouse.x = event.MouseMove.X;
mouse.y = event.MouseMove.Y;
}
}
}