#include #include #include #include #include #include HGE *hge = 0; hgeResourceManager* myRes; hgeSprite* bgSprite; hgeSprite* playerSprite; hgeAnimation* star; hgeFont* font1; HCHANNEL chan[2]; HEFFECT mySound; HSTREAM myMusic; float playerLocX = 200, playerLocY = 200; //the starting point of the player's location float mouseX, mouseY; //coordinates of the mouse cursor bool done = false; bool FrameFunc() { hge->Input_GetMousePos(&mouseX, &mouseY); //get the current mouse position float dt=hge->Timer_GetDelta(); //get the time since the last call to FrameFunc star->Update(dt); //update the animation //player movement if(hge->Input_GetKeyState(HGEK_UP)) playerLocY -= 100*dt; if(hge->Input_GetKeyState(HGEK_DOWN)) playerLocY += 100*dt; if(hge->Input_GetKeyState(HGEK_LEFT)) playerLocX -= 100*dt; if(hge->Input_GetKeyState(HGEK_RIGHT)) playerLocX += 100*dt; if(hge->Input_GetKey()==HGEK_ESCAPE) done=true; //quit when Esc is pressed //when left mouse is clicked, play sound effect if(hge->Input_GetKey()==HGEK_LBUTTON) chan[1] = hge->Effect_Play(mySound); hge->Gfx_BeginScene(); hge->Gfx_Clear(0); //clear the screen, filling it with black bgSprite->RenderStretch(0, 0, 800, 600); //render the background sprite stretched playerSprite->Render(playerLocX , playerLocY); //render the player sprite star->Render(400, 300); //render the animation of a star font1->SetScale(1.0); //set text size to normal font1->SetColor(ARGB(255,0,0,0)); //set color of text to black font1->Render(5, 5, "This is some text"); //render text at coordinates 5, 5 int someNumber = 50; font1->SetScale(2.0); //set text size to twice its normal size font1->printf(5, 30, "Here is a number: %d", someNumber); //render text using printf-style formatting font1->SetScale(1.0); //set text size to normal font1->printf(5, 75, "Mouse location: %.2f, %.2f", mouseX, mouseY); //render the current mouse position hge->Gfx_EndScene(); return done; } int WINAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int) { hge = hgeCreate(HGE_VERSION); hge->System_SetState(HGE_WINDOWED, true); hge->System_SetState(HGE_FRAMEFUNC, FrameFunc); hge->System_SetState(HGE_HIDEMOUSE, false); hge->System_SetState(HGE_TITLE, "HGE Tutorial"); if(hge->System_Initiate()) { myRes = new hgeResourceManager("resource.res"); bgSprite = myRes->GetSprite("bgSprite"); playerSprite = myRes->GetSprite("playerSprite"); star = myRes->GetAnimation("star"); star->Play(); //start playback of animation font1 = myRes->GetFont("font1"); mySound = myRes->GetEffect("click"); myMusic = myRes->GetStream("theme"); chan[0] = hge->Stream_Play(myMusic, true); //start playing music with looping hge->System_Start(); } else { MessageBox(NULL, hge->System_GetErrorMessage(), "Error", MB_OK | MB_ICONERROR | MB_SYSTEMMODAL); } delete myRes; hge->System_Shutdown(); hge->Release(); return 0; }