我的SDL_KEYUP参数无效

时间:2014-02-15 04:37:54

标签: c++ sdl

我尝试以不同的方式设置参数,但仍然没有骰子。有人能告诉我这里出了什么问题吗?

void controls()
{

if(cancontrol = true)
{

if(window_key.type == SDL_KEYDOWN)
{
    switch(window_key.key.keysym.sym)
    {
    case SDLK_UP:
    haneposy =+ -1;
    haneposx = 0;
    break;

    case SDLK_LEFT:
    haneposx =- 1;
    haneposy = 0;
    break;

    case SDLK_RIGHT:
    haneposx =+ 1;
    haneposy = 0;
    break;

    case SDLK_DOWN:
    haneposy =- -1;
    haneposx = 0;
    break;
    default:
    break;
    }
}

if(window_key.type == SDL_KEYUP)
{
    switch(window_key.key.keysym.sym)
    {
    case SDLK_UP:
    haneposx = 0;
    haneposy = 0;
    break;

    case SDLK_LEFT:
    haneposx = 0;
    haneposy = 0;
    break;

    case SDLK_RIGHT:
    if(haneposx && haneposy > 0)
    {
    haneposx = 0;
    haneposy = 0;
    }
    break;

    case SDLK_DOWN:
    haneposx = 0;
    haneposy = 0;
    break;
    default:
    break;
    }
}
}

    }

问题是,当释放键时,它不会通过将变量等于零来停止精灵移动。有关其他信息,我使用glTranslate移动精灵。

1 个答案:

答案 0 :(得分:0)

我认为你困惑+ = for = +。第一个是递增运算符,第二个是赋值后加一个加号。