Balls and holes PC game / Balls and Holes PC игра
Вакансии
Игродельня
Сегодня
22 ноября 2024
14:22
Вход Регистрация Забыли пароль ?

Color Pin | point and click
Color Pin | point and click
подробнее...

Теги

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

Статьи сайта

webinformatic - Уроки Fruity Loops Studio (FL Studio) - урок 3 - экспериментируем с композицией COLD

webinformatic - Что нужно знать для создания сайта ? Стандартные шрифты для сайта

webinformatic - Что нужно знать для создания сайта ? ASC II Коды символов

webinformatic - Уроки Fruity Loops Studio (FL Studio) - урок 4 - пишем первый вариант композиции COLD

webinformatic - Популяризация Современных Научных Знаний и Размышления на околонаучные темы. СОДЕРЖАНИЕ

webinformatic - Популяризация Современных Научных Знаний и Размышления на околонаучные темы. Энергетический кокон

webinformatic - Модуль галерей для любой cms

webinformatic - Портфолио выполненных проектов сайтов и приложений

webinformatic - Мои Музыкальные Миры - страница 2

webinformatic - megainformatic cms rs

webinformatic - модуль Падающий снег

webinformatic - проект Open Shop

webinformatic - Рисуем красивую девушку всего за 6 шагов

webinformatic - Галерея красивых рисованных девушек

webinformatic - НОВОГОДНЕЕ ОБРАЩЕНИЕ СОЗДАТЕЛЯ webinformatic К ЖИТЕЛЯМ ПЛАНЕТЫ интернет

webinformatic - Отзывы оставленные пользователями как впечатление о проделанной работе или что-либо понравившееся на сайте

webinformatic - Уроки css - атрибут position

webinformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - СОДЕРЖАНИЕ

webinformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - Глава 1 - Обычный день

webinformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - Глава 2 - Начало (begin)

Новогодняя дискотека 2013 на megainformatic точка ru

webinformatic - Программируем на C++ с использованием MFC

webinformatic - Программируем на C++ с использованием MFC - Создание MFC приложения

webinformatic - Программируем на C++ с использованием MFC - Создание MFC приложения - hello, world !

webinformatic - Как создать игру ? - Пишем игровой движок с нуля

webinformatic - Как создать игру ? - Пишем игровой движок с нуля - Вступление

webinformatic - Как создать игру ? - Пишем игровой движок с нуля - Общая структура будущего игрового движка

Разное

webinformatic - Как создать игру ? - Пишем игровой движок с нуля - DXUTMainLoop - цикл работы DirectX-приложения

webinformatic - Варианты макетов Психолог 911

webinformatic - Шаблоны для сайтов - что это и какие они бывают ?

webinformatic - Ива Ден энд КуХа - КОДЕКС ФРИЛАНСЕРА - Глава 3 - Кто он ? (who is ?)

webinformatic - Мои Музыкальные Миры - готовая музыка mp3 - новинки 2013 года

webinformatic - Теория и практика хакерских атак - самозащита от нападения

webinformatic - Теория и практика хакерских атак - самозащита от нападения - Способы подмены реального IP

webinformatic - Fruity Loops Studio 9 - Как синтезировать свои сэмплы - изучаем возможности плагина Sytrus

webinformatic - Видоизменяем тему для Wordpress под свои нужды

webinformatic - Flash приложения и игры - Шаг 3 - управляемый шарик

webinformatic - Учимся создавать флеш-игры, что нужно знать для того, чтобы заняться созданием flash приложений и игр ?

webinformatic - Шаг 4 в освоении Flash-технологий - как анимировать персонажа и управлять им

webinformatic - Форма для смены шаблонов сайта. Модуль template selector

webinformatic - megainformatic cms express files + module slider

webinformatic - Создание сайта бесплатно или под заказ

webinformatic - Как создать flash баннер

webinformatic - Разработка flash-приложения для сайта: онлайн примерочная

webinformatic - Мои впечатления о книге - Владислав Крапивин - Журавленок и Молнии

webinformatic - Модуль отзывов/комментариев для вашего сайта

webinformatic - Модуль отзывов/комментариев для вашего сайта

webinformatic - Модуль отзывов/комментариев для вашего сайта

webinformatic - Модуль короткие ссылки short link

webinformatic - Работа с сокетами fsocket из php

webinformatic - Как создать игру Создание игровых панелей и индикаторов

webinformatic - Приключения Кости Коробкина - Как я провел лето - интерактивный комикс

webinformatic - Приключения Кости Коробкина - Как я провел лето - интерактивный комикс

webinformatic - Приключения Кости Коробкина - С новым годом - интерактивный комикс

webinformatic - Система управления сайтом на php - megainformatic cms admin files


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

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

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

дата публикации на сайте Мега Информатик: 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 уважением, Андрей.

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

 

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



Время загрузки: 0,1452