Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > разработка игр, графический дизайн и моделирование > Gamedev - cоздание игр: Unity, OpenGL, DirectX
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.01.2010, 19:01   #61
Андрей 93
Люблю жизнь
Форумчанин
 
Аватар для Андрей 93
 
Регистрация: 01.12.2009
Сообщений: 193
По умолчанию

Демо запускается кнопкой 2. Управление квадратом стрелками (экспериментальное, на это не смотрите). Текстура накладывается как мне надо только на квадрате, а надо ещё на круге.
Вложения
Тип файла: rar Рабочий стол.rar (217.2 Кб, 21 просмотров)
Не стыдно не уметь, стыдно не учиться.
Андрей 93 вне форума Ответить с цитированием
Старый 27.01.2010, 19:04   #62
Андрей 93
Люблю жизнь
Форумчанин
 
Аватар для Андрей 93
 
Регистрация: 01.12.2009
Сообщений: 193
По умолчанию

координаты текстуры для круга (без учёта поворота) описывал так:
//вершинные координаты
PC.Point[0]:=cpv(body1.p.x-15, body1.p.y+15);
PC.Point[1]:=cpv(body1.p.x-15, body1.p.y-15);
PC.Point[2]:=cpv(body1.p.x+15, body1.p.y-15);
PC.Point[3]:=cpv(body1.p.x+15, body1.p.y+15);
//текстурные координаты
PC.TexPoint[0]:=PC.Point[0];
PC.TexPoint[1]:=PC.Point[1];
PC.TexPoint[2]:=PC.Point[2];
PC.TexPoint[3]:=PC.Point[3];
Не стыдно не уметь, стыдно не учиться.
Андрей 93 вне форума Ответить с цитированием
Старый 27.01.2010, 19:50   #63
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Цитата:
Текстура накладывается как мне надо только на квадрате
Так это через модуль который я выкладывал.
Цитата:
а надо ещё на круге
А как ты собираешься через процедуры текстурирования полигона (многоугольника) оттекстурировать круг? Ты ведь понимаешь что круг не текстурируется четырьмя или более вершинами. Для круга нужно свои процедуры на GL писать, либо как я предлагал подбирать текстуру с альфа каналом и рисовать ее в нужном месте с нужным поворотом черз ф-цию движка (простое рисование спрайта).
Вадим Буренков вне форума Ответить с цитированием
Старый 27.01.2010, 20:50   #64
Андрей 93
Люблю жизнь
Форумчанин
 
Аватар для Андрей 93
 
Регистрация: 01.12.2009
Сообщений: 193
По умолчанию

Я знаю, что такое полигон, знаю, что круг не текстурируется через вершины. Я сделал текстуру с транспарентом (tga.tga). Вопрос то не в том, как рисовать, а почему текстура не движется за телом.
Не стыдно не уметь, стыдно не учиться.
Андрей 93 вне форума Ответить с цитированием
Старый 28.01.2010, 16:29   #65
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Текстурные координаты ведь не просто так даны. Почитай про них, они отвечают какая часть текстуры будет рисоваться в полигоне.

При создании полигона в чипманке мы указываем локальные координаты его вершин, например
Код:
  num:= 4;
  verts[0]:= cpv(-15,-15);
	verts[1]:= cpv(-15, 15);
	verts[2]:= cpv( 15, 15);
	verts[3]:= cpv( 15,-15);
Посмотри процедуру CasheForPhysPoly там текстурирование сделано так:
При рисовании эти координаты можно найти по PPolyShape.verts. Для вершинных координат текстурирования нужно перевести их в глобальные:
Код:
глобальная координата:=cpvadd(положение тела, cpvrotate(локальная координата, угол поворота тела));
Текстурные координаты должны быть локальными поэтому используется массив вершин PPolyShape.verts без каких либо изменений.
Их также можно вручную задавать для регулировки разрешения рисуемого полигона.
В твоем случае с текстурированием окружности через квадрат укажи текстурные координаты типа таких:
Код:
PC.TexPoint[0]:=cpv(0,0);
PC.TexPoint[1]:=cpv(0,30);
PC.TexPoint[2]:=cpv(30,30);
PC.TexPoint[3]:=cpv(30,0);
Вадим Буренков вне форума Ответить с цитированием
Старый 29.01.2010, 05:45   #66
Андрей 93
Люблю жизнь
Форумчанин
 
