Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АрхитектураБиологияГеографияДругоеИностранные языки
ИнформатикаИсторияКультураЛитератураМатематика
МедицинаМеханикаОбразованиеОхрана трудаПедагогика
ПолитикаПравоПрограммированиеПсихологияРелигия
СоциологияСпортСтроительствоФизикаФилософия
ФинансыХимияЭкологияЭкономикаЭлектроника

Листинг 4.5. Описание астероида.

Листинг 3.2. Чтение позиции джойстика. | Листинг 3.3. Программа работы с джойстиком (JOY.C). | Bios INT 16h | Листинг 3.5. Получение скан-кодов с клавиатуры. | Листинг 3.7. Демонстрационная программа работы с клавиатурой (KEY.C). | Bios INT 33h | Листинг 3.8. Работа с мышью (MOUSE.C). | МЕХАНИЗМЫ ДВУХМЕРНОЙ ГРАФИКИ | Листинг 4.1. Программа, рисующая точки (POINTY.C). | Листинг 4.2. Программа, рисующая линии (LINER.С). |


Читайте также:
  1. CASE-технологии: определение и описание.
  2. II. Описание трудовых функций, входящих в профессиональный стандарт
  3. III. Описание правил обслуживания и ремонта электрооборудования
  4. XI. Описание объекта культурного наследия
  5. Аналитическое библиографическое описание
  6. Глава 1. Описание мира
  7. Дальнейшее описание Вознесения

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 показывает, как это делается для структуры объекта, определенной нами ранее.

 


Дата добавления: 2015-07-12; просмотров: 84 | Нарушение авторских прав


<== предыдущая страница | следующая страница ==>
Листинг 4.4. Структуры данных для задания вершин объектов.| Листинг 4.6. Масштабирование астероида.

mybiblioteka.su - 2015-2024 год. (0.005 сек.)