Advertisement
Guest User

main.cpp

a guest
Oct 5th, 2013
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.20 KB | None | 0 0
  1. #include <hge.h>
  2. #include <hgesprite.h>
  3. #include <hgefont.h>
  4. #include "HGETileMap.h"
  5.  
  6. HGE *hge = 0;
  7.  
  8. // Create a pointer to the tilemap object
  9. HGETileMap *tilemap;
  10.  
  11. //logo texture and sprites
  12. HTEXTURE logotex;
  13. hgeSprite *logospr;
  14.  
  15. //load player graphics
  16. HTEXTURE playertex;
  17. hgeSprite *playerspr;
  18.  
  19. // load background
  20. HTEXTURE skybgtex;
  21. hgeSprite *skybgspr;
  22.  
  23. //load sounds and music
  24. HEFFECT bgmenusnd;
  25.  
  26. //load fonts
  27. hgeFont *font1;
  28.  
  29. //coordinates , constants
  30. float spriteX=90.0f, spriteY=393.0f;
  31. float player_speed=120;
  32. float mapX, mapY;
  33.  
  34. //game variables
  35. bool hide_mouse = true;
  36. bool windowed = true;
  37. bool started = false;
  38.  
  39. bool FrameFunc()
  40. {
  41.     //delta time
  42.     float dt=hge->Timer_GetDelta();
  43.  
  44.     //play sounds and music
  45.     hge->Effect_Play(bgmenusnd);
  46.  
  47.     //start the game? if yes stop the music
  48.     if(hge->Input_GetKeyState(HGEK_ENTER))
  49.     {
  50.         started = true;
  51.         hge->Effect_Free(bgmenusnd);
  52.     }
  53.  
  54.     //game is started now
  55.     if(started)
  56.     {
  57.         // Set the tile map render offset
  58.         tilemap->SetOffset((int)mapX, (int)mapY);
  59.  
  60.         //player movement
  61.         if(hge->Input_GetKeyState(HGEK_UP))     spriteY-=player_speed*dt;
  62.         if(hge->Input_GetKeyState(HGEK_DOWN))   spriteY+=player_speed*dt;
  63.         if(hge->Input_GetKeyState(HGEK_LEFT))   spriteX-=player_speed*dt;
  64.         if(hge->Input_GetKeyState(HGEK_RIGHT))  spriteX+=player_speed*dt;
  65.  
  66.         // See if mouse collides with map collision layer
  67.         //if (tilemap->PointCollide(mx + x, my + y))
  68.             //quad.blend=BLEND_ALPHAADD | BLEND_COLORADD | BLEND_ZWRITE;
  69.         //else
  70.             //quad.blend=BLEND_ALPHAADD | BLEND_COLORMUL | BLEND_ZWRITE;   
  71.     }
  72.  
  73.     //exit the game when ESC was pressed
  74.     if(hge->Input_GetKeyState(HGEK_ESCAPE))
  75.     {
  76.         return true;
  77.     }
  78.  
  79.     return false;
  80. }
  81.  
  82. bool RenderFunc()
  83. {
  84.     hge->Gfx_BeginScene();
  85.     hge->Gfx_Clear(0);
  86.  
  87.     //render logo
  88.     if(!started)
  89.     logospr->Render(0,0);
  90.  
  91.     //start button
  92.     if(!started)
  93.     font1->printf(490,470,HGETEXT_LEFT, "Press ENTER to start");
  94.  
  95.     if(started)
  96.     {
  97.         //Render background
  98.         skybgspr->Render(0,0);
  99.  
  100.         // Render the tile map here
  101.         tilemap->Render();
  102.  
  103.         // Render the player here
  104.         playerspr->Render(spriteX,spriteY);
  105.  
  106.         // Render the tile maps foreground after the player
  107.         tilemap->RenderFG();
  108.  
  109.         // x and y coords of the sprite
  110.         font1->printf(5,0,HGETEXT_LEFT,"x = %d y = %d",(int)spriteX, (int)spriteY);
  111.     }
  112.  
  113.     hge->Gfx_EndScene();
  114.  
  115.     return false;
  116. }
  117.  
  118. void clean_up()
  119. {
  120.     //Delete:
  121.     //-logo
  122.     delete logospr;
  123.     hge->Texture_Free(logotex);
  124.     //-music
  125.     hge->Effect_Free(bgmenusnd);
  126.     //-font
  127.     delete font1;
  128.     //-sprite
  129.     hge->Texture_Free(playertex);
  130.     delete playerspr;
  131.     //-map
  132.     delete tilemap;
  133.     //-sky bg
  134.     hge->Texture_Free(skybgtex);
  135.     delete skybgspr;
  136.  
  137.     //bye bye
  138.     hge->System_Shutdown();
  139.     hge->Release();
  140. }
  141.  
  142. int WINAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int)
  143. {
  144.     hge = hgeCreate(HGE_VERSION);
  145.    
  146.     hge->System_SetState(HGE_FRAMEFUNC, FrameFunc);
  147.     hge->System_SetState(HGE_RENDERFUNC, RenderFunc);
  148.     hge->System_SetState(HGE_HIDEMOUSE, hide_mouse);
  149.     hge->System_SetState(HGE_WINDOWED, windowed);
  150.     hge->System_SetState(HGE_DONTSUSPEND, true);
  151.     hge->System_SetState(HGE_TITLE, "Itsirinus");
  152.  
  153.     if(hge->System_Initiate())
  154.     {
  155.         //load logo
  156.         logotex = hge->Texture_Load("Images/logo.jpg");
  157.         logospr = new hgeSprite(logotex,0,0,1280,1024);
  158.  
  159.         //load sounds
  160.         bgmenusnd = hge->Effect_Load("Music/bgmenusnd.mp3");
  161.  
  162.         //load fonts
  163.         font1 = new hgeFont("Fonts/font1.fnt");
  164.  
  165.         //load player graphics
  166.         playertex = hge->Texture_Load("Images/sprite.png");
  167.         playerspr = new hgeSprite(playertex,0,0,32,48);
  168.  
  169.         //load background
  170.         skybgtex = hge->Texture_Load("Images/sky.jpg");
  171.         skybgspr = new hgeSprite(skybgtex, 0,0,800,600);
  172.  
  173.  
  174.         ///////////////////////////////////////////
  175.         mapX=0; mapY=0;
  176.         // Load map using the HGETileMap class
  177.         // Create new instance of tilemap.
  178.         // First coordinates are x,y in pixels to render at, Second are render size IN TILES
  179.         // 800x600 resolution, 40 pixel tiles. 800/40 = 20, 600/40 = 15
  180.         tilemap = new HGETileMap(hge, 0, 0, 20, 15);
  181.         // Initialize map
  182.         tilemap->Init();
  183.         // Load Map file
  184.         tilemap->LoadMap("level1.map");
  185.         ////////////////////////////////////////////
  186.  
  187.         //start the game
  188.         hge->System_Start();
  189.     }
  190.  
  191.     //cleaning time
  192.     clean_up();
  193.  
  194.     return 0;
  195. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement