Понедельник, 25 Ноября 2024, 22:48

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
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 стало хуже...
Люди добрые, подскажите пожалуйста, как лучше всего выводить спрайты на экран? (если скинете пример - было бы здорово! Ну или хотя бы упомяните функции, я в доках поищу smile )
Надеюсь, что кто-нибудь мне поможет. Надеюсь на Ваше понимание
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, БЛАГОДАРЮ!!! Вы мой спаситель!))) Плюсую smile
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг