Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/158.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 乒乓球sdl游戏球拍移动_C++_Sdl - Fatal编程技术网

C++ 乒乓球sdl游戏球拍移动

C++ 乒乓球sdl游戏球拍移动,c++,sdl,C++,Sdl,我一直在尝试用sdl库制作一个简单的乒乓球游戏,现在我面临一个问题! 游戏有两名玩家,一个球拍按上下键移动,另一个按s键和w键移动。 问题是,例如,我用完了键,两个球拍都移动了,我不知道问题出在哪里。考虑到这条规则,两个球员必须能够同时移动球拍。 我在Ubuntu上编译这段代码。 如果有人帮助我,那就太好了! 提前谢谢 #include <iostream> #include "SDL/SDL.h" #include <SDL/SDL_gfxPrimitives.h>

我一直在尝试用sdl库制作一个简单的乒乓球游戏,现在我面临一个问题! 游戏有两名玩家,一个球拍按上下键移动,另一个按s键和w键移动。 问题是,例如,我用完了键,两个球拍都移动了,我不知道问题出在哪里。考虑到这条规则,两个球员必须能够同时移动球拍。 我在Ubuntu上编译这段代码。 如果有人帮助我,那就太好了! 提前谢谢

#include <iostream>
#include "SDL/SDL.h"
#include <SDL/SDL_gfxPrimitives.h>

using namespace std;


int main()
{
    SDL_Surface* screen = SDL_SetVideoMode(1200, 800 ,32, 0);

        int i=0,j = 0;
         while(true)
        {
        boxRGBA(screen, 1000, 200+j, 1050, 350+j, 0, 0, 0, 255);
        SDL_Event event;
                if(!SDL_PollEvent(&event));
                {
                        if(event.type == SDL_QUIT)
                                return 0;
                        if(event.type == SDL_KEYDOWN)
              {
                                if(event.key.keysym.sym == SDLK_UP)
                                        j += -5;
                                if(event.key.keysym.sym == SDLK_DOWN)
                                        j += 5;
                        }
                }

 boxRGBA(screen, 1000, 200+j, 1050, 350+j, 255, 50, 0, 255);
        SDL_Flip(screen);
        SDL_Delay(20);

boxRGBA(screen, 100, 200+j, 50, 350+j, 0, 0, 0, 255);
        SDL_Event event2;
if(!SDL_PollEvent(&event2));
                {
                        if(event2.type == SDL_QUIT)
                                return 0;
                        if(event2.type == SDL_KEYDOWN)
              {
                                if(event2.key.keysym.sym == SDLK_w)
                                        j += -5;
                                if(event2.key.keysym.sym == SDLK_s)
                                        j += 5;
                        }
                }
boxRGBA(screen, 100, 200+j, 50, 350+j, 0,0, 255, 255);
        SDL_Flip(screen);
        SDL_Delay(20);
    }


    //////////////////////////////////////////////////////////

   SDL_Delay(2000);
    return 0;
 }
#包括
#包括“SDL/SDL.h”
#包括
使用名称空间std;
int main()
{
SDL_表面*屏幕=SDL_设置视频模式(1200、800、32、0);
int i=0,j=0;
while(true)
{
boxRGBA(屏幕,1000、200+j、1050、350+j、0、0、0、255);
SDL_事件;
如果(!SDL_PollEvent(&event));
{
if(event.type==SDL\u QUIT)
返回0;
if(event.type==SDL\u KEYDOWN)
{
if(event.key.keysym.sym==SDLK\u UP)
j+=-5;
if(event.key.keysym.sym==SDLK\u DOWN)
j+=5;
}
}
boxRGBA(屏幕,1000,200+j,1050550+j,255,50,0255);
SDL_翻转(屏幕);
SDL_延迟(20);
boxRGBA(屏幕,100、200+j、50、350+j、0、0、0、255);
SDL_事件事件2;
如果(!SDL_PollEvent(&event2));
{
如果(event2.type==SDL\u退出)
返回0;
if(event2.type==SDL\u KEYDOWN)
{
if(event2.key.keysym.sym==SDLK\u w)
j+=-5;
if(event2.key.keysym.sym==SDLK\u s)
j+=5;
}
}
boxRGBA(屏幕,100,200+j,50,350+j,0,0,255,255);
SDL_翻转(屏幕);
SDL_延迟(20);
}
//////////////////////////////////////////////////////////
SDL_延迟(2000年);
返回0;
}

括号的位置让我很恼火。然而,在移植到SO时,这可能已经被修改


您初始化了整数i和j,但只使用了变量j。

游戏有两名玩家,但您在两个事件中都使用
j
作为变量,对吗?另外,
i
没有在任何地方使用。还有另一个“复制/粘贴”错误创建。