c++ - SDL_事件e;传递给函数

标签 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 );
    }
}

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

最佳答案

只需将函数 2 声明为

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

在 C++ 中,您需要为函数(这里可能是 void)和所有参数(名为 eSDL_Event在这里)

关于c++ - SDL_事件e;传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35231461/

相关文章:

sdl - 使用 SDL 处理最大化窗口

c++ - 使用 OpenCV 读取 PDF 文件

c++ - 使用 -fopenmp 编译时禁用 C++ 中的默认 Armadillo

c - 使用命令行参数执行位于内存中的程序

c++ - 获取所有已使用来源的列表

c++ - 用于将文件中的字符串读入 3D 数组的 For 循环

使用 SDL 的 C++ 为 CAD 类型的应用程序制作网格

c++ - 以下代码在 big endian 中的结果是什么?

c++ - 如何获取 LPDISPATCH 指针/接口(interface)并将其传递给 activeX 控件

c - 计算从 1 到 n 的所有偶数平方的最快方法?