Хонич А.
Как самому создать трехмерную игру
стр. 274

# define Angle(a) ((a) * MAXDEGREES/360)

Инициализацию таблиц синусов и косинусов можно представить так:

В этой функции быстродействие не важно, т.к. она вызывается только один раз при старте программы. Следовательно, никто не мешает вам использовать здесь “плавающую” арифметик)'.

3. Желательно, чтобы количество передаваемых параметров при вызове функции не превышало 4 (3).

При работе на WATCOM C/C++, с использованием регистровой передачи параметров (ключи компилятора: /Зг - для 386 процессора; /4г - для 486 процессора; /5т - для PENTIUM’a), первые четыре параметра в функцию передаются в регистрах процессора, а остальные через стек. Прн этом в регистре еах передается первый параметр; в edx - второй; в ebx - третий; в есх - четвертый.

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

a)    4 байта вычитается из стека при вызове функции near;

b)    сохранение регистров в стеке. На каждый 32-разрядный регистр из стека так же вычитается 4 байта).

Если вы работаете на СРР и используете классы, то желательно, чтобы количество параметров передаваемых в функцию не превышало 3, т.к первым параметром в функцию (в регистре ЕАХ) передается указатель на класс.

Новости
Авторы Hellblade: Senua’s Sacrifice удивлены количеству игроков на ПК
В октябре прошлого года студия Ninja Theory рассказала, что продажи Hellblade: Senua's Sacrifice оказались выше, чем ожидали сами разработчики, а уже через месяц они достигли полумиллиона копий.
Хождение по Аду в Agony отнимет у игроков 12 часов
Напомним, что Agony поступит в продажу на PC, PS4 и Xbox One 29 мая. После релиза игры авторы намерены заняться VR-режимом.