小编nor*_*108的帖子

按键或移动鼠标时游戏速度变慢

最近我一直在尝试使用SDL编写我自己的游戏(Space Invaders的克隆),但是我遇到了一些问题...我有2个事件,一个是我的计时器发出的,我用它来绘制移动的敌舰.第二个事件是我用来移动我的船的键盘事件.当我开始游戏时,敌舰开始完全按照我的预期移动,但如果我按下键或移动鼠标,它们移动得更慢.移动我的船时遇到同样的问题,如果我试图移动鼠标,帧速率会慢下来.我的事件循环:

while(!exit)
{
    while(SDL_PollEvent(&event));
    {
        if(event.type == SDL_QUIT) exit=true;
        if(event.type == SDL_KEYDOWN)
        {
            switch(event.key.keysym.sym) 
            {
            case SDLK_LEFT:
                pship.move(pship.getPosition().x - 1, pship.getPosition().y);
                break;
            case SDLK_RIGHT:
                pship.move(pship.getPosition().x + 1, pship.getPosition().y);
                break;
            }
        }

        if(event.type == SDL_USEREVENT)
        {
            switch(event.user.code)
            {
            case 1:
                static int xOffset, yOffset;
                xOffset++;
                yOffset++;

                drawEnemyShips(eship,xOffset,yOffset);
                break;
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我使用Visual c + + + 2010 Express和SDL 1.2.15

c++ mouse events sdl visual-c++

1
推荐指数
1
解决办法
458
查看次数

标签 统计

c++ ×1

events ×1

mouse ×1

sdl ×1

visual-c++ ×1