Haridon Дата: Понедельник, 06 Января 2014, 10:39 | Сообщение # 1
был не раз
Сейчас нет на сайте
вот код туториала
#include "hge.h" #include "hgesprite.h" #include "hgefont.h" #include "hgeparticle.h" HGE *hge=0; hgeSprite* spr; hgeSprite* spt; hgeSprite* tar; hgeFont* fnt; hgeParticleSystem* par; HTEXTURE tex; HEFFECT snd; HTARGET target; float x=100.0f, y=100.0f; float dx=0.0f, dy=0.0f; const float speed=90; const float friction=0.98f; void boom() { int pan=int((x-256)/2.56f); float pitch=(dx*dx+dy*dy)*0.0005f+0.2f; hge->Effect_PlayEx(snd,100,pan,pitch); } bool GfxRestoreFunc() { if(tar && target) tar->SetTexture(hge->Target_GetTexture(target)); return false; } bool FrameFunc() { float dt=hge->Timer_GetDelta(); if (hge->Input_GetKeyState(HGEK_ESCAPE)) return true; if (hge->Input_GetKeyState(HGEK_LEFT)) dx-=speed*dt; if (hge->Input_GetKeyState(HGEK_RIGHT)) dx+=speed*dt; if (hge->Input_GetKeyState(HGEK_UP)) dy-=speed*dt; if (hge->Input_GetKeyState(HGEK_DOWN)) dy+=speed*dt; dx*=friction; dy*=friction; x+=dx; y+=dy; if(x>496) {x=496-(x-496);dx=-dx;boom();} if(x<16) {x=16+16-x;dx=-dx;boom();} if(y>496) {y=496-(y-496);dy=-dy;boom();} if(y<16) {y=16+16-y;dy=-dy;boom();} par->info.nEmission=(int)(dx*dx+dy*dy); par->MoveTo(x,y); par->Update(dt); return false; } bool RenderFunc() { int i; hge->Gfx_BeginScene(target); hge->Gfx_Clear(0); par->Render(); spr->Render(x, y); hge->Gfx_EndScene(); hge->Gfx_BeginScene(); hge->Gfx_Clear(0); for(i=0;i<6;i++) { tar->SetColor(0xFFFFFF | (((5-i)*40+55)<<24)); tar->RenderEx(i*100.0f, i*50.0f, i*M_PI/8, 1.0f-i*0.1f); } fnt->printf(5, 5, HGETEXT_LEFT, "dt:%.3f\nFPS:%d (constant)", hge->Timer_GetDelta(), hge->Timer_GetFPS()); hge->Gfx_EndScene(); return false; } int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { hge = hgeCreate(HGE_VERSION); hge->System_SetState(HGE_LOGFILE, "hge_tut04.log"); hge->System_SetState(HGE_FRAMEFUNC, FrameFunc); hge->System_SetState(HGE_RENDERFUNC, RenderFunc); hge->System_SetState(HGE_GFXRESTOREFUNC, GfxRestoreFunc); hge->System_SetState(HGE_TITLE, "HGE Tutorial 04 - Using render targets"); hge->System_SetState(HGE_FPS, 100); hge->System_SetState(HGE_WINDOWED, true); hge->System_SetState(HGE_SCREENWIDTH, 800); hge->System_SetState(HGE_SCREENHEIGHT, 600); hge->System_SetState(HGE_SCREENBPP, 32); tar=0; target=0; if(hge->System_Initiate()) { snd=hge->Effect_Load("menu.wav"); tex=hge->Texture_Load("particles.png"); if(!snd || !tex) { MessageBox(NULL, "Can't load one of the following files:\nMENU.WAV, PARTICLES.PNG, FONT1.FNT, FONT1.PNG, TRAIL.PSI", "Error", MB_OK | MB_ICONERROR | MB_APPLMODAL); hge->System_Shutdown(); hge->Release(); return 0; } spr=new hgeSprite(tex, 96, 64, 32, 32); spr->SetColor(0xFFFFA000); spr->SetHotSpot(16,16); fnt=new hgeFont("font1.fnt"); spt=new hgeSprite(tex, 32, 32, 32, 32); spt->SetBlendMode(BLEND_COLORMUL | BLEND_ALPHAADD | BLEND_NOZWRITE); spt->SetHotSpot(16,16); par=new hgeParticleSystem("trail.psi",spt); par->Fire(); target=hge->Target_Create(512,512,false); tar=new hgeSprite(hge->Target_GetTexture(target),0,0,512,512); tar->SetBlendMode(BLEND_COLORMUL | BLEND_ALPHAADD | BLEND_NOZWRITE); hge->System_Start(); delete par; delete fnt; delete spt; delete spr; delete tar; hge->Target_Free(target); hge->Texture_Free(tex); hge->Effect_Free(snd); } // Clean up and shutdown hge->System_Shutdown(); hge->Release(); return 0; }
Проблемка
1>lk.obj : error LNK2001: unresolved external symbol "public: void __cdecl hgeFont::printf(float,float,int,char const *,...)" (?printf@hgeFont@@QAAXMMHPBDZZ) 1>lk.obj : error LNK2001: unresolved external symbol "public: __thiscall hgeFont::~hgeFont(void)" (??1hgeFont@@QAE@XZ) 1>lk.obj : error LNK2001: unresolved external symbol "public: __thiscall hgeFont::hgeFont(char const *,bool)" (??0hgeFont@@QAE@PBD_N@Z) 1>lk.obj : error LNK2001: unresolved external symbol "public: void __thiscall hgeParticleSystem::MoveTo(float,float,bool)" (?MoveTo@hgeParticleSystem@@QAEXMM_N@Z) 1>lk.obj : error LNK2001: unresolved external symbol "public: void __thiscall hgeParticleSystem::Update(float)" (?Update@hgeParticleSystem@@QAEXM@Z) 1>lk.obj : error LNK2001: unresolved external symbol "public: void __thiscall hgeParticleSystem::Fire(void)" (?Fire@hgeParticleSystem@@QAEXXZ) 1>lk.obj : error LNK2001: unresolved external symbol "public: void __thiscall hgeParticleSystem::Render(void)" (?Render@hgeParticleSystem@@QAEXXZ) 1>lk.obj : error LNK2001: unresolved external symbol "public: __thiscall hgeParticleSystem::hgeParticleSystem(char const *,class hgeSprite *)" (??0hgeParticleSystem@@QAE@PBDPAVhgeSprite@@@Z) 1>lk.obj : error LNK2001: unresolved external symbol "public: void __thiscall hgeSprite::SetColor(unsigned long,int)" (?SetColor@hgeSprite@@QAEXKH@Z) 1>lk.obj : error LNK2001: unresolved external symbol "public: void __thiscall hgeSprite::Render(float,float)" (?Render@hgeSprite@@QAEXMM@Z) 1>lk.obj : error LNK2001: unresolved external symbol "public: __thiscall hgeSprite::hgeSprite(unsigned long,float,float,float,float)" (??0hgeSprite@@QAE@KMMMM@Z) 1>lk.obj : error LNK2001: unresolved external symbol "private: static class HGE * hgeParticleSystem::hge" (?hge@hgeParticleSystem@@0PAVHGE@@A) 1>lk.obj : error LNK2001: unresolved external symbol "protected: static class HGE * hgeSprite::hge" (?hge@hgeSprite@@1PAVHGE@@A) 1>C:\Users\Дмитрий\Documents\Visual Studio 2010\Projects\llll\Release\llll.exe : fatal error LNK1120: 13 unresolved externals 1> 1>Build FAILED.
Сообщение отредактировал Haridon - Вторник, 07 Января 2014, 11:14
Kolyan Дата: Пятница, 17 Января 2014, 13:28 | Сообщение # 2
был не раз
Сейчас нет на сайте
Библиотеки подключал? Если нет в начали пиши: #pragma library ("hge.lib") #pragma library ("hgehelp.lib")
Сообщение отредактировал Kolyan - Пятница, 17 Января 2014, 18:23
Sanoraag Дата: Понедельник, 20 Января 2014, 20:19 | Сообщение # 3
почетный гость
Сейчас нет на сайте
Лучше подключай так 1. alt + f7; 2.linker->input 3. в Additional Dependencies пишешь hge.lib;hgehelp.lib