Я пытаюсь сделать несколько эффектов в игре C + GL. Пока я рисую все свои спрайты как квад, и это работает.
Тем не менее, я пытаюсь сделать так, чтобы большое кольцо появлялось время от времени, с текстурой, следующей за этим кольцом, поскольку это занимает меньше памяти, чем у квадрата с текстурой кольца внутри.
Тип кольца, которое я хочу сделать, - это не кольцо GL с круглой формой (типа «труба»), а «бумажное» 2D кольцо. Таким образом, я могу изменить «ширину» кольца, получая больший эффект, чем простая текстура quad + ring.
До сих пор все мои попытки были ... отчасти нелепы, так как я не слишком хорошо понимаю координаты GL (и я не могу по-настоящему понять доступную документацию ... Я просто дизайнер без помощи кодера или опыта. N00b, в основном).
glBegin(GL_POLYGON);
for(i = 0;i < 360; i += 10){
glTexCoord2f(0, 0);
glVertex2f(Cos(i)*(H-10),Sin(i)*H);
glTexCoord2f(0, HP);
glVertex2f(Sin(i)*(H-10),Cos(i)*(H-10));
glTexCoord2f(WP, HP);
glVertex2f(Cos(i)*H,Sin(i)*(H-10));
glTexCoord2f(WP, 0);
glVertex2f(Sin(i)*H,Cos(i)*H);
}
glEnd();
Это моя последняя попытка, и кажется, что она генерирует "солнечные лучи" с правого края круга вместо кольца. Это забавный эффект, но определенно не то, что я хочу. Другие результаты включали в себя круг, выглядящий точно так же, как текстурированный квад (то есть буквально рисующий спрайт) или что-то похожее на поп-арт фильтр при работе над этим ходом мыслей.
Похоже, моя логика здесь совершенно ошибочна, так что бы было проще всего получить такое кольцо? Не нужно отвечать в коде, просто руководство для неопытного пользователя ...
Редактировать: другим способом обозначить то, что я хочу, была бы последовательность повернутых прямоугольников, соединенных друг с другом, образуя кольцо низкого разрешения.