PMG http://forum.pmg.org.ru/ |
|
Блочная графика... http://forum.pmg.org.ru/viewtopic.php?f=4&t=5010 |
Страница 1 из 1 |
Автор: | Андрей [ 08 ноя 2007 17:59 ] |
Заголовок сообщения: | Блочная графика... |
Нужна помощь, вобщем из названия понятно, не могу никак разобраться с выводом блоков, в частности никак не пойму как к каждому блоку прилепить номер из массива для идентификации блока, может у кого то есть похожий код, очень хотелось бы посмотреть как это выглядит в OpenGL |
Автор: | Андрей [ 08 ноя 2007 20:34 ] |
Заголовок сообщения: | |
#include<windows.h> #include<GL/glut.h> #define MAP_SIZEX 30 #define MAP_SIZEY 30 char map[10][10] = { {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 0, 0, 0, 0, 0, 0, 0, 0, 1}, {1, 1, 1, 1, 1, 1, 1, 1, 1, 1}, }; int y, x; //<<<<<<<<<<<< myInit >>>>>>>>>> void myInit(void) { glClearColor(0.0,1.0,1.0,0.0); glColor3f(0.0f, 0.0f, 0.0f); glPointSize(2.0); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluOrtho2D(0.0, 1024.0, 0.0, 768.0); } //<<<<<<<<<<<< myDisplay >>>>>>>>> void myDisplay(void) { glClear(GL_COLOR_BUFFER_BIT); int tile; for (int y = 0; y < MAP_SIZEY; y++) { for (int x = 0; x < MAP_SIZEX; x++) { tile = map[y][x]; glBegin(GL_QUADS); glVertex2i(x, y); glVertex2i((x + 1), (y)); glVertex2i((x + 1), (y + 1)); glVertex2i((x), (y + 1)); glEnd(); } } glEnd(); glFlush(); } //<<<<<<<<<<<< main >>>>>>>>>>> void main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB); glutInitWindowSize(640, 480); glutInitWindowPosition(100, 150); glutCreateWindow("my first attempt"); glutDisplayFunc(myDisplay); myInit(); glutMainLoop(); /////////////////////// Вот этот код компилируеться но в результате рисуеться только один квадрат в нижнем левом углу, а нужен блочный масив, может кто то подскажет где ошибка |
Автор: | MagicWolf [ 09 ноя 2007 10:51 ] |
Заголовок сообщения: | |
Вроде все просто, но мне не понятно что ты хочешь в результате получить. Например, ты получаешь tile = map[y][x]; - но потом это не используешь ни как. Может хоть цвет менять. |
Автор: | DanQuimby [ 01 фев 2008 16:12 ] |
Заголовок сообщения: | |
ну фиг знает тем способом как ты представляеш масив я неделал лет 5. пользуйся лучше stl лучше наверное vector хотя смотря какие задачи ты видиш. |
Автор: | reticon [ 03 фев 2008 14:48 ] |
Заголовок сообщения: | Re: Блочная графика... |
Андрей писал(а): в частности никак не пойму как к каждому блоку прилепить номер из массива для идентификации блока
Перебирай в цикле массив идентификаторов, и в зависимости от идентификатора выводи нужный тайл. Все просто. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа [ Летнее время ] |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |