Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <hge.h>
- #include <hgesprite.h>
- #include <hgefont.h>
- #include "HGETileMap.h"
- HGE *hge = 0;
- // Create a pointer to the tilemap object
- HGETileMap *tilemap;
- //logo texture and sprites
- HTEXTURE logotex;
- hgeSprite *logospr;
- //load player graphics
- HTEXTURE playertex;
- hgeSprite *playerspr;
- // load background
- HTEXTURE skybgtex;
- hgeSprite *skybgspr;
- //load sounds and music
- HEFFECT bgmenusnd;
- //load fonts
- hgeFont *font1;
- //coordinates , constants
- float spriteX=90.0f, spriteY=393.0f;
- float player_speed=120;
- float mapX, mapY;
- //game variables
- bool hide_mouse = true;
- bool windowed = true;
- bool started = false;
- bool FrameFunc()
- {
- //delta time
- float dt=hge->Timer_GetDelta();
- //play sounds and music
- hge->Effect_Play(bgmenusnd);
- //start the game? if yes stop the music
- if(hge->Input_GetKeyState(HGEK_ENTER))
- {
- started = true;
- hge->Effect_Free(bgmenusnd);
- }
- //game is started now
- if(started)
- {
- // Set the tile map render offset
- tilemap->SetOffset((int)mapX, (int)mapY);
- //player movement
- if(hge->Input_GetKeyState(HGEK_UP)) spriteY-=player_speed*dt;
- if(hge->Input_GetKeyState(HGEK_DOWN)) spriteY+=player_speed*dt;
- if(hge->Input_GetKeyState(HGEK_LEFT)) spriteX-=player_speed*dt;
- if(hge->Input_GetKeyState(HGEK_RIGHT)) spriteX+=player_speed*dt;
- // See if mouse collides with map collision layer
- //if (tilemap->PointCollide(mx + x, my + y))
- //quad.blend=BLEND_ALPHAADD | BLEND_COLORADD | BLEND_ZWRITE;
- //else
- //quad.blend=BLEND_ALPHAADD | BLEND_COLORMUL | BLEND_ZWRITE;
- }
- //exit the game when ESC was pressed
- if(hge->Input_GetKeyState(HGEK_ESCAPE))
- {
- return true;
- }
- return false;
- }
- bool RenderFunc()
- {
- hge->Gfx_BeginScene();
- hge->Gfx_Clear(0);
- //render logo
- if(!started)
- logospr->Render(0,0);
- //start button
- if(!started)
- font1->printf(490,470,HGETEXT_LEFT, "Press ENTER to start");
- if(started)
- {
- //Render background
- skybgspr->Render(0,0);
- // Render the tile map here
- tilemap->Render();
- // Render the player here
- playerspr->Render(spriteX,spriteY);
- // Render the tile maps foreground after the player
- tilemap->RenderFG();
- // x and y coords of the sprite
- font1->printf(5,0,HGETEXT_LEFT,"x = %d y = %d",(int)spriteX, (int)spriteY);
- }
- hge->Gfx_EndScene();
- return false;
- }
- void clean_up()
- {
- //Delete:
- //-logo
- delete logospr;
- hge->Texture_Free(logotex);
- //-music
- hge->Effect_Free(bgmenusnd);
- //-font
- delete font1;
- //-sprite
- hge->Texture_Free(playertex);
- delete playerspr;
- //-map
- delete tilemap;
- //-sky bg
- hge->Texture_Free(skybgtex);
- delete skybgspr;
- //bye bye
- hge->System_Shutdown();
- hge->Release();
- }
- int WINAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int)
- {
- hge = hgeCreate(HGE_VERSION);
- hge->System_SetState(HGE_FRAMEFUNC, FrameFunc);
- hge->System_SetState(HGE_RENDERFUNC, RenderFunc);
- hge->System_SetState(HGE_HIDEMOUSE, hide_mouse);
- hge->System_SetState(HGE_WINDOWED, windowed);
- hge->System_SetState(HGE_DONTSUSPEND, true);
- hge->System_SetState(HGE_TITLE, "Itsirinus");
- if(hge->System_Initiate())
- {
- //load logo
- logotex = hge->Texture_Load("Images/logo.jpg");
- logospr = new hgeSprite(logotex,0,0,1280,1024);
- //load sounds
- bgmenusnd = hge->Effect_Load("Music/bgmenusnd.mp3");
- //load fonts
- font1 = new hgeFont("Fonts/font1.fnt");
- //load player graphics
- playertex = hge->Texture_Load("Images/sprite.png");
- playerspr = new hgeSprite(playertex,0,0,32,48);
- //load background
- skybgtex = hge->Texture_Load("Images/sky.jpg");
- skybgspr = new hgeSprite(skybgtex, 0,0,800,600);
- ///////////////////////////////////////////
- mapX=0; mapY=0;
- // Load map using the HGETileMap class
- // Create new instance of tilemap.
- // First coordinates are x,y in pixels to render at, Second are render size IN TILES
- // 800x600 resolution, 40 pixel tiles. 800/40 = 20, 600/40 = 15
- tilemap = new HGETileMap(hge, 0, 0, 20, 15);
- // Initialize map
- tilemap->Init();
- // Load Map file
- tilemap->LoadMap("level1.map");
- ////////////////////////////////////////////
- //start the game
- hge->System_Start();
- }
- //cleaning time
- clean_up();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement