AlMod
Ленивый кодер
Дата регистрации: Jun 2008
Проживает: Саратов
Сообщений: 172
Возраст: 34
Рейтинг
|
Проблема с тайловыми текстурами (не хл)
В данный момент занят с тем, что пишу игру по программированию в институт и столкнулся с небольшой проблемой - глифы у поля рисуются абы как.
а теперь код..
Процедура вывода текстурированых изображений
C++ Source Code:
1 | void DrawSquareTexture(int x1, int y1, int x2, int y2, BaseTexture *texture, int glyph) |
3 | float _x1, _x2, _y1, _y2; |
4 | _x1 = TransferXPixelToGL(x1); |
5 | _x2 = TransferXPixelToGL(x2); |
6 | _y1 = TransferYPixelToGL(y1); |
7 | _y2 = TransferYPixelToGL(y2); |
9 | unsigned int *tex = texture->GetPointer(); |
12 | int total = texture->GetGlyph(); |
14 | if (glyph>total) glyph = total; |
18 | tx1 = (float)(glyph-1)/total; |
19 | tx2 = (float)glyph/total; |
29 | glBindTexture(GL_TEXTURE_2D, *tex); |
Класс текстуры
C++ Source Code:
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; } |
Вывод на экран
C++ Source Code:
1 | void BaseGameField::Redraw() |
9 | case 0: DrawSquareTexture(sx+i*8,sy+j*8,sx+(i+1)*8,sy+(j+1)*8,&textures[TEXTURE_FIELD],1); |
sx и sy = 32
Жду помощи от знатоков ГЛ, всю бошку уже себе сломал
__________________
Сайт поддержки кодеров на AMX Mod X
Сообщить модератору | | IP: Записан
Сообщение: 43889
|