나와 내 친구는 반응 시간 게임을 만들어야합니다. 무언가 like this.C++ SDL 반응 시간 게임
바로 지금 우리는 빨간 버튼의 이미지를 보여 주었지만, 적색 버튼을 클릭하면 초록색이됩니다.
누군가가 어떻게 표시 할 수 있습니까?
우리는 SDL을 사용하고 있습니다. 당신은 히트 박스로 SDL_Rect을 사용할 수 있습니다
#include <SDL/SDL.h>
void Plot(SDL_Surface *sur, int x, int y, SDL_Surface *dest)
{
SDL_Rect rect = {x, y};
SDL_BlitSurface(sur, NULL, dest, &rect);
}
SDL_Surface *LoadImage(const char *filename)
{
SDL_Surface *sur = NULL;
sur = SDL_LoadBMP(filename);
if(sur == NULL)
{
printf("Img not found");
}
SDL_Surface *opsur = NULL;
if(sur != NULL)
{
opsur = SDL_DisplayFormat(sur);
SDL_SetColorKey(opsur, SDL_SRCCOLORKEY, 0xFFFFFF);
if(opsur != NULL)
SDL_FreeSurface(sur);
}
return opsur;
}
int main(int argc, char **argv)
{
SDL_Init(SDL_INIT_EVERYTHING);
SDL_Surface *screen = SDL_SetVideoMode(640, 480, 32, SDL_SWSURFACE);
SDL_WM_SetCaption("Eksamensprojekt", NULL);
SDL_Event Event;
bool Running = true;
SDL_Surface *sur = LoadImage("Red.bmp");
while(Running)
{
while(SDL_PollEvent(&Event))
{
if(Event.type == SDL_QUIT)
Running = false;
}
SDL_FillRect(screen, &screen->clip_rect, 0x000000);
Plot(sur, 215, 140, screen);
SDL_Flip(screen);
}
}
우리는 이미 그것을보고와 시도, 여전히 실패 :(당신이, 또는 다른 사람이 우리를 위해 그것을 밖으로 쓸 수 있다면이 답변 정말 좋은 :) – user2298880
감사 할 것이다, 그러나 우리는 아직 할 수 없습니다 그것을 작동 시키십시오. 함수를 삽입하는 동안 함수가 2 개가 있습니다. 그리고 클릭 할 때 녹색 버튼을 어떻게 보이게합니까? 그것을 클릭하면 빨간색에서 녹색으로 변경됩니다. – user2298880
내부 루프 ('If (event.type == SDL_Quit)'아래) 색상을 전환하려면 기본적으로 플롯 기능에서와 마찬가지로 빨간색 대신 녹색 표면 만 사용해야합니다. bool 값을 사용하여 blit해야하는 두 서페이스 중 어느 것을 결정할 수 있습니다. – olevegard