HLFX.Ru Forum
профиль •  правила •  регистрация •  календарь •  народ •  FAQ •  поиск •  новое •  сутки •  главная •  выход  
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > Проблема с тайловыми текстурами (не хл)
  Предыдущая тема   Следующая тема
Автор
Тема Новая тема    Ответить
AlMod
Ленивый кодер

Дата регистрации: Jun 2008
Проживает: Саратов
Сообщений: 172
Возраст: 34

Рейтинг



Проблема с тайловыми текстурами (не хл)

В данный момент занят с тем, что пишу игру по программированию в институт и столкнулся с небольшой проблемой - глифы у поля рисуются абы как.

а теперь код..

Процедура вывода текстурированых изображений

C++ Source Code:
1
void DrawSquareTexture(int x1, int y1, int x2, int y2, BaseTexture *texture, int glyph)
2
{
3
  float _x1, _x2, _y1, _y2;
4
  _x1 = TransferXPixelToGL(x1);
5
  _x2 = TransferXPixelToGL(x2);
6
  _y1 = TransferYPixelToGL(y1);
7
  _y2 = TransferYPixelToGL(y2);
8
 
9
  unsigned int *tex = texture->GetPointer();
10
 
11
  float tx1, tx2;
12
  int total = texture->GetGlyph();
13
 
14
  if (glyph>total) glyph = total;
15
 
16
  if (glyph)
17
  {
18
    tx1 = (float)(glyph-1)/total;
19
    tx2 = (float)glyph/total;
20
  }
21
  else
22
  {
23
    tx1 = 0;
24
    tx2 = 1;
25
  }
26
 
27
  if (texture!=NULL)
28
  {
29
    glBindTexture(GL_TEXTURE_2D, *tex);
30
    glBegin(GL_QUADS);
31
    glTexCoord2f(tx1,0);
32
    glVertex2f(_x1,_y1);
33
    glTexCoord2f(tx1,1);
34
    glVertex2f(_x1,_y2);
35
    glTexCoord2f(tx2,1);
36
    glVertex2f(_x2,_y2);
37
    glTexCoord2f(tx2,0);
38
    glVertex2f(_x2,_y1);
39
    glEnd();
40
  }
41
  else
42
  {
43
    glBegin(GL_QUADS);
44
    glVertex2f(_x1,_y1);
45
    glVertex2f(_x1,_y2);
46
    glVertex2f(_x2,_y2);
47
    glVertex2f(_x2,_y1);
48
    glEnd();
49
  }
50
}


Класс текстуры
C++ Source Code:
1
class BaseTexture
2
{
3
private:
4
public:
5
  int sizeX, sizeY;
6
  int glyph;//, glyphY;
7
  unsigned int texture;
8
  char *name;
9
  void InitTexture(int s1, int s2, int g) { sizeX = s1; sizeY = s2; glyph = g; };
10
  void LoadTexture(char *image) { name = image; BindTexture(name,&texture); };
11
  unsigned int *GetPointer() { return &texture; };
12
  unsigned int GetTexture() { return texture; };
13
  int GetGlyph() { return sizeX / glyph; }
14
};


Вывод на экран
C++ Source Code:
1
void BaseGameField::Redraw()
2
{
3
  for (int i=0;i<52;i++)
4
  {
5
    for (int j=0;j<52;j++)
6
    {
7
      switch (field[i][j])
8
      {
9
        case 0: DrawSquareTexture(sx+i*8,sy+j*8,sx+(i+1)*8,sy+(j+1)*8,&textures[TEXTURE_FIELD],1);
10
        break;
11
      }
12
    }
13
  }
14
}


sx и sy = 32

Жду помощи от знатоков ГЛ, всю бошку уже себе сломал

[ Вложение ]
bad_glyph.jpg

__________________
Сайт поддержки кодеров на AMX Mod X

Сообщить модератору | | IP: Записан
Сообщение: 43889

Старое сообщение 10-04-2009 16:09
- За что?
AlMod
Ленивый кодер

Дата регистрации: Jun 2008
Проживает: Саратов
Сообщений: 172
Возраст: 34

Рейтинг



Благодаря Дядь Мише проблема решена, за что ему спасибо

__________________
Сайт поддержки кодеров на AMX Mod X

Сообщить модератору | | IP: Записан
Сообщение: 43908

Старое сообщение 12-04-2009 06:32
- За что?
Тема закрыта XaeroX 12-04-2009 в 15:58
Временная зона GMT. Текущее время 19:39. Новая тема    Ответить
  Предыдущая тема   Следующая тема
HLFX.Ru Forum HLFX.Ru Forum > Теория и практика > OpenGL > Проблема с тайловыми текстурами (не хл)
Версия для печати | Отправить тему по E-Mail | Подписаться на эту тему

Быстрый переход:
Оцените эту тему:

Правила Форума:
Вы not можете создавать новые темы
Вы not можете отвечать в темы
Вы not можете прикреплять вложения
Вы not можете редактировать ваши сообщения
HTML Код ВЫКЛ
vB Код ВКЛ
Смайлики ВКЛ
[IMG] Код ВКЛ
 

< Обратная связь - HLFX.ru >

На основе vBulletin
Авторское право © 2000 - 2002, Jelsoft Enterprises Limited.
Дизайн и программирование: Crystice Softworks © 2005 - 2024