您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ D_PostEvent函数代码示例

51自学网 2021-06-01 20:25:03
  C++
这篇教程C++ D_PostEvent函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中D_PostEvent函数的典型用法代码示例。如果您正苦于以下问题:C++ D_PostEvent函数的具体用法?C++ D_PostEvent怎么用?C++ D_PostEvent使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了D_PostEvent函数的29个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: while

//// RawWin32Mouse::processEvents//// Iterates our queue of RAWINPUT events and converts them to Doom event_t// and posts them for processing by the game internals.//void RawWin32Mouse::processEvents(){	if (!mActive)		return;	event_t movement_event;	movement_event.type = ev_mouse;	movement_event.data1 = movement_event.data2 = movement_event.data3 = 0;	const RAWMOUSE* mouse;	while (mouse = front())	{		popFront();		// process mouse movement and save it		processRawMouseMovement(mouse, &movement_event);		// process mouse button clicks and post the events		event_t button_event;		for (int i = 0; i < 5; i++)		{			if (processRawMouseButtons(mouse, &button_event, i))				D_PostEvent(&button_event);		}		// process mouse scroll wheel action		if (processRawMouseScrollWheel(mouse, &button_event))			D_PostEvent(&button_event);	}	// post any mouse movement events	if (movement_event.data2 || movement_event.data3)		D_PostEvent(&movement_event);}
开发者ID:JohnnyonFlame,项目名称:odamex,代码行数:40,


示例2: MapMouseWheelToButtons

