HGE. Рендер спрайта
|
|
Deswing | Дата: Понедельник, 12 Августа 2013, 21:45 | Сообщение # 1 |
заслуженный участник
Сейчас нет на сайте
| не пашет: Код #include <hge.h> #include <hgeresource.h> #include <hgevector.h> #include <ctime> #include <stdlib.h> #include <cstdlib> #include <cmath>
HGE *hge = 0; HTEXTURE t_back; hgeSprite *back; float b_x = 0.0, b_y = 0.0; const double pi = 3.14159265359; float rand_d(int min, int max) { max+=1; int n = min+rand()%(max-min); return n; } bool UpdateFunc() { return false; } bool RenderFunc() { hge->Gfx_BeginScene(); hge->Gfx_Clear(0); back->Render(b_x,b_y); hge->Gfx_EndScene(); return false; } int WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { srand(time(0)); hge = hgeCreate(HGE_VERSION); hge->System_SetState(HGE_FRAMEFUNC, UpdateFunc); hge->System_SetState(HGE_RENDERFUNC, RenderFunc); hge->System_SetState(HGE_TITLE, "Some piece of space"); hge->System_SetState(HGE_WINDOWED, true); hge->System_SetState(HGE_SCREENWIDTH, 1280); hge->System_SetState(HGE_SCREENHEIGHT, 720); hge->System_SetState(HGE_SCREENBPP, 32); hge->System_SetState(HGE_FPS, 60); hge->System_SetState(HGE_HIDEMOUSE, false); hge->System_SetState(HGE_USESOUND, true); if(hge->System_Initiate()) { t_back=hge->Texture_Load("space.png"); back->SetTexture(t_back); hge->System_Start(); } else { MessageBox(NULL, hge->System_GetErrorMessage(), "Error", MB_OK | MB_ICONERROR | MB_APPLMODAL); } hge->System_Shutdown(); hge->Release(); return 0; } что здесь не так? P.S. space.png - это бэкграунд игры
|
|
| |
TideS | Дата: Понедельник, 12 Августа 2013, 22:01 | Сообщение # 2 |
заслуженный участник
Сейчас нет на сайте
| Deswing, Офигенно, "не пашет".
|
|
| |
GECK | Дата: Понедельник, 12 Августа 2013, 22:32 | Сообщение # 3 |
заслуженный участник
Сейчас нет на сайте
| При создании спрайта нужно ведь указать его положение на текстуре.
Всё гениальное просто. И хреново работает.
|
|
| |
Deswing | Дата: Понедельник, 12 Августа 2013, 22:37 | Сообщение # 4 |
заслуженный участник
Сейчас нет на сайте
| GECK, спасибо большое за Ваш комментарий, но могли бы дать мне более точную наводку? Заранее извиняюсь Без изменений в дебаге пишет: Цитата 1>------ Построение начато: проект: space, Конфигурация: Debug Win32 ------ 1>LINK : fatal error LNK1104: не удается открыть файл "c:\users\vlad\documents\visual studio 2010\Projects\space\Debug\space.exe" ========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ========== а в релизе жалуется на LIBC.lib (как игнорить? Использую Visual Studio)
|
|
| |
TideS | Дата: Понедельник, 12 Августа 2013, 22:56 | Сообщение # 5 |
заслуженный участник
Сейчас нет на сайте
| Deswing, Возможно, файл занят другим процессом.
|
|
| |
Deswing | Дата: Понедельник, 12 Августа 2013, 23:57 | Сообщение # 6 |
заслуженный участник
Сейчас нет на сайте
| При игноре LIBC стало хуже... Люди добрые, подскажите пожалуйста, как лучше всего выводить спрайты на экран? (если скинете пример - было бы здорово! Ну или хотя бы упомяните функции, я в доках поищу ) Надеюсь, что кто-нибудь мне поможет. Надеюсь на Ваше понимание
|
|
| |
Animan2010 | Дата: Вторник, 13 Августа 2013, 00:13 | Сообщение # 7 |
постоянный участник
Сейчас нет на сайте
| Вместо back->SetTexture(t_back); напиши back = new hgeSprite(t_back,0.0f,0.0f,"ширина текстуры","высота текстуры");Добавлено (13.08.2013, 00:13) --------------------------------------------- У тебя back - неинициализированный указатель, а ты его используешь
Anima Games Animan Publishing
|
|
| |
Deswing | Дата: Вторник, 13 Августа 2013, 00:18 | Сообщение # 8 |
заслуженный участник
Сейчас нет на сайте
| Animan2010, БЛАГОДАРЮ!!! Вы мой спаситель!))) Плюсую
|
|
| |