SDL_Event e;传递到功能

时间:2016-02-05 18:54:08

标签: c++ c sdl

中的e是什么
SDL_Event e;

如何将e从一个函数传递到另一个函数然后传递给另一个函数。 有可能吗?

基本上是e bool或int

bool x_out_window()
{
    bool quit = false;
    SDL_Event e;
    while( !quit )
    {
        while( SDL_PollEvent( &e ) != 0 )
        {
            if( e.type == SDL_QUIT )
            quit = true;
            else
            detect_key_press(e.type);
        }

    }
}

bool detect_key_press(e.type)
{
    //SDL_Event e;
    if( e.type == SDL_KEYDOWN )
    {
        //Select surfaces based on key press
        switch( e.key.keysym.sym )
        {
            case SDLK_UP:
            gCurrentSurface = gKeyPressSurfaces[ KEY_PRESS_SURFACE_UP ];
            break;

            case SDLK_DOWN:
            gCurrentSurface = gKeyPressSurfaces[ KEY_PRESS_SURFACE_DOWN ];
            break;

            case SDLK_LEFT:
            gCurrentSurface = gKeyPressSurfaces[ KEY_PRESS_SURFACE_LEFT ];
            break;

            case SDLK_RIGHT:
            gCurrentSurface = gKeyPressSurfaces[ KEY_PRESS_SURFACE_RIGHT ];
            break;

            default:
            gCurrentSurface = gKeyPressSurfaces[ KEY_PRESS_SURFACE_DEFAULT ];
            break;
        }
        SDL_BlitSurface( gXOut, NULL, gScreenSurface, NULL );
        SDL_UpdateWindowSurface( gWindow );
    }
}

如果这是一个愚蠢的问题,我很抱歉,但我无法理解这个概念,我是编码的新手。

1 个答案:

答案 0 :(得分:0)

只需将您的功能2声明为

即可
void funtion2(SDL_Event e){
  //...
}

在C ++中,你需要为函数(这里可能是void)和所有参数(这里名为SDL_Event的{​​{1}})提供一个类型