dev.gamez.lv Forum Index dev.gamez.lv
Latvian Game Developers Community
 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups 

Par sdl

 
dev.gamez.lv Forum Index -> Iesācējiem
View previous topic :: View next topic  
Author Message
^suny^



Joined: 30 Nov 2007
Posts: 57

PostPosted: Tue Jan 20, 2009 8:25 pm    Post subject: Par sdl

Tātad, kā zināms 10 klasē ir jāveido ZPD(Zinātniski Pētnieciskais Darbs), un es izvēlējos tēmu Informātikā, par programmēšanu.
Esmu ievērojis, ka šajā forumā diezgan daudz tiek runāts par SDL. Daudzi saka, ka viņš ir ļoti labs iesācējiem u.t.t. Es viņu izvēlējos tikai tāpēc, lai nerakstīt garās rindas Win32API vidē, lai izveidot primitīvu logu, un arī lietot SDL grafiku.
Bet, man gadijās neliela ķibele (vai arī liela, problēmu nevaru saprast).
Atradu internetā kaut kādu parastu piemēru :
Code:
#include <SDL.h>

int main(int argc, char* argv[])
{
 //initialize SDL and the video system.
 if (SDL_Init( SDL_INIT_VIDEO)<0)
 return -1;
 
 //signal SDL to change the text of the main window to SDL "Hello World".
 SDL_WM_SetCaption("Hello world","Hello World");
 
 //Create an SDL_Surface object, which represents, the game window.
 SDL_Surface* screen=SDL_SetVideoMode(640,480,0,0);
 SDL_Surface* temp=SDL_LoadBMP("data\\structures\\sdl_logo.bmp");
 SDL_Surface* bg= SDL_DisplayFormat(temp);
 SDL_FreeSurface(temp);
 
 SDL_Event event;
 bool quit=false;
 
 //this is the main message loop if the game.
 while(!quit)
 {
   //Check message qeue for an event.
   if (SDL_PollEvent(&event))
   {
     //If an event was found.
     switch (event.type)
     {

       case SDL_QUIT:

       quit=true;
       break;
       

      case SDL_KEYDOWN:
       switch (event.key.keysym.sym)
       {
         case SDLK_ESCAPE:

           quit=true;
          break;
       }
      break;
     }
   }
   //Draw the background sprite:
   SDL_BlitSurface(bg, NULL, screen, NULL);   
   
   //Update the current window.
   SDL_UpdateRect(screen,0,0,0,0);     
 }

//Free the allocated memery for the background surface.
SDL_FreeSurface(bg);

SDL_Quit();
return 0;
}

Bet man parādija kļūdu
C:\Dev-Cpp\lib\libSDLmain.a(SDL_win32_main.o)(.text+0x397) In function `console_main': [Linker error] undefined reference to `SDL_main'
Es visu biju darījis, pēc sekojošas pamācības http://www.gpwiki.org/index.php/C:How_to_set_up_your_SDL_Build_Environment#Windows:_Dev-C.2B.2B

Nedaudz vēlāk parasti ierakstot #include <SDL.h> vai "SDL.h" kļūda nemainijās!
_________________
Back to top
View user's profile
elvman
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 09 Apr 2003
Posts: 1278
Location: Kuldiga

PostPosted: Tue Jan 20, 2009 8:37 pm    Post subject:

Apskati rakstu: http://gamedev.lv/article/snake_2_stundas

Un atbilde uz tavu jautājumu: aizstāj main... ar SDL_main...
_________________
long time; /* know C */
Back to top
View user's profile Visit poster's website
^suny^



Joined: 30 Nov 2007
Posts: 57

PostPosted: Tue Jan 20, 2009 8:45 pm    Post subject:

Liels paldies! Viss aizgājā, tūliņ sākšu savus pētījumus Smile
_________________
Back to top
View user's profile
bubu
Indago Uzvarētājs
Indago Uzvarētājs


Joined: 23 Mar 2004
Posts: 3223
Location: Riga

PostPosted: Tue Jan 20, 2009 9:12 pm    Post subject: Re: Par sdl

^suny^ wrote:
Daudzi saka, ka viņš ir ļoti labs iesācējiem u.t.t.

SDL nav ļoti labs iesācējiem. Jo tas pieprasa tevi sakarīgi zināt C un ar visu no tā izrietošām sekām..
Daudz labāks ir C++ ar SFML bibliotēku.
SDL labums ir tā cross-platformiskums - tas dod iespēju ar vienu un to pašu kodu kompilēt programmu (t.i. spēli) uz visdažādākajām PC un ne-PC platformām (arī mobīlajiem telefoniem, PSP un tml ierīcēm).

Par to tavu kļūdu - tu kompilētāja opcijās neesi norādījis preprocesora defainu SDL_main=main. Nezinu kāpēc tas nav norādīts tavā ielinkotajā linkā.
Back to top
View user's profile Send e-mail
Display posts from previous:   
dev.gamez.lv Forum Index -> Iesācējiem All times are GMT + 2 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group