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

Система управления сайтом - megainformatic cms e-shop
              Система Управления Электронным М
подробнее...

Теги

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

Статьи сайта

Cauldron II: The Pumpkin Strikes Back | ZX Spectrum | quest game | Palace Software, 1986

Fantasy World Dizzy | ZX Spectrum | quest game | Code Masters Ltd, 1989

Prince of Persia | ZX Spectrum | quest game | Magic Soft, 1996

Sacred Armour of Antiriad, The | ZX Spectrum | quest game | Palace Software, 1986

Stormbringer | ZX Spectrum | quest game | Mastertronic Added Dimension, 1987

Prison Riot | ZX Spectrum | quest game | Players Premier, 1990

Head over Heels | ZX Spectrum | quest game | Ocean Software Ltd, 1987

Vinny Puh | ZX Spectrum | quest game | Softland Software, 1996

игры онлайн | games online | play online | zx-spectrum games

Escape from the Planet of the Robot Monsters | ZX Spectrum | quest game | Domark Ltd, 1990

Dizzy | ZX Spectrum | quest game | Code Masters Ltd, 1987

IK+ | ZX Spectrum | fighting game | System 3 Software Ltd, 1987

Samurai Warrior | ZX Spectrum | fighting game | Firebird Software Ltd, 1988

Kendo Warrior | ZX Spectrum | fighting game | Byte Back, 1989

Ninja Hamster | ZX Spectrum | fighting game | CRL Group PLC, 1987

Power Magic | ZX Spectrum | fighting game | Zigurat Software, 1990

Dr. Doom's Revenge! | ZX Spectrum | fighting game | Empire Software, 1989

Popeye 3 | ZX Spectrum | fighting game | Alternative Software Ltd, 1992

Street Fighter | ZX Spectrum | fighting game | Go!, 1988

Bronx | ZX Spectrum | fighting game | Animagic S.A., 1990

Global Tracker | ZX Spectrum | music editor | Global Corporation, 1999

SQ-Tracker | ZX Spectrum | music editor | Proxima Software, 1993

Soundtracker | ZX Spectrum | music editor | Pentagram, 1992

Sound Tracker Pro | ZX Spectrum | music editor | KSA, 1996

Legend of the Amazon Women | ZX Spectrum | fighting game | US Gold Ltd, 1986

Reaper | ZX Spectrum | fighting game | Ubi Soft Ltd, 1991

Yie Ar Kung-Fu 2 | ZX Spectrum | fighting game | Imagine Software Ltd, 1986

Highlander | ZX Spectrum | fighting game | Ocean Software Ltd, 1986

Uchi Mata | ZX Spectrum | fighting game | Martech Games Ltd, 1987

Mortal Kombat II | ZX Spectrum | fighting game | Perspective Group, 2004

Freddy Hardest | ZX Spectrum | arcade game | Dinamic Software, 1987

Mot | ZX Spectrum | arcade game | Opera Soft S.A., 1989

Hyperaction | ZX Spectrum | arcade game | Silversoft Ltd, 1984

Future Looter | ZX Spectrum | arcade game | Timmy, 2011

Saboteur! | ZX Spectrum | arcade game | Durell Software Ltd, 1985

Psycho Pigs U.X.B. | ZX Spectrum | arcade game | US Gold Ltd, 1988

Panzadrome | ZX Spectrum | arcade game | Ariolasoft UK Ltd, 1985

Paperboy | ZX Spectrum | arcade game | Elite Systems Ltd, 1986

Trantor: The Last Stormtrooper | ZX Spectrum | arcade game | Go!, 1987

Scuba Dive | ZX Spectrum | arcade game | Durell Software Ltd, 1983

Aquaplane | ZX Spectrum | arcade game | Quicksilva Ltd, 1983

Spy vs Spy | ZX Spectrum | arcade game | Beyond Software, 1985

Raster Runner | ZX Spectrum | arcade game | Mastertronic Plus, 1990

1kdj | ZX Spectrum | music editor | Ate Bit, 2009

Music Synth | ZX Spectrum | music editor | Your Sinclair, 1993

Chip Tracker | ZX Spectrum | music editor | Alone Coder, 2004

Prodigi Editor | ZX Spectrum | music editor | ,

A.Y. Tracker | ZX Spectrum | music editor | Jonathan Cauldwell, 1992

| ZX Spectrum | music editor | Alone Coder, 2006

X-Tracker | ZX Spectrum | music editor | Scorpion Software [2], 2004

Extreme's Tracker | ZX Spectrum | music editor | Red Limited Drunkards Group, 1999

Soundtracker | ZX Spectrum | music editor | Ultrasoft, 1993

Fast Tracker | ZX Spectrum | music editor | ,

Star Control | ZX Spectrum | strategy game | Accolade Inc, 1991

Stonkers | ZX Spectrum | strategy game | Imagine Software Ltd, 1983

Vikings | ZX Spectrum | strategy game | Challenge Software, 1989


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

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

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

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