static void MapMouseWheelToButtons(SDL_MouseWheelEvent *wheel){    // SDL2 distinguishes button events from mouse wheel events.    // We want to treat the mouse wheel as two buttons, as per    // SDL1    static event_t up, down;    int button;    if (wheel->y <= 0)    {   // scroll down        button = 4;    }    else    {   // scroll up        button = 3;    }    // post a button down event    mouse_button_state |= (1 << button);    down.type = ev_mouse;    down.data1 = mouse_button_state;    down.data2 = down.data3 = 0;    D_PostEvent(&down);    // post a button up event    mouse_button_state &= ~(1 << button);    up.type = ev_mouse;    up.data1 = mouse_button_state;    up.data2 = up.data3 = 0;    D_PostEvent(&up);}
开发者ID:Azarien,项目名称:chocolate-doom,代码行数:31,


示例3: postevent

static void postevent(SDL_Event *Event){    event_t event;    switch (Event->type)    {    case SDL_KEYDOWN:        event.type = ev_keydown;        event.data1 = getkey(&Event->key.keysym);        D_PostEvent(&event);        break;    case SDL_KEYUP:        event.type = ev_keyup;        event.data1 = getkey(&Event->key.keysym);        D_PostEvent(&event);        break;    case SDL_MOUSEBUTTONDOWN:    case SDL_MOUSEBUTTONUP:        event.type = ev_mouse;        event.data1 = getmouse(SDL_GetMouseState(NULL, NULL));        event.data2 = 0;        event.data3 = 0;        D_PostEvent(&event);        break;    case SDL_MOUSEMOTION:        event.type = ev_mouse;        event.data1 = getmouse(Event->motion.state);        event.data2 = Event->motion.xrel << 5;        event.data3 = -Event->motion.yrel << 5;        D_PostEvent(&event);        break;    case SDL_QUIT:        I_Exit(0);    default:        break;    }}
开发者ID:jezze,项目名称:doom,代码行数:54,


示例4: GetMouse

static void GetMouse(){  event_t ev;  int x, y;  int buttons, dbuttons;  static int oldbuttons;    r.x.ax = 0xb;  int86(0x33, &r, &r);  x = (signed short)r.x.cx;  y = (signed short)r.x.dx;  if(x || y)    {      ev.type = ev_mouse;      ev.data1 = 0;      ev.data2 = x;      ev.data3 = -y;        D_PostEvent(&ev);    }  // check buttons  r.x.ax = 3;  int86(0x33, &r, &r);    buttons = r.x.bx;  dbuttons = buttons ^ oldbuttons;  if(dbuttons & 1)    {      ev.type = (buttons & 1) ? ev_keydown : ev_keyup;      ev.data1 = KEYD_MOUSE1;      D_PostEvent(&ev);    }  if(dbuttons & 2)    {      ev.type = (buttons & 2) ? ev_keydown : ev_keyup;      ev.data1 = KEYD_MOUSE2;      D_PostEvent(&ev);    }  if(dbuttons & 4)    {      ev.type = (buttons & 4) ? ev_keydown : ev_keyup;      ev.data1 = KEYD_MOUSE3;      D_PostEvent(&ev);    }  oldbuttons = buttons;}
开发者ID:dorienh,项目名称:smmu,代码行数:53,


示例5: gameControls

void gameControls() {    u32 kDown, kUp;    struct eventTranslate *translateTable = gameKeyTable;    int numTranslations = numGameKeys;    kDown = keysDown();    kUp   = keysUp();    if (menuactive)    {        translateTable = menuKeyTable;        numTranslations = numMenuKeys;    } else if (automapmode & am_active) {        translateTable = mapKeyTable;        numTranslations = numMapKeys;    } else {        event_t event;        if (last_weapon_key != 0 && players[displayplayer].pendingweapon != wp_nochange) {            event.type = ev_keyup;            event.data1 = last_weapon_key;            D_PostEvent(&event);            last_weapon_key = 0;        }        if(kDown & KEY_Y) {            weapontype_t weapon_index = players[displayplayer].readyweapon;            weapon_index++;            while(players[displayplayer].weaponowned[weapon_index] == false) {                weapon_index++;                if (weapon_index >= NUMWEAPONS) weapon_index = 0;            }            last_weapon_key = weapons[weapon_index];            event.type = ev_keydown;            event.data1 = last_weapon_key;            D_PostEvent(&event);        }    }    translateKeys(ev_keydown, kDown, translateTable, numTranslations);    translateKeys(ev_keyup, kUp, translateTable, numTranslations);}
开发者ID:WinterMute,项目名称:prboom,代码行数:52,


示例6: I_GetEvent

void I_GetEvent(void){	// Mappings of DS keys to SRB2 keys	UINT32 dskeys[] =	{		KEY_A,		KEY_B,		KEY_X,		KEY_Y,		KEY_L,		KEY_R,		KEY_START,		KEY_SELECT	};	event_t event;	UINT32 held, up, down;	UINT32 i;	// Check how the state has changed since last time	scanKeys();	// For the d-pad, we only care about the current state	held = keysHeld();	event.type = ev_joystick;	event.data1 = 0;	// First (and only) axis set	if (held & KEY_LEFT) event.data2 = -1;	else if (held & KEY_RIGHT) event.data2 = 1;	else event.data2 = 0;	if (held & KEY_UP) event.data3 = -1;	else if (held & KEY_DOWN) event.data3 = 1;	else event.data3 = 0;	D_PostEvent(&event);	// For the buttons, we need to report changes in state	up = keysUp();	down = keysDown();	for (i = 0; i < sizeof(dskeys)/sizeof(dskeys[0]); i++)	{		// Has this button's state changed?		if ((up | down) & dskeys[i])		{			event.type = (up & dskeys[i]) ? ev_keyup : ev_keydown;			event.data1 = KEY_JOY1 + i;			D_PostEvent(&event);		}	}}
开发者ID:Logan-A,项目名称:SRB2-Public,代码行数:51,


示例7: I_JoystickEvents

//// I_JoystickEvents//// Gathers joystick data and creates an event_t for later processing// by G_Responder().//static void I_JoystickEvents(){   HALGamePad::padstate_t *padstate;   if(!(padstate = I_PollActiveGamePad()))      return;   // turn padstate into button input events   for(int button = 0; button < HALGamePad::MAXBUTTONS; button++)   {      edefstructvar(event_t, ev);      if(padstate->buttons[button] != padstate->prevbuttons[button])      {         ev.type  = padstate->buttons[button] ? ev_keydown : ev_keyup;         ev.data1 = KEYD_JOY01 + button;         D_PostEvent(&ev);      }   }   // read axes   for(int axis = 0; axis < HALGamePad::MAXAXES; axis++)   {      // fire axis state change events      if(padstate->axes[axis] != padstate->prevaxes[axis])      {         edefstructvar(event_t, ev);         // if previous state was off, key down         if(padstate->prevaxes[axis] == 0.0)            ev.type = ev_keydown;         // if new state is off, key up         if(padstate->axes[axis] == 0.0)            ev.type = ev_keyup;         ev.data1 = KEYD_AXISON01 + axis;         D_PostEvent(&ev);      }      // post analog axis state      edefstructvar(event_t, ev);      ev.type  = ev_joystick;      ev.data1 = axis;      ev.data2 = padstate->axes[axis];      if(axisOrientation[axis]) // may need to flip, if orientation == -1         ev.data2 *= axisOrientation[axis];      D_PostEvent(&ev);   }}
开发者ID:ioan-chera,项目名称:eternity,代码行数:56,


示例8: I_GetEvent

static void I_GetEvent(SDL_Event *Event){  event_t event;  switch (Event->type) {  case SDL_KEYDOWN:    event.type = ev_keydown;    event.data1 = I_TranslateKey(&Event->key.keysym);    D_PostEvent(&event);    break;  case SDL_KEYUP:  {    event.type = ev_keyup;    event.data1 = I_TranslateKey(&Event->key.keysym);    D_PostEvent(&event);  }  break;  case SDL_MOUSEBUTTONDOWN:  case SDL_MOUSEBUTTONUP:  if (mouse_enabled) // recognise clicks even if the pointer isn't grabbed  {    event.type = ev_mouse;    event.data1 = I_SDLtoDoomMouseState(SDL_GetMouseState(NULL, NULL));    event.data2 = event.data3 = 0;    D_PostEvent(&event);  }  break;  case SDL_MOUSEMOTION:  if (mouse_currently_grabbed) {    event.type = ev_mouse;    event.data1 = I_SDLtoDoomMouseState(Event->motion.state);    event.data2 = Event->motion.xrel << 5;    event.data3 = -Event->motion.yrel << 5;    D_PostEvent(&event);  }  break;  case SDL_QUIT:    S_StartSound(NULL, sfx_swtchn);    M_QuitDOOM(0);  default:    break;  }}
开发者ID:CaptainHIT,项目名称:prboom,代码行数:49,


示例9: I_ReadMouse

static void I_ReadMouse(void){    int x, y;    event_t ev;    SDL_GetRelativeMouseState(&x, &y);    if (x != 0 || y != 0)     {        ev.type = ev_mouse;        ev.data1 = mouse_button_state;        ev.data2 = AccelerateMouse(x);        if (!novert)        {            ev.data3 = -AccelerateMouse(y);        }        else        {            ev.data3 = 0;        }                D_PostEvent(&ev);    }    if (MouseShouldBeGrabbed())    {        CenterMouse();    }}
开发者ID:gstark31897,项目名称:chocolate-doom,代码行数:30,


示例10: I_ReadMouse

//// Read the change in mouse state to generate mouse motion events//// This is to combine all mouse movement for a tic into one mouse// motion event.void I_ReadMouse(void){    int x, y;    event_t ev;    SDL_GetRelativeMouseState(&x, &y);    if (x != 0 || y != 0)     {        ev.type = ev_mouse;        ev.data1 = mouse_button_state;        ev.data2 = AccelerateMouse(x);        if (!novert)        {            ev.data3 = -AccelerateMouse(y);        }        else        {            ev.data3 = 0;        }        // XXX: undefined behaviour since event is scoped to        // this function        D_PostEvent(&ev);    }}
开发者ID:Azarien,项目名称:chocolate-doom,代码行数:32,


示例11: I_RunDeferredEvents

//// I_RunDeferredEvents//// Check the deferred events queue for events that are ready to be posted.//static void I_RunDeferredEvents(){   DLListItem<deferredevent_t> *rover = i_deferredevents.head;   static int lasttic;   // Only run once per tic.   if(lasttic == gametic)      return;   lasttic = gametic;   while(rover)   {      DLListItem<deferredevent_t> *next = rover->dllNext;      deferredevent_t *de = *rover;      if(de->tic <= gametic)      {         D_PostEvent(&de->ev);         I_PutDeferredEvent(de);      }      rover = next;   }}
开发者ID:ioan-chera,项目名称:eternity,代码行数:30,


示例12: I_StartTic

//// I_StartTic//void I_StartTic(void){    event_t event;    while (sel4doom_poll_event(&event)) {        D_PostEvent(&event);    }}
开发者ID:jm--,项目名称:seL4Doom,代码行数:10,


示例13: I_StartTic

void I_StartTic (void){  int key;  event_t event;  hidScanInput();  if (saveStringEnter) {    if (!saveStringCopied) {      strcpy(keyboard_string,saveOldString);      saveStringCopied = true;      if (strcmp(keyboard_string,"empty slot") == 0) keyboard_string[0] = 0;    }    key = updateKeyboard();    if (key == KEYD_ESCAPE || key == KEYD_ENTER) saveStringCopied = false;    event.type = ev_keydown;    event.data1 = key;    D_PostEvent(&event);  } else {    gameControls();  }}
开发者ID:CaptainHIT,项目名称:prboom,代码行数:27,


示例14: I_ReadMouse

static void I_ReadMouse(void){    int x, y;    event_t ev;#if SDL_VERSION_ATLEAST(1, 3, 0)    SDL_GetRelativeMouseState(0, &x, &y);#else    SDL_GetRelativeMouseState(&x, &y);#endif    if (x != 0 || y != 0)     {        ev.type = ev_mouse;        ev.data1 = MouseButtonState();        ev.data2 = AccelerateMouse(x);        ev.data3 = -AccelerateMouse(y);                D_PostEvent(&ev);    }    if (MouseShouldBeGrabbed())    {        CenterMouse();    }}
开发者ID:hifi-unmaintained,项目名称:chocolate-doom-launcher,代码行数:26,


示例15: I_PollJoystick

void I_PollJoystick(void) {#if 0#ifdef HAVE_SDL_JOYSTICKGETAXIS  event_t ev;  Sint16 axis_value;  if (!usejoystick || (!joystick))      return;  ev.type = ev_joystick;  ev.key =   (SDL_JoystickGetButton(joystick, 0) << 0) |             (SDL_JoystickGetButton(joystick, 1) << 1) |             (SDL_JoystickGetButton(joystick, 2) << 2) |             (SDL_JoystickGetButton(joystick, 3) << 3) |             (SDL_JoystickGetButton(joystick, 4) << 4) |             (SDL_JoystickGetButton(joystick, 5) << 5) |             (SDL_JoystickGetButton(joystick, 6) << 6) |             (SDL_JoystickGetButton(joystick, 7) << 7);  axis_value = SDL_JoystickGetAxis(joystick, 0) / 3000;  if (abs(axis_value) < 10)    axis_value = 0;  ev.data2 = axis_value;  axis_value = SDL_JoystickGetAxis(joystick, 1) / 3000;  if (abs(axis_value) < 10)    axis_value = 0;  ev.data3 = axis_value;  D_PostEvent(&ev);#endif#endif}
开发者ID:camgunz,项目名称:d2k,代码行数:31,


示例16: DoButtonEvent

void DoButtonEvent(int button,bool released){  event_t event;  event.type = ev_keydown;  if (released) event.type=ev_keyup;  event.data1 = button_to_key[menuactive?1:0][button];  D_PostEvent(&event);}
开发者ID:BackupTheBerlios,项目名称:medios-svn,代码行数:7,


示例17: I_ReadMouse

//// I_ReadMouse//// haleyjd 10/23/08: from Choco-Doom://// Read the change in mouse state to generate mouse motion events//// This is to combine all mouse movement for a tic into one mouse// motion event.//static void I_ReadMouse(SDL_Window *window){   int x, y;   event_t ev;   static Uint8 previous_state = 137;   Uint8 state;   SDL_PumpEvents();   state = SDL_GetRelativeMouseState(&x, &y);   if(state != previous_state)      previous_state = state;   if(x != 0 || y != 0)   {      ev.type = ev_mouse;      ev.data1 = SDL_MOUSEMOTION;      if(mouseAccel_type == ACCELTYPE_CHOCO)      {         // SoM: So the values that go to Eternity should be 16.16 fixed point...         ev.data2 =  AccelerateMouse(x);         ev.data3 = -AccelerateMouse(y);      }      else if(mouseAccel_type == ACCELTYPE_CUSTOM) // [CG] 01/20/12 Custom acceleration      {         ev.data2 =  CustomAccelerateMouse(x);         ev.data3 = -CustomAccelerateMouse(y);      }      D_PostEvent(&ev);   }}
开发者ID:ioan-chera,项目名称:eternity,代码行数:43,


示例18: I_GetInput

static void I_GetInput() {	event_t event;	event.data2 = event.data3 = 0;		uint32_t down = hidKeysDown();	uint32_t held = hidKeysHeld();	uint32_t up = hidKeysUp();	// iterate over other possible key values	int i;	for (i = 0; i < (usejoystick ? 28 : 32); i++) {		uint32_t key = 1<<i;				if (down & key) {			event.data1 = I_TranslateKey(key);			event.type = ev_keydown;			D_PostEvent(&event);		} else if (up & key) {			event.data1 = I_TranslateKey(key);			event.type = ev_keyup;			D_PostEvent(&event);		}	}	// handle touch pad movement	if (usemouse) {		static int px = 0;		static int py = 0;		touchPosition touch;		hidTouchRead(&touch);		if (down & KEY_TOUCH) {			px = touch.px;			py = touch.py;					} else if (held & KEY_TOUCH && (touch.px != px || touch.py != py)) {			event.type = ev_mouse;			event.data1 = -1;			event.data2 = (touch.px - px) << 5;			event.data3 = -(touch.py - py) << 5;			D_PostEvent(&event);						px = touch.px;			py = touch.py;		}	}}
开发者ID:devinacker,项目名称:prboom-3ds,代码行数:46,


示例19: I_GetEvent

void I_GetEvent(void){    extern void I_HandleKeyboardEvent(SDL_Event *sdlevent);    extern void I_HandleMouseEvent(SDL_Event *sdlevent);    SDL_Event sdlevent;    SDL_PumpEvents();    while (SDL_PollEvent(&sdlevent))    {        switch (sdlevent.type)        {            case SDL_KEYDOWN:                if (ToggleFullScreenKeyShortcut(&sdlevent.key.keysym))                {                    I_ToggleFullScreen();                    break;                }                // deliberate fall-though            case SDL_KEYUP:		I_HandleKeyboardEvent(&sdlevent);                break;            case SDL_MOUSEBUTTONDOWN:            case SDL_MOUSEBUTTONUP:            case SDL_MOUSEWHEEL:                if (usemouse && !nomouse && window_focused)                {                    I_HandleMouseEvent(&sdlevent);                }                break;            case SDL_QUIT:                if (screensaver_mode)                {                    I_Quit();                }                else                {                    event_t event;                    event.type = ev_quit;                    D_PostEvent(&event);                }                break;            case SDL_WINDOWEVENT:                if (sdlevent.window.windowID == SDL_GetWindowID(screen))                {                    HandleWindowEvent(&sdlevent.window);                }                break;            default:                break;        }    }}
开发者ID:chocolate-doom,项目名称:chocolate-doom,代码行数:58,


示例20: I_PollXInputGamepad

void I_PollXInputGamepad(void){#if defined(WIN32)    if (gamepad && !noinput)    {        XINPUT_STATE    state;        XINPUT_GAMEPAD  Gamepad;        ZeroMemory(&state, sizeof(XINPUT_STATE));        pXInputGetState(0, &state);        Gamepad = state.Gamepad;        gamepadbuttons = (Gamepad.wButtons            | GAMEPAD_LEFT_TRIGGER * (Gamepad.bLeftTrigger > XINPUT_GAMEPAD_TRIGGER_THRESHOLD)            | GAMEPAD_RIGHT_TRIGGER * (Gamepad.bRightTrigger > XINPUT_GAMEPAD_TRIGGER_THRESHOLD));        if (damagevibrationtics)            if (!--damagevibrationtics && !weaponvibrationtics)                XInputVibration(idlemotorspeed);        if (weaponvibrationtics)            if (!--weaponvibrationtics && !damagevibrationtics)                XInputVibration(idlemotorspeed);        if (gamepadbuttons)        {            vibrate = true;            idclev = false;            idmus = false;            if (idbehold)            {                message_clearable = true;                HU_ClearMessages();                idbehold = false;            }        }        if (gp_sensitivity || menuactive || (gamepadbuttons & gamepadmenu))        {            event_t      ev;            ev.type = ev_gamepad;            D_PostEvent(&ev);            gamepadthumbsfunc(Gamepad.sThumbLX, Gamepad.sThumbLY, Gamepad.sThumbRX,                Gamepad.sThumbRY);        }        else        {            gamepadbuttons = 0;            gamepadthumbLX = 0;            gamepadthumbLY = 0;            gamepadthumbRX = 0;        }    }#endif}
开发者ID:mdgunn,项目名称:doomretro,代码行数:57,


示例21: I_StartTic

//// I_StartTic//void I_StartTic(void){	vector<event_t> events;	doomCallbacks->PopInputEvents(events);	for (const event_t& evt : events)	{		D_PostEvent(&evt);	}}
开发者ID:Clever-Boy,项目名称:DOOM-Vis,代码行数:13,


示例22: I_HandleKeyboardEvent

void I_HandleKeyboardEvent(SDL_Event *sdlevent){    // XXX: passing pointers to event for access after this function    // has terminated is undefined behaviour    event_t event;    switch (sdlevent->type)    {        case SDL_KEYDOWN:            event.type = ev_keydown;            event.data1 = TranslateKey(&sdlevent->key.keysym);            event.data2 = GetLocalizedKey(&sdlevent->key.keysym);            event.data3 = GetTypedChar(&sdlevent->key.keysym);            if (event.data1 != 0)            {                D_PostEvent(&event);            }            break;        case SDL_KEYUP:            event.type = ev_keyup;            event.data1 = TranslateKey(&sdlevent->key.keysym);            // data2/data3 are initialized to zero for ev_keyup.            // For ev_keydown it's the shifted Unicode character            // that was typed, but if something wants to detect            // key releases it should do so based on data1            // (key ID), not the printable char.            event.data2 = 0;            event.data3 = 0;            if (event.data1 != 0)            {                D_PostEvent(&event);            }            break;        default:            break;    }}
开发者ID:Azarien,项目名称:chocolate-doom,代码行数:43,


示例23: UpdateJoystickEvents

void UpdateJoystickEvents(){	std::list<JoystickEvent_t*>::iterator i;	event_t    event;	if(!JoyEventList.size())		return;	i = JoyEventList.begin();	while(i != JoyEventList.end())	{		if((*i)->Event.type == SDL_JOYHATMOTION)		{			// Hat position released			if(!(SDL_JoystickGetHat(openedjoy, (*i)->Event.jhat.hat) & (*i)->Event.jhat.value))				event.type = ev_keyup;			// Hat button still held - Repeat at key repeat interval			else if((SDL_GetTicks() - (*i)->RegTick >= SDL_DEFAULT_REPEAT_DELAY) && 		            (SDL_GetTicks() - (*i)->LastTick >= SDL_DEFAULT_REPEAT_INTERVAL*2))			{				(*i)->LastTick = SDL_GetTicks();				event.type = ev_keydown;			}			else			{				i++;				continue;			}			event.data1 = event.data2 = event.data3 = 0;			if((*i)->Event.jhat.value == SDL_HAT_UP)				event.data1 = ((*i)->Event.jhat.hat * 4) + KEY_HAT1;			else if((*i)->Event.jhat.value == SDL_HAT_RIGHT)				event.data1 = ((*i)->Event.jhat.hat * 4) + KEY_HAT2;			else if((*i)->Event.jhat.value == SDL_HAT_DOWN)				event.data1 = ((*i)->Event.jhat.hat * 4) + KEY_HAT3;			else if((*i)->Event.jhat.value == SDL_HAT_LEFT)				event.data1 = ((*i)->Event.jhat.hat * 4) + KEY_HAT4;			D_PostEvent(&event);			if(event.type == ev_keyup)			{				// Delete the released event				delete *i;				i = JoyEventList.erase(i);				continue;			}		}		i++;	}}
开发者ID:JohnnyonFlame,项目名称:odamex,代码行数:53,


示例24: keyboard_events

static void keyboard_events (int scancode, int press){	event_t		event;	if (press == KEY_EVENTPRESS)		event.type = ev_keydown;	else		event.type = ev_keyup;	event.data1 = xlatekey(scancode);	if (event.data1 > 0)		D_PostEvent(&event);}
开发者ID:aagallag,项目名称:psDooM,代码行数:12,


示例25: WheelMoved

static void WheelMoved(event_t *event){	if (GUICapture)	{		if (event->type != EV_KeyUp)		{			SDLMod mod = SDL_GetModState();			event->type = EV_GUI_Event;			event->subtype = event->data1 == KEY_MWHEELUP ? EV_GUI_WheelUp : EV_GUI_WheelDown;			event->data1 = 0;			event->data3 = ((mod & KMOD_SHIFT) ? GKM_SHIFT : 0) |						  ((mod & KMOD_CTRL) ? GKM_CTRL : 0) |						  ((mod & KMOD_ALT) ? GKM_ALT : 0);			D_PostEvent(event);		}	}	else	{		D_PostEvent(event);	}}
开发者ID:AkumaKing,项目名称:Xeu,代码行数:21,


示例26: I_PollDirectInputGamepad

void I_PollDirectInputGamepad(void){    if (gamepad && !noinput)    {        int     hat = SDL_JoystickGetHat(gamepad, 0);        gamepadbuttons = (GAMEPAD_X * SDL_JoystickGetButton(gamepad, 0)            | GAMEPAD_A * SDL_JoystickGetButton(gamepad, 1)            | GAMEPAD_B * SDL_JoystickGetButton(gamepad, 2)            | GAMEPAD_Y * SDL_JoystickGetButton(gamepad, 3)            | GAMEPAD_LEFT_SHOULDER * SDL_JoystickGetButton(gamepad, 4)            | GAMEPAD_RIGHT_SHOULDER * SDL_JoystickGetButton(gamepad, 5)            | GAMEPAD_LEFT_TRIGGER * SDL_JoystickGetButton(gamepad, 6)            | GAMEPAD_RIGHT_TRIGGER * SDL_JoystickGetButton(gamepad, 7)            | GAMEPAD_BACK * SDL_JoystickGetButton(gamepad, 8)            | GAMEPAD_START * SDL_JoystickGetButton(gamepad, 9)            | GAMEPAD_LEFT_THUMB * SDL_JoystickGetButton(gamepad, 10)            | GAMEPAD_RIGHT_THUMB * SDL_JoystickGetButton(gamepad, 11)            | GAMEPAD_DPAD_UP * (hat & SDL_HAT_UP)            | GAMEPAD_DPAD_RIGHT * (hat & SDL_HAT_RIGHT)            | GAMEPAD_DPAD_DOWN * (hat & SDL_HAT_DOWN)            | GAMEPAD_DPAD_LEFT * (hat & SDL_HAT_LEFT));        if (gamepadbuttons)        {            idclev = false;            idmus = false;            if (idbehold)            {                message_clearable = true;                HU_ClearMessages();                idbehold = false;            }        }        if (gp_sensitivity || menuactive || (gamepadbuttons & gamepadmenu))        {            event_t     ev;            ev.type = ev_gamepad;            D_PostEvent(&ev);            gamepadthumbsfunc(0, 1, 2, 3);        }        else        {            gamepadbuttons = 0;            gamepadthumbLX = 0;            gamepadthumbLY = 0;            gamepadthumbRX = 0;        }    }}
开发者ID:mdgunn,项目名称:doomretro,代码行数:53,


示例27: RegisterJoystickEvent

// Add any joystick event to a list if it will require manual polling// to detect release. This includes hat events (mostly due to d-pads not// triggering the centered event when released) and analog axis bound// as a key/button -- HyperEye//// RegisterJoystickEvent//static int RegisterJoystickEvent(SDL_Event *ev, int value){	JoystickEvent_t *evc = NULL;	event_t          event;	if(!ev)		return -1;	if(ev->type == SDL_JOYHATMOTION)	{		if(JoyEventList.size())		{			std::list<JoystickEvent_t*>::iterator i;			for(i = JoyEventList.begin(); i != JoyEventList.end(); ++i)			{				if(((*i)->Event.type == ev->type) && ((*i)->Event.jhat.which == ev->jhat.which) 							&& ((*i)->Event.jhat.hat == ev->jhat.hat) && ((*i)->Event.jhat.value == value))					return 0;			}		}		evc = new JoystickEvent_t;		memcpy(&evc->Event, ev, sizeof(SDL_Event));		evc->Event.jhat.value = value;		evc->LastTick = evc->RegTick = SDL_GetTicks();		event.data1 = event.data2 = event.data3 = 0;		event.type = ev_keydown;		if(value == SDL_HAT_UP)			event.data1 = (ev->jhat.hat * 4) + KEY_HAT1;		else if(value == SDL_HAT_RIGHT)			event.data1 = (ev->jhat.hat * 4) + KEY_HAT2;		else if(value == SDL_HAT_DOWN)			event.data1 = (ev->jhat.hat * 4) + KEY_HAT3;		else if(value == SDL_HAT_LEFT)			event.data1 = (ev->jhat.hat * 4) + KEY_HAT4;		event.data2 = event.data1;	}	if(evc)	{		JoyEventList.push_back(evc);		D_PostEvent(&event);		return 1;	}	return 0;}
开发者ID:JohnnyonFlame,项目名称:odamex,代码行数:59,


示例28: I_GetEvent

void I_GetEvent(void){  event_t evnt;  int val;  int key;  //printf("begin get_event()/n/r");  do  { val= test_for_event();    switch(val)    { case EV_REDRAW:        BeginDraw();        DrawWindow(win_x,win_y,win_w,win_h,0x404040,3,0,0,0);        EndDraw();        BlitDIB();        break;      case EV_KEY:        if(!get_key(&key))        {           switch(key)          {  case 0xE0:             case 0xE1:               continue;             default:               if(key&0x80)               { //printf("key released/n/r");                 evnt.type = ev_keyup;                }               else               { //printf("key pressed %x/n/r",key);                 evnt.type = ev_keydown;                };               key&=0x7F;                evnt.data1=remap_key(key);               if ( evnt.data1 != 0 )                 D_PostEvent(&evnt);               continue;          };             };          continue;      case EV_BUTTON:        switch(get_button_id())        {  case 1:             return;                       default:;        };    };     }while(val);}
开发者ID:Misha-Mainenko,项目名称:kolibrios-llvm,代码行数:51,


示例29: UpdateMouseButtonState

static void UpdateMouseButtonState(unsigned int button, boolean on){    event_t event;    if (button < SDL_BUTTON_LEFT || button > MAX_MOUSE_BUTTONS)    {        return;    }    // Note: button "0" is left, button "1" is right,    // button "2" is middle for Doom.  This is different    // to how SDL sees things.    switch (button)    {        case SDL_BUTTON_LEFT:            button = 0;            break;        case SDL_BUTTON_RIGHT:            button = 1;            break;        case SDL_BUTTON_MIDDLE:            button = 2;            break;        default:            // SDL buttons are indexed from 1.            --button;            break;    }    // Turn bit representing this button on or off.    if (on)    {        mouse_button_state |= (1 << button);    }    else    {        mouse_button_state &= ~(1 << button);    }    // Post an event with the new button state.    event.type = ev_mouse;    event.data1 = mouse_button_state;    event.data2 = event.data3 = 0;    D_PostEvent(&event);}
开发者ID:gstark31897,项目名称:chocolate-doom,代码行数:51,



注:本文中的D_PostEvent函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ D_RETURN_函数代码示例
C++ D_PERROR函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。