Rambler's Top100
 
 
  01 декабря 2008 года Компьюлента
CIO
Терралаб
Бизнес-журнал
в поле зрения | обзоры и тесты | своя игра | интерактив
DiNGS – программирование игр в домашних условиях. Часть 8.1
Автор: Александр Супрунов
Опубликовано 26 февраля 2003 года

Создать игру без счетчиков можно, но… Есть причины, по которым это крайне не желательно! Счетчики применяются, чтобы: игра с одинаковой скоростью шла на Celeron 266 и на P4 3000Mh; анимация разных героев в игре различалась по скорости; перемещение объектов происходило с определенной скоростью; чтобы, к примеру, именно на 20 секунде первого уровня пошел дождь или поднялся ветер в игре.

На самом деле применение счетчиков еще более пространно, но остановимся на этом. При анимации бабочки мы видим - скорость анимации велика. Для замедления ее используются счетчики. Посмотрим использование счетчиков на примере:

//Блок инициализации переменных

Speed_anim=10
  //скорость анимации. Число подбирается экспериментально.
I=0     //счетчик  кадров анимации

//Загрузка графики

LOADSPRITE "babochka.bmp",0
LOADSPRITE "babochka2.bmp",1
LOADSPRITE "babochka3.bmp",2
LOADSPRITE "babochka4.bmp",3

// Начало цикла

WHILE TRUE    //повторять вечно. На самом деле выход по ESC

SPRITE i, 320, 240, 0  //Вывести спрайт i в координаты 320х240. 

IF Speed_anim=10  //если скорость анимации =10
i=i+1           // показать следующий кадр
Speed_anim=0      //сбросить счетчик анимации в 0
ENDIF

Speed_anim=Speed_anim+1  //увеличить счетчик анимации

IF i=4 THEN i=0  //см. предыдущий пример

SHOWSCREEN
WEND
END

Действительно, мы теперь можем изменять скорость анимации. В нашей программе крутится счетчик Speed_anim. Он циклически изменяется от 0 до 10. Этого мы достигаем конструкцией вида Speed_anim=Speed_anim+1. Когда счетчик достигает значения 10, срабатывает логический оператор IF.

IF Speed_anim=10  

если скорость анимации = 10 , тогда увеличиваем номер кадра картинки для отображения следующего спрайта в анимации и обнуляем счетчик Speed_anim, чтобы он опять начал потихоньку приращиваться на 1.

В итоге изменение картинки на экране происходить только когда счетчик Speed_anim достигает значения 10. Если скорость по-прежнему достаточно высока, подставьте в место 10 – 20 или даже 50. Скорость упадет. Но как не сложно заметить простое изменение одного значения заставляет нас лазить по всему тексту выискивая места кода, подлежащие изменению. Все происходить лишь из-за не совсем продуманного кода. Подсказка: значения, которые фигурируют во многих местах кода и которые могут потребовать изменение значения желательно выделять в отдельные переменные (константы).

Пример 1. Вывести в середину экрана спрайт (разрешение экрана 800х600):

SPRITE 1,400,300,0

Такой стиль написания кода не сулит ничего хорошего и требует от вас вычислений. Этого можно избежать, введя в начале программы 2 переменные содержащие максимальное значение экрана:

Max_X = 800
Max_Y = 600

Теперь запись верхнего примера будет выглядеть следующим образом:


SPRITE 1, Max_Х/2, Max_Y/2,0

Продолжение читайте завтра…

ТАКЖЕ В РАЗДЕЛЕ
 
SQL Server 2008 - это шифрование баз данных, регулятор ресурсов, управление серверами на основе Политик Администрирования, а также готовность управлять большими объемами данных.

TechDays.ru - окунитесь в мир технологий Microsoft
Более 50 технических докладов для ИТ-специалистов и разработчиков. Узнайте самое интересное по каждой технологии за 15 минут. Если интересно - прослушайте дополнительные доклады.

Театр ИТ-кошмаров
Ваша ИТ-инфраструктура не способна выдерживать темп развития бизнеса? Не прячьтесь от реальности. Загляните в Театр ИТ-кошмаров и посмотрите правде в глаза.

/  бумажный номер

Тема номера: Кризис в ИТ Читайте на сайте тему номера "Кризис в ИТ" и другие статьи из журнала "Компьютерра" от 04 ноября 2008 года
  Архив номеров журнала

О проекте | Реклама на сайте | Рассылки сайта | КПК–версия | RSS-трансляция

© ООО «Компьютерра–Онлайн», 1997 — 2008.
При цитировании и использовании любых материалов ссылка на портал «Компьютерра–Онлайн» обязательна (для Интернет–изданий — www.computerra.ru)
Редакция сайта: site@computerra.ru
Техподдержка сайта: websupport@computerra.ru
Редакция журнала: inform@computerra.ru
Отдел рекламы: reklama@computerra.ru
Телефон: (495) 232–22–61, (495) 232–22–63
Работает на «Битрикс: Управление сайтом»
Почта защищена сервером «СПАМОРЕЗ»
Трилан — продвижение сайта,
поисковая оптимизация сайта

Сайт работает на сервере DEPO Computers
Rambler's Top100