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