Автор Тема: Проблемочка с компиляцией HGE [спрайты]  (Прочитано 4479 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Гламурная киса

  • Пользователь
  • Сообщений: 317
  • Пол: Мужской
  • иичко
    • Просмотр профиля
Вот заготовка для вывода спрайта:
#include <hge.h>
#include <hgeSprite.h>
hgeSprite *sprite;

HGE *hge = 0;
HTEXTURE tex;

bool FrameFunc()
{

if (hge->Input_GetKeyState(HGEK_ESCAPE)) return true;


return false;
}

/*bool RenderFunc()
{
hge->Gfx_BeginScene();
hge->Gfx_Clear(0);
sprite->Render(49,49);
hge->Gfx_EndScene();
return false;
}*/

int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{

hge = hgeCreate(HGE_VERSION);

hge->System_SetState(HGE_FRAMEFUNC, FrameFunc);

hge->System_SetState(HGE_TITLE, "HGE Tutorial 01 - Minimal HGE application");


hge->System_SetState(HGE_WINDOWED, true);

hge->System_SetState(HGE_USESOUND, false);
tex=hge->Texture_Load("ball.png");
sprite = new hgeSprite(0,0,0,500,500);
sprite->SetBlendMode(BLEND_DEFAULT);
sprite->SetTextureRect(0,0,50,50,false);
if(hge->System_Initiate())
{

hge->System_Start();
}
else
{

MessageBox(NULL, hge->System_GetErrorMessage(), "Error", MB_OK | MB_ICONERROR | MB_APPLMODAL);
}


hge->System_Shutdown();


hge->Release();

return 0;
}

 и компилятор почему-то ругается на строчку
Цитата
sprite = new hgeSprite(0,0,0,500,500);
:'(

вот что в журнале компиляции:
C:\Users\ALKO\Desktop\hernya\khren\main.cpp|31|und efined reference to `hgeSprite::hgeSprite(unsigned long, float, float, float, float)'| :blush:

Компилятор Code Blocks, hge.lib и хэдеры настроены в build options.
C использованием hgeQuad выводил спрайты - нормально, но громоздко в написании кода. :-\

Подскажите, как мне откомпилировать  без ошибок?
« Последнее редактирование: 13 Ноябрь 2011, 21:44:21 от Гламурная киса »

Оффлайн madmonkey

  • Пользователь
  • Сообщений: 138
    • Просмотр профиля
Re: Проблемочка с компиляцией HGE [спрайты]
« Ответ #1 : 14 Ноябрь 2011, 08:07:40 »
там еще hgehelp.lib есть какбы

Оффлайн Гламурная киса

  • Пользователь
  • Сообщений: 317
  • Пол: Мужской
  • иичко
    • Просмотр профиля
Re: Проблемочка с компиляцией HGE [спрайты]
« Ответ #2 : 14 Ноябрь 2011, 15:28:02 »

и? :?

hgehelp.lib отсутствовал в папке для компилятора gcc, ну я туда перетащил с папки для VC - результат тот же.

Оффлайн madmonkey

  • Пользователь
  • Сообщений: 138
    • Просмотр профиля
Re: Проблемочка с компиляцией HGE [спрайты]
« Ответ #3 : 14 Ноябрь 2011, 15:36:58 »
слинковать ее надо, а не просто перенести.
и я бы пересобрал либы.

Оффлайн Гламурная киса

  • Пользователь
  • Сообщений: 317
  • Пол: Мужской
  • иичко
    • Просмотр профиля
Re: Проблемочка с компиляцией HGE [спрайты]
« Ответ #4 : 14 Ноябрь 2011, 15:46:19 »
ну так в код-блоксе вроде указал директорю для линкера.
в build options.
или компоновщик где-то отдельно находится в виде exe ?

Оффлайн madmonkey

  • Пользователь
  • Сообщений: 138
    • Просмотр профиля
Re: Проблемочка с компиляцией HGE [спрайты]
« Ответ #5 : 14 Ноябрь 2011, 16:53:55 »
build options - linker settings - туда добавить

Оффлайн Гламурная киса

  • Пользователь
  • Сообщений: 317
  • Пол: Мужской
  • иичко
    • Просмотр профиля
Re: Проблемочка с компиляцией HGE [спрайты]
« Ответ #6 : 14 Ноябрь 2011, 17:31:59 »
Туда я тоже добавлял.
Всё та же ошибка  - undefined reference to hgeSprite

Добавлено позже:
в целом инициализация двигателя пашет.
если закоментировать этот участок:
sprite = new hgeSprite(0,0,0,500,500);
sprite->SetBlendMode(BLEND_DEFAULT);
sprite->SetTextureRect(0,0,50,50,false);

И sprite = new hgeSprite(tex,0,0,500,500); тоже пробовал прописАть - всё та же фигня...
Я уже вторую неделю парюсь с этими спрайтами ^_^

Сперва хотел на XNA залобать что-нибудь...НО, ему нужна именно определённая версия фреймворка, и я передумал.

Оффлайн HoRRoR

  • Пользователь
  • Сообщений: 983
  • Пол: Мужской
  • Ромхакер
    • Просмотр профиля
Re: Проблемочка с компиляцией HGE [спрайты]
« Ответ #7 : 14 Ноябрь 2011, 17:44:49 »
В Include path компилятора добавил папку с хидерами?

Оффлайн Гламурная киса

  • Пользователь
  • Сообщений: 317
  • Пол: Мужской
  • иичко
    • Просмотр профиля
Re: Проблемочка с компиляцией HGE [спрайты]
« Ответ #8 : 14 Ноябрь 2011, 17:52:03 »
да.

Я с самого начала руководствовался данной инструкции
http://hge-blog.ru/272_urok-10-podklyuchenie-hge-k-codeblocks

Оффлайн madmonkey

  • Пользователь
  • Сообщений: 138
    • Просмотр профиля
Re: Проблемочка с компиляцией HGE [спрайты]
« Ответ #9 : 14 Ноябрь 2011, 19:14:58 »
выкидываем инструкцию и включаем голову.
hgeSprite находится в hgehelp, для гцц прекомпиленной библиотеки нет(да и не нужна она).
компилим библиотеку, линкуем. можно просто hgeSprite.cpp в проект добавить.

Оффлайн Гламурная киса

  • Пользователь
  • Сообщений: 317
  • Пол: Мужской
  • иичко
    • Просмотр профиля
Re: Проблемочка с компиляцией HGE [спрайты]
« Ответ #10 : 14 Ноябрь 2011, 22:37:41 »
Хммм...я добавил к проекту этот сипипи файл, на что компилятор начал ругаться примерно такой бранью:
||=== khren, Debug ===|
obj\Debug\hge\hge181\src\helpers\hgesprite.o(.text+0x8a1)||In function `ZNK9hgeSprite16GetBoundingBoxExEfffffP7hgeRect':|
C:\Users\ALKO\Desktop\hge\hge181\src\helpers\hgesprite.cpp|171|undefined reference to `hgeRect::Encapsulate(float, float)'|
obj\Debug\hge\hge181\src\helpers\hgesprite.o(.text+0x8d6):C:\Users\ALKO\Desktop\hge\hge181\src\helpers\hgesprite.cpp|172|undefined reference to `hgeRect::Encapsulate(float, float)'|
obj\Debug\hge\hge181\src\helpers\hgesprite.o(.text+0x90b):C:\Users\ALKO\Desktop\hge\hge181\src\helpers\hgesprite.cpp|173|undefined reference to `hgeRect::Encapsulate(float, float)'|
obj\Debug\hge\hge181\src\helpers\hgesprite.o(.text+0x940):C:\Users\ALKO\Desktop\hge\hge181\src\helpers\hgesprite.cpp|174|undefined reference to `hgeRect::Encapsulate(float, float)'|
obj\Debug\hge\hge181\src\helpers\hgesprite.o(.text+0x961):C:\Users\ALKO\Desktop\hge\hge181\src\helpers\hgesprite.cpp|178|undefined reference to `hgeRect::Encapsulate(float, float)'|
obj\Debug\hge\hge181\src\helpers\hgesprite.o(.text+0x980):C:\Users\ALKO\Desktop\hge\hge181\src\helpers\hgesprite.cpp|179|more undefined references to `hgeRect::Encapsulate(float, float)' follow|
||=== Build finished: 6 errors, 0 warnings ===|

Я дествовал так : нажал project -> add files и выбрал тот злосчастный файл,может помимо этого ещё что-то нужно сделать.

Оффлайн Гламурная киса

  • Пользователь
  • Сообщений: 317
  • Пол: Мужской
  • иичко
    • Просмотр профиля
Re: Проблемочка с компиляцией HGE [спрайты]
« Ответ #11 : 15 Ноябрь 2011, 20:22:48 »
yeahh! :cool:
Скомпилировал при помощи Dev cpp.
Теперь отображается белое поле для текстуры спрайта, а самого спрайта на нём нету.
В чём тут ошибка?
Функцию рендера( RenderFunc()) раскоментировал
Конструктор спрайта таков sprite = new hgeSprite(tex,0,0,500,500)
Ну и загрузка текстуры так описана tex=hge->Texture_Load("ball.png"); (файл в каталоге присутствует)


Добавлено позже:
Ай....это я натупил просто.  :blush:
Надо было грузить текстуру спрайта после условия проверки удачной инициализации движка.
Спасибо за внимание, теперь всё пашет.