PMG

Форумы по созданию игр
Текущее время: 28 мар 2024 17:50

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 5 ] 
Автор Сообщение
 Заголовок сообщения: Блочная графика...
СообщениеДобавлено: 08 ноя 2007 17:59 
Не в сети
Новичок

Зарегистрирован: 08 ноя 2007 17:48
Сообщения: 3
Нужна помощь, вобщем из названия понятно, не могу никак разобраться с выводом блоков, в частности никак не пойму как к каждому блоку прилепить номер из массива для идентификации блока, может у кого то есть похожий код, очень хотелось бы посмотреть как это выглядит в OpenGL


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 08 ноя 2007 20:34 
Не в сети
Новичок

Зарегистрирован: 08 ноя 2007 17:48
Сообщения: 3
#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();

///////////////////////
Вот этот код компилируеться но в результате рисуеться только один квадрат в нижнем левом углу, а нужен блочный масив, может кто то подскажет где ошибка


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 09 ноя 2007 10:51 
Не в сети
Гуру
Аватара пользователя

Зарегистрирован: 03 авг 2004 10:37
Сообщения: 2694
Вроде все просто, но мне не понятно что ты хочешь в результате получить. Например, ты получаешь tile = map[y][x]; - но потом это не используешь ни как. Может хоть цвет менять.

_________________
С уважением, Сергей


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 01 фев 2008 16:12 
Не в сети
Любитель
Аватара пользователя

Зарегистрирован: 01 фев 2008 16:09
Сообщения: 10
ну фиг знает тем способом как ты представляеш масив я неделал
лет 5.
пользуйся лучше stl лучше наверное vector хотя смотря какие задачи ты
видиш. :lol:

_________________
нас невозможно сбить с пути или поздравить с новым годом, мы мухи, нам лишь сутки жить и сутки трахаться с народом.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Блочная графика...
СообщениеДобавлено: 03 фев 2008 14:48 
Не в сети
Любитель

Зарегистрирован: 10 янв 2008 18:31
Сообщения: 11
Андрей писал(а):
в частности никак не пойму как к каждому блоку прилепить номер из массива для идентификации блока


Перебирай в цикле массив идентификаторов, и в зависимости от идентификатора выводи нужный тайл. Все просто.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 5 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB