Сегодня
24 апреля 2024
23:59
Вход Sign In Регистрация Sign Up Забыли пароль ? Forgot password ?
Как Создать игру ВЕБ - Веселый Единственный Буквоежка - Программируем сами
       
подробнее...

Теги

сайты, игры, дизайн, продвижение, php, html, css, my sql, c++, delphi, photoshop, 3ds max, fl studio, трекерская музыка, уроки

Статьи сайта

Уроки Photoshop - Анимируем волка из мультфильма стр 4

Эмулятор игры Ну, Погоди!

Создание сайта для бизнеса

Пример игры с исходным кодом Donuts3D

Как создать игру ВЕСЕЛЫЙ БУКВОЕЖКА - программируем сами

Как создать игру ВЕСЕЛЫЙ БУКВОЕЖКА - создаем игровую оболочку

Открытый Полный Исходный код игры Дорога в Город

Как создать игру - Веселый Единственный Буквоежка - программируем основу будущей игры

Как создать игру - Веселый Единственный Буквоежка - выводим заставку

Как создать игру - Веселый Единственный Буквоежка - игровое меню

Как создать игру - Веселый Единственный Буквоежка - движение и анимация героя

Как Создать игру ВЕБ - Веселый Единственный Буквоежка - Программируем сами

Новый взгляд на очевидные вещи

Разработка программ на c++

Немного о музыке

Уроки Photoshop - Чудеса

Купить Уроки Photoshop - Чудеса

Онлайн Обучение, Репетитор

Уроки Photoshop - Рисуем и Анимируем

Уроки Photoshop - Рисуем и Анимируем - Урок 1 - Старт

GET и POST запросы

DirectX 9c - Изучаем пример MultAnimation

megainformatic cms Система Управления Контентом

Темы для WordPress

Что нужно для создания собственного сайта ?

Макет дизайна Вашего сайта

скачать megainformatic cms

для чего нужна карта сайта

Что нужно для создания собственного сайта ?

как создать инсталлятор для собственной cms

новые идеи, новые решения

Нововведения в megainformatic cms

Web Администрирование

Уроки Верстки

Система автоматизированной е-майл рассылки

Мысли о разном

Выгрузка файла на сайт

выпадающее меню на html и css

Использование checkbox

Краеугольная особенность работы Web-form на примере смены состояния checkbox

Технологии WEB

Технологии WEB - AJAX-запросы

Легко ли быть программистом

От идеи к реализации - трудно ли создавать сайты ?

Проблемы с кодировками при отображении страниц

игра Нечто: Необъяснимое Нить Накала - "в плену желаний"

Система Автоматизации Доставки Электронных Заказов megainformatic cms e-pro

megainformatic cms e-pro Автоматизация Обработки Уведомлений о Заказах по партнерским программам

Глубины программирования на C++

VARVE: Музыкальная страничка трэкера

Создание музыки и звука

VARVE: Создание музыки и звука: урок 2

Создание музыки и звука: урок 3 - настройка Impulse Tracker для работы в WinXP

Создание музыки и звука: урок 4 - Введение в Mod Plug Tracker

Создание музыки и звука: урок 5 - Первая композиция в Mod Plug Tracker

Создание музыки в Impulse Tracker 2.14 - урок 6 - Ввод Нот

Создание музыки в Impulse Tracker 2.14 Первая мелодия

Создание музыки в Impulse Tracker 2.14 Настройка параметров сэмплов

Создание музыки и звука: теория и практика создания трэкерской музыки

Что такое VARVE ?

Основы работы в Microsoft Visual Studio 2008 и DirectX 9 (DX SDK Aug 2008)

Введение в программирование игр на С++ для платформы DirectX 9 - Первый старт

Введение в программирование игр на С++ для платформы DirectX 9 - Меняем иконку приложения

Введение в программирование игр на С++ для платформы DirectX 9 Добавляем другую модель

Введение в программирование игр на С++ для платформы DirectX 9 Программирование игр в directx. Hello, World!

Введение в программирование игр на С++ для платформы DirectX 9 Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008

Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008 - Урок 1 Основные операторы языка C++

Разбираем конструкции языка C++ на примере работы в Microsoft Visual Studio 2008 - Урок 1 Основные операторы языка C++ (часть 2)

Урок 2 Написание Win32-приложений. Обзор стартового кода Win32-приложения. Добавление ресурса текстовая строка

Урок 3 Создание Win32-приложений. Создание меню и простых диалоговых окон.

Урок 4 Создание Win32-приложений. Стандартные диалоги. Изучение сопутствующих конструкций языка. Консольные Win32-приложения. Указатели. Ссылочный тип. Массивы.

Урок 4 часть 2 Win32. Диалог выбора цвета, смена цвета фона окна приложения

Написание приложения DirectX9c + MFC в среде MSVS 2005

Создание компьютерных игр на основе DirectX в среде Delphi 6, 7

Создание компьютерных игр на основе DirectX в среде Delphi 6, 7 - Почему избраны DX8 и Delphi ?

Основы IDirectMusic8 в среде Delphi6-7

Основы DirectInput8 в среде Delphi 7

Основы DirectSound8 в среде Delphi6-7

Плагин для 3DS MAX из DX9 SDK

Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2)

Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 2

Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 3

Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 4

Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 5

Мастер-класс: Создание модели и текстуры Коммандного Центра (как в StarCraft 2) Часть 6

Система управления сайтом - megainformatic cms e-shop

Моделируем девушку в 3ds max - Женская грудь

Моделируем девушку в 3ds max - Тело