Аватар для Андрей 93
 
Регистрация: 01.12.2009
Сообщений: 193
По умолчанию

Ааа, понятно. А то у меня текстурные координаты глобально находились, и я не мог понять, чем они отличаются от вершин. А омега работает с альфа каналом в tga? Создал рисунок с альфа, а он не отображается вообще.
Не стыдно не уметь, стыдно не учиться.

Последний раз редактировалось Андрей 93; 29.01.2010 в 10:32.
Андрей 93 вне форума Ответить с цитированием
Старый 29.01.2010, 13:44   #67
Вадим Буренков
Участник клуба
 
Аватар для Вадим Буренков
 
Регистрация: 06.03.2009
Сообщений: 1,346
По умолчанию

Я раньше когда использовал омегу по неопытности использовал transparent, но в движке должны быть текстуры с альфой. Посмотри документацию.
Вадим Буренков вне форума Ответить с цитированием
Старый 30.01.2010, 16:06   #68
Андрей 93
Люблю жизнь
Форумчанин
 
Аватар для Андрей 93
 
Регистрация: 01.12.2009
Сообщений: 193
По умолчанию

С помощью SSprite_draw закрашиваю круг, но то ли текстура слишком быстро крутится, то ли линия (которая идёт от центра круга к окружности) медленно, но они не совпадают.
Вложения
Тип файла: rar Textured poly demo.rar (217.4 Кб, 13 просмотров)
Не стыдно не уметь, стыдно не учиться.
Андрей 93 вне форума Ответить с цитированием
Старый 30.01.2010, 17:37   #69
Андрей 93
Люблю жизнь
Форумчанин
 
Аватар для Андрей 93
 
Регистрация: 01.12.2009
Сообщений: 193
По умолчанию

Разобрался сам: забыл, что при переводе из радиан в градусы надо делить на pi
Не стыдно не уметь, стыдно не учиться.
Андрей 93 вне форума Ответить с цитированием
Старый 31.01.2010, 17:05   #70
Андрей 93
Люблю жизнь
Форумчанин
 
Аватар для Андрей 93
 
Регистрация: 01.12.2009
Сообщений: 193
По умолчанию

Приступил к сохранению карт. В файл будут записываться следующие данные: масса, начальная скорость, положение, трение, радиус (для круга) и т.д.
Примерно так:

круги-n
m vx vy px py u r e...
m1 vx1 vy1 px1 py1 u1 r1 e1...
...
mn vxn vyn pxn pyn un rn en...

прямоугольники-k
m vx vy px py u a b e...
m1 vx1 vy1 px1 py1 u1 a1 b1 e1...
...
mk vxk vyk pxk pyk uk ak bk ek...

при открытии карты создаётся массив из n кругов (параметры каждого из них берутся из из строк ниже), затем второй массив из
k прямоугольников (характеристики так же из строк ниже)

Как лучше сохранять: в текстовом, типизированном или нетип. файле? Про нетипизированные файлы знаю мало, но сейчас усиленно изучаю
Не стыдно не уметь, стыдно не учиться.
Андрей 93 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Физика в 2D играх Вадим Буренков Gamedev - cоздание игр: Unity, OpenGL, DirectX 32 02.11.2010 22:00
Искуственый интелект в играх VintProg Gamedev - cоздание игр: Unity, OpenGL, DirectX 26 01.08.2009 23:09
Сюжет в 2D играх ZotaC Свободное общение 8 05.07.2009 15:42
Физика программы. Манжосов Денис :) Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 09.05.2008 18:14
Анимация в играх frai Gamedev - cоздание игр: Unity, OpenGL, DirectX 4 25.11.2007 14:28