Программирование игр для Windows. Советы профессионала

Реализм


Чтобы небо выглядело более реалистично, звезды, находящиеся на меньшем расстоянии от корабля, на котором, мы летим (от нашей виртуальной точки обзора), должны светить ярче. Я предлагаю следующий алгоритм создания трехмерного звездного неба:

1.

Для описания звезды создать структуру, содержащую информацию о ее расположении, цвете и скорости перемещения;

2.       Создать массив звезд, расположенных по всему экрану и движущихся с разной скоростью;

3.       Сделать так, чтобы звезды двигались из центра экрана к краю;

4.       Сделать так, чтобы за каждый <?тик» таймера звезда немного ускорялась и становилась ярче;

5.       Сделать так, чтобы, достигнув границы экрана, звезда появлялась вновь в иной случайной позиции и перемещалась с другой скоростью;

6.       Нарисовать звезды;

7.       Вновь вернуться к пункту 4.

Этот метод позволяет получить очень натурально выглядящие звезды и достаточно просто осуществляется. Однако и он тоже не лишен недостатков:

§          Во-первых, вы не можете повернуть и должны всегда двигаться вперед;

§          Во-вторых, начальная скорость звезды может быть слишком велика по отношению к скорости объекта, летящего по звездному небу.

Первая проблема действительно серьезная. .Если по сценарию игры вам требуется изменять направление полета, то надо воспользоваться каким-нибудь другим алгоритмом. Вторая же проблема, по моему мнению, чисто академическая. Кого волнует, что наш корабль летит со скоростью, во много раз превышающей световую? Это игра, и мы вольны строить такую вселенную, какая нам больше нравится!



Содержание раздела