Объекты
Продвинемся немного дальше и определим структуру объекта. Если мы хотим использовать линии для рисования кораблей и планет, то нам необходима структура данных для хранения атрибутов этих объектов. Для начала постараемся ее не усложнять. Пусть каждый наш объект имеет не более 16 вершин, цвет и конкретное местоположение на экране. Как вычислять позицию, мы узнаем позже, а код для описания вершин в структуре данных будет выглядеть примерно так:
Листинг 4.4. Структуры данных для задания вершин объектов.
typedef struct vertex_typ
{
float x,y;
} vertex, *vertex_ptr;
// структура
объекта
typedef struct object_typ
{
int num_vertices; // количество вершин в объекте
int color; // цвет объекта
float хо,уо; // позиция объекта
float x_velocity; // используем позже для
float y_velocity; // перемещения объекта
float scale; // коэффициент масштабирования
float angle; // угол поворота
vertex vertices[16]; // массив для определения 16 вершин
} object, *object_ptr;
Эта структура данных нам нужна для описания объекта, представляющего собой многоугольник определенного цвета и расположенного в определенной позиции на экране.