Уроки 3ds max - Введение в 3ds max

ГАЛЕРЕЯ 3D-моделей

СОЗДАНИЕ МАКЕТА ПОМЕЩЕНИЯ

Создание макета помещения - этап 2

МОДЕЛИРОВАНИЕ НА УРОВНЕ МНОГОУГОЛЬНИКОВ

СОЗДАНИЕ ПРЕДМЕТОВ ОБСТАНОВКИ ПОМЕЩЕНИЯ

Моделирование обстановки помещения

Создание модели автомобиля

Создание текстурной развертки для модели автомобиля

Создание анимации вращающихся колес автомобиля

игра Нечто: Необъяснимое и в плену желаний

Основы 3D-анимации, экспорт скелетной анимации

Подготовка модели к использованию скелетной анимации

Продолжаем Создание скелета для данной модели

Построение ирерархических связей между объектами и основы 3d анимирования

Особенности экспорта моделей и анимации экспортером kWXPort080719 из 3ds max 2009 

Создание модели броневика (Хэд)

megainformatic cms e-mailer

Моделируем девушку в 3ds max - Моделируем руку

Моделируем девушку в 3ds max - Кисть руки

Бесплатная Система Управления Вашим Сайтом - megainformatic cms free

Путешествие в мир 3d

Путешествие в мир 3d - страница 2

Путешествие в мир 3d - страница 3

Путешествие в мир 3d - страница 4

Путешествие в мир 3d - страница 5

Путешествие в мир 3d - страница 6

Создание модели броневика (Хэд) - Анимация вращения колес


[к содержанию] [другие статьи Тимонина Андрея]

Таймер. Выводим время игры.

автор: Тимонин Андрей

дата публикации на сайте Мега Информатик: 18.11.2012

Добро пожаловать в цикл моих уроков посвященных программированию.

Эта статья будет посвящена такому понятию как игровое время, и как его выводить.


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

В этой статье мы коснемся, непосредственно, вывода этого времени на игровой экран. А будет у нас оно формироваться в строковом формате, например таком, как на скриншоте.

Время измеряется в часах, минутах, секундах, миллисекундах. Для нас интересны сейчас часы, минуты и секунды, составляющие формата.

Существует много способов определения времени. Мы рассмотрим один из них. Подходит он или нет для вашего случая, решать вам.

Графическую составляющую панели со временем я не рассматриваю. Это тема для другой статьи.

Итак, приступим к делу... Напишем класс, который имеет следующие возможности:

1) показывать текущее время;

2) сбрасывать в 0 время игры;

3) определять сколь времени прошло;

4) устанавливать счетчику время старта.

У меня получился такой интерфейс класса, который я назвал СTimerPanel

class СTimePanel
{
//мой класс для вывода текста
CStaticText* text;
public:
СTimePanel ();
~СTimePanel();
//сброс счетчика
void reset();

//возвращает время со старта
time_t getTime() const;

//устанавливает время старта
void setTime(time_t st);

//отрисовка

bool render();
private:

//закрытая переменная времени старта
time_t time_st;

};

Здесь мы используем время стандартной библиотеки time.

Посмотрим на мою реализацию класса

СTimePanel::СTimePanel()
{
//некий класс для вывода текста
text = new CStaticText(L"Time",L"Data/panel.png",208,57,CPoint(+128,-280));
//берем системное время
time(&time_st);

}

//вычисляем текущее время
time_t СTimePanel::getTime() const
{
time_t ctTime;
//берем системное время
time(&ctTime);
ctTime = ctTime - time_st;
return ctTime;
}

//устанавливаем время
void СTimePanel::setTime(time_t st)
{
time_t ctTime;
//берем системное время
time(&ctTime);
time_st = ctTime - st;

}

СTimePanel::~СTimePanel()
{
if( text )
{
delete text;
}
}
//сброс счетчика
void СTimePanel::reset()
{
//берем системное время
time(&time_st);
}

bool СTimePanel::render()
{
if( text )
{
struct tm *pTime;
time_t ctTime;
//берем системное время
time(&ctTime);
ctTime = ctTime - time_st;
//получим на указатель на структуру времени
//pTime = localtime( &ctTime );

//преобразуем время в часы, минуты, секунды
pTime = gmtime(&ctTime );
if (!pTime) return false;

//выведем в строку ширина 2 позиции заполнитель 0
std::ostringstream stime;
stime << std::setw(2) << std::setfill('0') << pTime->tm_hour
<< ":" << std::setw(2) << std::setfill('0') << pTime->tm_min
<< ":" << std::setw(2) << std::setfill('0') << pTime->tm_sec
<< std::endl;

text->SetText(stime.str());

//рисуем
text->Draw();
}
return true;
}

Время в этой статье определяем с помощью стандартной библиотеки, которая подключается директивой

#include <time.h>

Для его определения я опираюсь на локальное время компьютера, которое определяется функцией

time_t ctTime;
//берем системное время
time(&ctTime);

Время в игре идет с 0, потому я везде вычитаю стартовое время. Потому для установки нового стартового времени тоже использую эту разницу.

Чтобы вывести время, мы преобразуем его к структуре tm, для более удобного использования в строковом потоке.

Функция gmtime преобразует наше время с учетом GMT (часового пояса).

 

На этом заканчиваю. Надеюсь, эта информация была вам интересна.
C уважением, Андрей.

[к содержанию] [другие статьи Тимонина Андрея]

 

Оставленные комментарии



Рейтинг@Mail.ru
Время загрузки: 0,0526