-1
我一直在嘗試通過sdl庫做一個簡單的乒乓球遊戲,現在我面臨一個問題! 遊戲有2個球員,一個球拍通過上下鍵移動,另一個通過s和w鍵移動。 問題是我用完了鑰匙,兩個球拍都移動了,我不知道問題出在哪裏。考慮到這個規則,這兩個球員必須能夠同時移動他們的球拍。 我在Ubuntu上編譯這段代碼。 這將是完美的,如果有人幫助我! 在此先感謝!乒乓sdl遊戲球拍移動
#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;
}
這個遊戲有2個玩家,但是你在這兩個事件中都使用'j'作爲變量,是嗎?另外,'i'沒有在任何地方使用。 –
又一個「複製/粘貼」錯誤的創建。 – OznOg