Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Листинг 4.5. Описание астероида.
Object asteroid; // определим поля asteroid.num_vertices = 6; //шести вершин будет достаточно asteroid.color = 1; //цвет астероида - синий asteroid.х0 = 320; // поместить астероид в центр экрана asteroid.у0 = 240; //теперь задаем координаты вершин как смещения относительно точки х0, у0 asteroid.vertices[0].х = 4.0; asteroid.vertices[0].у = 3.5; asteroid.vertices[1].х = 8.5; asteroid.vertices[1].у = -3.0; asteroid.vertices[2].x = 6; asteroid.vertices[2].у = -5; asteroid.vertices[3], x = 2; asteroid.vertices[3].у = -3; asteroid.vertices[4].х = -4; asteroid.vertices[4].у = -6; asteroid.vertices[5].х = -3.5; asteroid.vertices[5].у = 5.5; Конечно, в настоящих играх вам не придется так определять все свои объекты. Напротив, вы можете загрузить координаты вершин из файла или сгенерировать их (например, AutoCad использует формат DXF, содержащий списки вершин вместе с другими свойствами объекта; после того как DXF-файл загружен, координаты вершин считываются из него в соответствующие структуры). Но поскольку мы создаем всего один астероид, то можно описать его и вручную. Теперь давайте чуть-чуть подумаем. Мы можем нарисовать вершины объекта относительно его положения на экране, которое описывается как (хо, уо). Если же мы хотим передвинуть объект, то можно сделать так:
x0=x0+dx y0=y0+dy
где dx и dy — это количество пикселей, на которое мы хотим переместить объект по оси Х или Y. Это все, что можно сказать о трансляции объектов. Теперь поговорим о масштабировании. Масштабирование объектов Масштабирование означает изменение размера объекта. Посмотрим для примера на рисунок 4.8. Астероид на нем в два раза больше, чем на рисунке 4.7. Это во многом объясняет принципы масштабирования. Все, что нам надо сделать, это умножить координаты каждой из вершин объекта на коэффициент масштабирования. Фрагмент кода в Листинге 4.6 показывает, как это делается для структуры объекта, определенной нами ранее.
|