Kezdőoldal » Számítástechnika » Programozás » Valaki tud segíteni egy...

Valaki tud segíteni egy kicsit C++-ban aki ismeri az SDL-t is?

Figyelt kérdés

Code::Blocks-ot használok s be van téve az SDL, azzal nincs semmi gond.

Van egy 2 eventem. Az egyik a játék menüje a másik pedig maga a játék.

Hogy tudnék egyikből a másikba átlépni?

Eddig ennyire juttotam de nem megy bele:



int main( int argc, char* args[] )

{

boxrect.w = BOX_WIDTH;

boxrect.h = BOX_HEIGHT;

boxrect.x = (WINDOW_WIDTH - boxrect.w) / 2;

boxrect.y = (WINDOW_HEIGHT - boxrect.h) / 2;


boxrect2.w = BOX_WIDTH;

boxrect2.h = BOX_HEIGHT;

boxrect2.x = (WINDOW_WIDTH - boxrect2.w) / 2;

boxrect2.y = (WINDOW_HEIGHT - boxrect2.h) / 2;


boxbounds.x = 0;

boxbounds.y = 0;

boxbounds.w = WINDOW_WIDTH - boxrect.w;

boxbounds.h = WINDOW_HEIGHT - boxrect.h;


boxbounds2.x = 0;

boxbounds2.y = 0;

boxbounds2.w = WINDOW_WIDTH - boxrect2.w;

boxbounds2.h = WINDOW_HEIGHT - boxrect2.h;


if( !init() )

{

printf( "Failed to initialize!\n" );

}

else

{

if( !loadMedia() )

{

printf( "Failed to load media!\n" );

}

else

{

SDL_BlitSurface( gMenu, NULL, gScreenSurface, NULL);

SDL_UpdateWindowSurface(gWindow);

while(!quit)

{

while(SDL_PollEvent(&menuevent)!=0)

{

switch(menuevent.type)

{

case SDL_QUIT:

quit=true;

break;


case SDL_KEYDOWN:

{

if(menuevent.key.keysym.sym == SDLK_g)

{

SDL_BlitSurface( gHelloWorld, NULL, gScreenSurface, NULL );

SDL_UpdateWindowSurface( gWindow );

SDL_BlitSurface( gBox, NULL, gScreenSurface, &boxrect);

SDL_UpdateWindowSurface( gWindow );

SDL_BlitSurface( gBox2, NULL, gScreenSurface, &boxrect2);

SDL_UpdateWindowSurface( gWindow );

while(SDL_PollEvent(&event)!=0)

{

if(event.type==SDL_QUIT)

{

quit = true;

}

else if( event.type == SDL_KEYDOWN )

{

switch( event.key.keysym.sym )

{

case SDLK_w:

{

boxrect2.y -= boxspeed;

if (boxrect2.y < boxbounds2.y)

boxrect2.y = boxbounds2.y;

}

break;


case SDLK_UP:

{

boxrect.y -= boxspeed;

if (boxrect.y < boxbounds.y)

boxrect.y = boxbounds.y;

}

break;


case SDLK_s:

{

boxrect2.y += boxspeed;

if (boxrect2.y > boxbounds2.h)

boxrect2.y = boxbounds2.h;

}

break;


case SDLK_DOWN:

{

boxrect.y += boxspeed;

if (boxrect.y > boxbounds.h)

boxrect.y = boxbounds.h;

}

break;


case SDLK_a:

{

boxrect2.x -= boxspeed;

if (boxrect2.x < boxbounds2.x)

boxrect2.x = boxbounds2.x;

}

break;


case SDLK_LEFT:

{

boxrect.x -= boxspeed;

if (boxrect.x < boxbounds.x)

boxrect.x = boxbounds.x;

}

break;


case SDLK_d:

{

boxrect2.x += boxspeed;

if (boxrect2.x > boxbounds2.w)

boxrect2.x = boxbounds2.w;

}

break;


case SDLK_RIGHT:

{

boxrect.x += boxspeed;

if (boxrect.x > boxbounds.w)

boxrect.x = boxbounds.w;

}

break;


default:

break;

}

}

}

}

else if(menuevent.key.keysym.sym == SDLK_q)

quit=true;

}

break;

}

}

}

}

}


close();


cout<<"Vege a jateknak!"<<endl<<endl<<endl;


return 0;

}


A Loadmedia, a Bool init s a deklarációk megvannak...


2014. jún. 8. 18:04
 1/7 A kérdező kommentje:

Nem sok látszik sajnos...

Nekem ott van gondom hogy mikor a menuevent-be érzékeli hogy megnyomtam a g betűt akkor kirakja azokat a képeket viszont nem megy bele a while ciklusba ahol meg van nyitva az event, vagyis a játék

2014. jún. 8. 18:06
 2/7 anonim ***** válasza:
Az a quit változó hol lett deklarálva, és miért biztos, hogy hamis kezdetben?
2014. jún. 8. 21:39
Hasznos számodra ez a válasz?
 3/7 A kérdező kommentje:
A quit-tel nincs semmi gond, az még az elején van deklarálva. Ha az true akkor kilép az egészből, amíg false addig működik a program.
2014. jún. 8. 22:14
 4/7 anonim ***** válasza:

1. csak egyszer updateld a surface-t, mikor már mindent kirajzoltál, felesleges 3x.


2. gondolom belemegy a ciklusba, de mivel nincs benne kirajzolás, így nem fogsz látni semmit (lásd 1.)

2014. jún. 8. 23:17
Hasznos számodra ez a válasz?
 5/7 A kérdező kommentje:

az igaz hogy felesleges 3x update-elni... ki is szedtem, maradt egy :)

a képek megjelennek de nem megy bele a ciklusba... marad azon kívűl, mivel ha még1x megnyomom a g-t (azzal megyek be) akkor újratölti a képeket mintha megint bemenne...

2014. jún. 8. 23:21
 6/7 anonim ***** válasza:
Én mégiscsak ellenőrizném a quit értékét, hátha van vele valami probléma.
2014. jún. 9. 21:40
Hasznos számodra ez a válasz?
 7/7 anonim ***** válasza:
Továbbá azt is érdemes lenne megnézni, hogy ha bemegy, és végigcsinálja az ott leírtakat, akkor fog-e bármi is változni.
2014. jún. 9. 22:03
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!