Время дня и ночи
|
|
toby3d | Дата: Вторник, 18 Сентября 2012, 14:41 | Сообщение # 1 |
One-Aloner
Сейчас нет на сайте
| Приветствую! Решил побаловаться с плагом Data, но одну фичу, которую хотелось бы опробовать, я не могу сделать. Итак: Дано: Есть "комната" размером 800х600 Есть два спрайта: солнце и луна. Есть 4 периода суток, которые синхронизируются с реальным временем: 12:00 - 18:00 Спуск солнца 18:00 - 24:00 Подъём луны 24:00 - 6:00 Спуск луны 6:00 - 12:00 Подъём солнца
Необходимо, чтобы днём вертикально передвигалось солнце (при этом луна была скрыта за горизонтом), а ночью вертикально передвигалась только луна (солнце должно быть скрыто за горизонтом). Как-то так.
|
|
| |
Eldrine | Дата: Вторник, 18 Сентября 2012, 14:52 | Сообщение # 2 |
заслуженный участник
Сейчас нет на сайте
| рисунок не оч понятный...на какую высоту будет спускаться и подниматься солнце и луна?
Модели оружия для CS:S
|
|
| |
toby3d | Дата: Вторник, 18 Сентября 2012, 15:02 | Сообщение # 3 |
One-Aloner
Сейчас нет на сайте
| Quote (Eldrine) на какую высоту будет спускаться и подниматься солнце и луна? с 0 до 400 пикселей по Y.
|
|
| |
Eldrine | Дата: Вторник, 18 Сентября 2012, 15:07 | Сообщение # 4 |
заслуженный участник
Сейчас нет на сайте
| странно, значение для переменной из объекта data берется тока один раз (событие always) Добавлено (18.09.2012, 15:07) --------------------------------------------- походу баг
Модели оружия для CS:S
|
|
| |
toby3d | Дата: Вторник, 18 Сентября 2012, 15:13 | Сообщение # 5 |
One-Aloner
Сейчас нет на сайте
| Quote (Eldrine) странно, значение для переменной из объекта data берется тока один раз (событие always) Я делал Always - Set to current time Обновляется исправно.
|
|
| |
DimOk | Дата: Вторник, 18 Сентября 2012, 19:51 | Сообщение # 6 |
ONG studio
Сейчас нет на сайте
| можно создать глобальную переменную и её устанавливать на часы[set global varible>"переменная" {data.gethour}] А уже относительно этой переменной устанавливать положения солнца и луны.
Активно пользуюсь Godot Engine
|
|
| |
toby3d | Дата: Вторник, 18 Сентября 2012, 19:56 | Сообщение # 7 |
One-Aloner
Сейчас нет на сайте
| Quote (DimOk) можно создать глобальную переменную и её устанавливать на часы[set global varible>"переменная" {data.gethour}] А уже относительно этой переменной устанавливать положения солнца и луны. Ничего путного из этого не вышло.
|
|
| |
Eldrine | Дата: Вторник, 18 Сентября 2012, 20:50 | Сообщение # 8 |
заслуженный участник
Сейчас нет на сайте
| Quote (toby3d) Ничего путного из этого не вышло. почему?
Модели оружия для CS:S
|
|
| |
toby3d | Дата: Вторник, 18 Сентября 2012, 20:54 | Сообщение # 9 |
One-Aloner
Сейчас нет на сайте
| Слишком сильные рывки при движении спрайта будут, если синхронизировать время по часам.
|
|
| |
Eldrine | Дата: Вторник, 18 Сентября 2012, 21:40 | Сообщение # 10 |
заслуженный участник
Сейчас нет на сайте
| Quote (toby3d) Слишком сильные рывки при движении спрайта будут, если синхронизировать время по часам. интересно как это у тебя получилось, не расскажешь, нет?
Модели оружия для CS:S
|
|
| |
k0fe | Дата: Вторник, 18 Сентября 2012, 21:50 | Сообщение # 11 |
BRONX
Сейчас нет на сайте
| toby3d, а если по секундно? Это конечно, наверное, глупо, но всё же
мой стрим, который я редко включаю, но зато на нём я делаю игры
|
|
| |
DimOk | Дата: Вторник, 18 Сентября 2012, 22:30 | Сообщение # 12 |
ONG studio
Сейчас нет на сайте
| можно менять положение каждые 10 мин, а можно сделать так чтобы пр смене часа, спрайт плавно двигался на новое место.
Активно пользуюсь Godot Engine
|
|
| |
toby3d | Дата: Вторник, 18 Сентября 2012, 23:28 | Сообщение # 13 |
One-Aloner
Сейчас нет на сайте
| Quote (Eldrine) интересно как это у тебя получилось, не расскажешь, нет? Час меняется каждый час (логично, нет?), соответственно, каждый час спрайт будет сдвигаться примерно на 100 пикселей вниз. Выглядит глупо же. Quote (ЙаСаня) toby3d, а если по секундно? Это конечно, наверное, глупо, но всё же wacko Если ежесекундно спрайт будет спускаться вниз, то каждые 60 секунд он будет или возвращаться на стартовую позицию, или уходить ниже комнаты (смотря как запрограммить). Quote (DimOk) можно менять положение каждые 10 мин, а можно сделать так чтобы пр смене часа, спрайт плавно двигался на новое место. Вот это уже интересно. Надо подумать.
|
|
| |
TimKruz | Дата: Вторник, 18 Сентября 2012, 23:40 | Сообщение # 14 |
старожил
Сейчас нет на сайте
| Если я правильно понял проблему, то само перемещение и получение времени уже готово, осталось только совместить? Quote (toby3d) 12:00 - 18:00 Спуск солнца 18:00 - 24:00 Подъём луны 24:00 - 6:00 Спуск луны 6:00 - 12:00 Подъём солнца Quote (toby3d) с 0 до 400 пикселей по Y. То есть подъём и спуск длятся ровно по 21600 секунд. За это время объект смещается по оси Y на 400 пикселей вверх или вниз. Тогда он должен смещаться на пиксель раз в 54 секунды. Вот. Делай смещение раз в 54 секунды на пиксель. Либо делай так: раз в минуту вычисляй время в секундах от контрольной точки (6, 12, 18 и 24 часа), дели на 54 и округляй - получишь позицию солнца/луны над горизонтом в пикселях. Например, сейчас на часах 7:00 утра, это 3600 секунд от контрольной точки в 6:00; делим 3600/54 и округляем, получаем 67 пикселей над точкой 0.
Сообщение отредактировал TimKruz - Вторник, 18 Сентября 2012, 23:43 |
|
| |
toby3d | Дата: Пятница, 28 Сентября 2012, 12:40 | Сообщение # 15 |
One-Aloner
Сейчас нет на сайте
| Quote (TimKruz) То есть подъём и спуск длятся ровно по 21600 секунд. За это время объект смещается по оси Y на 400 пикселей вверх или вниз. Тогда он должен смещаться на пиксель раз в 54 секунды. Вот. Делай смещение раз в 54 секунды на пиксель. Либо делай так: раз в минуту вычисляй время в секундах от контрольной точки (6, 12, 18 и 24 часа), дели на 54 и округляй - получишь позицию солнца/луны над горизонтом в пикселях. Например, сейчас на часах 7:00 утра, это 3600 секунд от контрольной точки в 6:00; делим 3600/54 и округляем, получаем 67 пикселей над точкой 0. Сейчас попробую сделать.Добавлено (25.09.2012, 18:52) ---------------------------------------------
Quote (TimKruz) Либо делай так: раз в минуту вычисляй время в секундах от контрольной точки (6, 12, 18 и 24 часа), дели на 54 и округляй - получишь позицию солнца/луны над горизонтом в пикселях. Например, сейчас на часах 7:00 утра, это 3600 секунд от контрольной точки в 6:00; делим 3600/54 и округляем, получаем 67 пикселей над точкой 0. Извиняюсь за долгое отсутствие. Спуск светил вниз получился, а вот с подъёмом - проблемы.Добавлено (26.09.2012, 21:47) --------------------------------------------- Неужели никто не может справиться с этим? Добавлено (28.09.2012, 12:40) --------------------------------------------- UP
|
|
| |
allxumuk | Дата: Пятница, 28 Сентября 2012, 18:50 | Сообщение # 16 |
старожил
Сейчас нет на сайте
| Надеялся удастся обойтись без моего вмешательства, хотя бы по такому простому вопросу. Про тригонометрию, синусы, косинусы слышали? Элементарные же вещи. В общем вот исходник: исходник.
Любой дурак может написать программу, которую поймёт компилятор. Хорошие программисты пишут программы, которые смогут понять другие программисты.
|
|
| |