Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.11.2011, 23:22   #1
ALKOrobot
Форумчанин
 
Регистрация: 17.02.2010
Сообщений: 109
По умолчанию Как отобразить спрайт HGE ?

Вот заготовка для вывода спрайта:
Код:
#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)'|
ALKOrobot вне форума Ответить с цитированием
Старый 13.11.2011, 00:04   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

либка подключена?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 13.11.2011, 00:07   #3
ALKOrobot
Форумчанин
 
Регистрация: 17.02.2010
Сообщений: 109
По умолчанию

да.
hge.lib и хэдеры настроены в build options
компилятор code blocks
ALKOrobot вне форума Ответить с цитированием
Старый 14.11.2011, 23:11   #4
ALKOrobot
Форумчанин
 
Регистрация: 17.02.2010
Сообщений: 109
По умолчанию

выяснилось, что для gcc отсутствует библиотека hgeSprite, зато есть сорс.
но при её компиляции вот какая ошибка:
Цитата:
||=== khren, Debug ===|
obj\Debug\hge\hge181\src\helpers\hg esprite.o(.text+0x8a1)||In function `ZNK9hgeSprite16GetBoundingBoxExEff fffP7hgeRect':|
C:\Users\ALKO\Desktop\hge\hge181\sr c\helpers\hgesprite.cpp|171|undefin ed reference to `hgeRect::Encapsulate(float, float)'|
obj\Debug\hge\hge181\src\helpers\hg esprite.o(.text+0x8d6):C:\Users\ALK O\Desktop\hge\hge181\src\helpers\hg esprite.cpp|172|undefined reference to `hgeRect::Encapsulate(float, float)'|
obj\Debug\hge\hge181\src\helpers\hg esprite.o(.text+0x90b):C:\Users\ALK O\Desktop\hge\hge181\src\helpers\hg esprite.cpp|173|undefined reference to `hgeRect::Encapsulate(float, float)'|
obj\Debug\hge\hge181\src\helpers\hg esprite.o(.text+0x940):C:\Users\ALK O\Desktop\hge\hge181\src\helpers\hg esprite.cpp|174|undefined reference to `hgeRect::Encapsulate(float, float)'|
obj\Debug\hge\hge181\src\helpers\hg esprite.o(.text+0x961):C:\Users\ALK O\Desktop\hge\hge181\src\helpers\hg esprite.cpp|178|undefined reference to `hgeRect::Encapsulate(float, float)'|
obj\Debug\hge\hge181\src\helpers\hg esprite.o(.text+0x980):C:\Users\ALK O\Desktop\hge\hge181\src\helpers\hg esprite.cpp|179|more undefined references to `hgeRect::Encapsulate(float, float)' follow|
||=== Build finished: 6 errors, 0 warnings ===|
ALKOrobot вне форума Ответить с цитированием
Старый 15.11.2011, 17:59   #5
ALKOrobot
Форумчанин
 
Регистрация: 17.02.2010
Сообщений: 109
По умолчанию

yeahh!
Скомпилировал при помощи Dev cpp.
Теперь отображается белое поле для текстуры спрайта, а самого спрайта на нём нету.
В чём тут ошибка?
Функцию рендера( RenderFunc()) раскоментировал
Конструктор спрайта таков sprite = new hgeSprite(tex,0,0,500,500)
Ну и загрузка текстуры так описана tex=hge->Texture_Load("ball.png"); (файл в каталоге присутствует)
ALKOrobot вне форума Ответить с цитированием
Старый 15.11.2011, 20:24   #6
ALKOrobot
Форумчанин
 
Регистрация: 17.02.2010
Сообщений: 109
По умолчанию

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


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
HGE проблема с спрайтами... VintProg Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 31.08.2011 06:51
HGE к дельфи... VintProg Gamedev - cоздание игр: Unity, OpenGL, DirectX 5 18.12.2010 18:07
DelphiX таймеры и спрайт Kolik317 Общие вопросы Delphi 1 09.08.2010 20:25
hge и C++ Olejik Общие вопросы C/C++ 2 09.07.2010 19:50
Не рисуется спрайт в Delphix DOLBY Мультимедиа в Delphi 0 01.04.2009 23:09