| Обновление мира на сервере | 
|  | 
|  | 
| 
| Vigilem | Дата: Пятница, 06 Сентября 2013, 16:20 | Сообщение # 2 |  | частый гость Сейчас нет на сайте | Здесь всё правильно. Ищите ошибку в другом месте. |  |  |  |  | 
| 
| Vinchensoo | Дата: Пятница, 06 Сентября 2013, 16:23 | Сообщение # 3 |  |   Злобный социопат с комплексом Бога Сейчас нет на сайте | Есть вариант сделать нормально. Timer 
 
   |  |  |  |  | 
| 
| VolkodavAD | Дата: Пятница, 06 Сентября 2013, 21:45 | Сообщение # 4 |  |   частый гость Сейчас нет на сайте | С чего цифра 20, незнаю. и как реализовано "задержка(4 сек)"? просто переменная? Просто похоже что startTime доходит до 55-59, и все! DateTime.Now.Seconds уже не может быть больше 59, поэтому и totalTime = currentTime - startTime не больше 3.
 
 я бы по другому немного делал:
 
 Код int currentTime = DateTime.Now.Seconds; 
 if(
 ((currentTime - startTime ) > 4) || ((startTime  - currentTime) > 4)
 )
 {
 startTime = currentTime;
 UpdateWorld();
 }
 Думай, что говоришь. Говори, что думаешь.
 
 
 Сообщение отредактировал VolkodavAD - Пятница, 06 Сентября 2013, 21:50 |  |  |  |  | 
| 
| FadeBaker | Дата: Пятница, 06 Сентября 2013, 22:08 | Сообщение # 5 |  | JavaSE Game Developer Сейчас нет на сайте | Цитата (VolkodavAD) я бы по другому немного делал: 
 Код if (DateTime.Now.Seconds / 4 % 2 == 0) UpdateWorld();Должно работать, если я правильно понял.
 
 Уроки по GM
 Minecraft 2D на GM
 — Мои проекты —
 Blood Harvest [2D] — Original
 Blood Harvest [2D]: Remastered Edition
 Adventure Craft [2D] — Sandbox
 Space Shock [2D] — Scroll Shooter
 Intel® Core™ i5-3570K 3.40 GHz, 8 GB RAM, GeForce GTX 750 Ti, Monitor: LG 23EA63V-P.
 
 
 Сообщение отредактировал Fade - Пятница, 06 Сентября 2013, 22:09 |  |  |  |  | 
| 
| VolkodavAD | Дата: Понедельник, 09 Сентября 2013, 18:30 | Сообщение # 6 |  |   частый гость Сейчас нет на сайте | Fade, чето кто то чего то не понял, может и я проверь: Если брать за начало 0 секунд, то до истечения 1 секунды деление целочисленное выдает всегда ноль. Остаток деления будет то же нось. Далее, от 8, до 11 - деление на 2 даст в результате 2. Остаток от деления останется 0, то есть равенство будет выполняться с начало 999млс, потом около 4 секунды подряд, причем при при каждом вызове uodate в этих временных промежутках. а надо ж при каждой 4 секунде, и на сколько я понял, один разЦитата (Fade)  Должно работать, если я правильно понял.
 Думай, что говоришь. Говори, что думаешь.
 
 
 Сообщение отредактировал VolkodavAD - Понедельник, 09 Сентября 2013, 19:27 |  |  |  |  |