Понедельник, 11 Ноября 2024, 06:23

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Течение времени в игре
ilnameДата: Четверг, 03 Июля 2014, 15:34 | Сообщение # 1
был не раз
Сейчас нет на сайте
Как реализовать течение времени в игре параллельно с игровым процессом? Например, по истечении определенного времени от действия А должно произойти действие Б, но в это время пользователь может что-то делать в игре. Опишите как это сделать, можно без привязки к какому-то языку - алгоритмом или метод
Edison6Дата: Четверг, 03 Июля 2014, 16:05 | Сообщение # 2
TRUE Programmer
Сейчас нет на сайте
Пишешь класс таймера в котором есть поле действия action
Затем когда тебе нужно сделать действие по истечении времени. Создаешь таймер, указываешь время и ставишь задачу
Таких таймеров можно сделать несколько


Берил сбрей усы
KidДата: Четверг, 03 Июля 2014, 16:27 | Сообщение # 3
почти ветеран
Сейчас нет на сайте
ilname, буквально вчера тоже появилась необходимость интегрировать время в проект.

Вот мой код:

var hour = 1;
var minutes = 0;

function timeup_startup()
{
while (1)
{
if (pau == 0) // игра не стоит напаузе
{
minutes += 1;
if (minutes == 59)
{
if (hour < 23)
{
hour += 1;
}
else
{
hour = 0;
}
minutes = 0;
}
wait(-1); // ждём одну секунду
}
wait(1); // ждём один тик
}
}


Под себя можешь по-другому доработать. Суть предельно проста.

Добавлено (03.07.2014, 16:27)
---------------------------------------------
Си.


Сообщение отредактировал Жужа - Четверг, 03 Июля 2014, 16:41
ilnameДата: Четверг, 03 Июля 2014, 16:33 | Сообщение # 4
был не раз
Сейчас нет на сайте
Жужа, что делает процедура wait() ?
KidДата: Четверг, 03 Июля 2014, 16:35 | Сообщение # 5
почти ветеран
Сейчас нет на сайте
ilname, приостановка функции. Задержка, короче. Положительное значение - в кадрах, отрицательное - в секундах.
ilnameДата: Четверг, 03 Июля 2014, 16:37 | Сообщение # 6
был не раз
Сейчас нет на сайте
Жужа, Как Sleep() в С++?
KidДата: Четверг, 03 Июля 2014, 16:38 | Сообщение # 7
почти ветеран
Сейчас нет на сайте
ilname, ну да, выходит.
karuyДата: Четверг, 03 Июля 2014, 18:17 | Сообщение # 8
заслуженный участник
Сейчас нет на сайте
Цитата ilname ()
Как реализовать течение времени в игре параллельно с игровым процессом?

Отдельный поток создай.
antonyvolkoffДата: Четверг, 03 Июля 2014, 21:26 | Сообщение # 9
был не раз
Сейчас нет на сайте
Цитата karuy ()
Отдельный поток создай.

Но это жестоко.
Цитата ilname ()
Как реализовать течение времени в игре параллельно с игровым процессом? Например, по истечении определенного времени от действия А должно произойти действие Б, но в это время пользователь может что-то делать в игре. Опишите как это сделать, можно без привязки к какому-то языку - алгоритмом или метод

Есть такая штука как таймер. Всё просто - при действии А создаешь таймер и указываешь время (ну может ещё функцию обратного вызова), через которое должно произойти событие В. Итак, таймер обновляется каждый кадр - прибавляя время обработки последнего игрового кадра ко счетчику внутри него (таймера), проверяя истекло ли время, заданное пользователем (программистом). Для упрощения задачи можно сделать менеждер таймеров игры. Хотел написать псевдокод, но долго...
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг