Russian AI Cup

Расширенный поиск  
Страницы: [1]

Автор Тема: Время жизни снаряда.  (Прочитано 2694 раз)

tyamgin

  • Sr. Member
  • ****
  • Сообщений: 196
Время жизни снаряда.
« : Ноября 07, 2016, 10:08:37 pm »

Никто не замечал, что после того как снаряд (MagicMissile) исчезает из world.Projectiles, он продолжает ещё несколько тиков лететь?
По крайней мере это показывает визуализатор local runner.

Или я что-то не дочитал в правилах?
Записан

tyamgin

  • Sr. Member
  • ****
  • Сообщений: 196
Re: Время жизни снаряда.
« Ответ #1 : Ноября 09, 2016, 06:40:02 pm »

Если-ли способ узнать сколько осталось лететь снаряду, или отслеживать это самому? Никаких свойств у Projectile не нашел.
Записан

mortido

  • Full Member
  • ***
  • Сообщений: 96
Re: Время жизни снаряда.
« Ответ #2 : Ноября 09, 2016, 07:01:16 pm »

Тоже не нашел, видимо надо самим. Веоятно сделано, что бы нельзя было по снаряду узнать где был потивник в момент запуска. Ну и по логике если ты не видишь момент запуска - ты не знаешь о снаряде ни владельца, ни дальность (которая вроде от характеистик владельца тоже зависит).
Записан

novich-OK

  • Jr. Member
  • **
  • Сообщений: 16
Re: Время жизни снаряда.
« Ответ #3 : Ноября 09, 2016, 08:57:07 pm »

Ну и по логике если ты не видишь момент запуска - ты не знаешь о снаряде ни владельца, ни дальность (которая вроде от характеистик владельца тоже зависит).
Это заблуждение молодых волшебников. Опытный взгляд умудренного мага легко отличит яркие, пышущие энергией переливы свежевыпущенного снаряда от блеклого пятна заклинания на излете, теряющего свою форму и сущность. Не говоря уже о том, что колдовство под стать искусству всегда несет отпечаток своего автора. Узнать противника по обертонам колебаний эфира от его заклинания ничуть не сложнее распознания барда по его пению: тембр, дикция, интонации и темп выдают певцов с головой даже при исполнении совершенно одинаковых партий.
Записан

DVS

  • Hero Member
  • *****
  • Сообщений: 689
Re: Время жизни снаряда.
« Ответ #4 : Ноября 09, 2016, 10:05:27 pm »

Ну и по логике если ты не видишь момент запуска - ты не знаешь о снаряде ни владельца, ни дальность (которая вроде от характеистик владельца тоже зависит).
Это заблуждение молодых волшебников. Опытный взгляд умудренного мага легко отличит яркие, пышущие энергией переливы свежевыпущенного снаряда от блеклого пятна заклинания на излете, теряющего свою форму и сущность. Не говоря уже о том, что колдовство под стать искусству всегда несет отпечаток своего автора. Узнать противника по обертонам колебаний эфира от его заклинания ничуть не сложнее распознания барда по его пению: тембр, дикция, интонации и темп выдают певцов с головой даже при исполнении совершенно одинаковых партий.
:o
Записан

Chaotic_Good

  • Jr. Member
  • **
  • Сообщений: 21
Re: Время жизни снаряда.
« Ответ #5 : Ноября 10, 2016, 03:59:28 pm »

Ну и по логике если ты не видишь момент запуска - ты не знаешь о снаряде ни владельца, ни дальность (которая вроде от характеистик владельца тоже зависит).
Это заблуждение молодых волшебников. Опытный взгляд умудренного мага легко отличит яркие, пышущие энергией переливы свежевыпущенного снаряда от блеклого пятна заклинания на излете, теряющего свою форму и сущность. Не говоря уже о том, что колдовство под стать искусству всегда несет отпечаток своего автора. Узнать противника по обертонам колебаний эфира от его заклинания ничуть не сложнее распознания барда по его пению: тембр, дикция, интонации и темп выдают певцов с головой даже при исполнении совершенно одинаковых партий.
Лукъяненко, залогиньтесь!
Записан

DVS

  • Hero Member
  • *****
  • Сообщений: 689
Re: Время жизни снаряда.
« Ответ #6 : Ноября 10, 2016, 11:52:11 pm »

Цитировать
Лукъяненко, залогиньтесь!
вообще то он из программистов вышел, так что вполне вероятно может участвовать  :)
Записан

JustAMan

  • Full Member
  • ***
  • Сообщений: 105
Re: Время жизни снаряда.
« Ответ #7 : Ноября 11, 2016, 01:32:08 am »

У меня подозрение, что Novich-OK зовут Артём, а не Сергей, так что вряд ли это он :)
Записан

Chaotic_Good

  • Jr. Member
  • **
  • Сообщений: 21
Re: Время жизни снаряда.
« Ответ #8 : Ноября 11, 2016, 12:56:15 pm »

Цитировать
Лукъяненко, залогиньтесь!
вообще то он из программистов вышел, так что вполне вероятно может участвовать  :)
Вообще-то из врачей, но не суть.
И кто бы это не был, текст очен пародийный стиль Недотепы напомнил.
Записан

novich-OK

  • Jr. Member
  • **
  • Сообщений: 16
Re: Время жизни снаряда.
« Ответ #9 : Ноября 11, 2016, 01:18:23 pm »

У меня подозрение, что Novich-OK зовут Артём, а не Сергей, так что вряд ли это он :)
Ух, какие люди! Не знал, что ты из завсегдатаев турнира, хотя можно было бы предположить.
Записан

tyamgin

  • Sr. Member
  • ****
  • Сообщений: 196
Re: Время жизни снаряда.
« Ответ #10 : Ноября 11, 2016, 10:24:31 pm »

Ещё возник такой вопрос:
Если снаряд не успевает за тик пролететь свой полный CastRange, но успевает кого-то подбить, то он исчезает или всётаки наносит урон?

Эксперимент показал что исчезает без нанесения урона (если у меня нет багов). В правилах поведение вроде не описано.
« Последнее редактирование: Ноября 11, 2016, 10:33:53 pm от tyamgin »
Записан

mortido

  • Full Member
  • ***
  • Сообщений: 96
Re: Время жизни снаряда.
« Ответ #11 : Ноября 12, 2016, 11:00:35 am »

Эксперимент показал что исчезает без нанесения урона (если у меня нет багов). В правилах поведение вроде не описано.

Интересно. Я бы предположил, что там опять тик делится на 10 микротиков, где в каждый момент проверяются столкновения.
Записан

tyamgin

  • Sr. Member
  • ****
  • Сообщений: 196
Re: Время жизни снаряда.
« Ответ #12 : Ноября 12, 2016, 01:23:11 pm »

Да херня какая-то происходит, уже 2-й день с этим борюсь.
У меня сейчас такая ситуация, что я стреляю по башне, а снаряд не долетает, хотя self.GetDistanceTo(tower) - tower.Radius - projectile.Radius < self.CastRange.
Не могу понять закономерность.
Уже грешу на баги в локал раннере/движке.
Записан

AndreaB330

  • Jr. Member
  • **
  • Сообщений: 27
Re: Время жизни снаряда.
« Ответ #13 : Ноября 12, 2016, 01:38:57 pm »

Да херня какая-то происходит, уже 2-й день с этим борюсь.
У меня сейчас такая ситуация, что я стреляю по башне, а снаряд не долетает, хотя self.GetDistanceTo(tower) - tower.Radius - projectile.Radius < self.CastRange.
Не могу понять закономерность.
Уже грешу на баги в локал раннере/движке.
Кто-то писал, что возможно из-за того, что за тик снаряд пролетает сразу 40 единиц, и возможно оно округляет до int(distance/40.0)*40
Записан

4way

  • Jr. Member
  • **
  • Сообщений: 30
Re: Время жизни снаряда.
« Ответ #14 : Ноября 12, 2016, 01:39:21 pm »

Да херня какая-то происходит, уже 2-й день с этим борюсь.
У меня сейчас такая ситуация, что я стреляю по башне, а снаряд не долетает, хотя self.GetDistanceTo(tower) - tower.Radius - projectile.Radius < self.CastRange.
Не могу понять закономерность.
Уже грешу на баги в локал раннере/движке.
У меня стоит просто self.GetDistanceTo(tower)  < self.CastRange прекрасно все долетает. Может где то еще стреляете.
Записан

tyamgin

  • Sr. Member
  • ****
  • Сообщений: 196
Re: Время жизни снаряда.
« Ответ #15 : Ноября 12, 2016, 02:09:47 pm »

Цитировать
Кто-то писал, что возможно из-за того, что за тик снаряд пролетает сразу 40 единиц, и возможно оно округляет до int(distance/40.0)*40
Проверял. Иногда, он пролетает и больше.

Цитировать
У меня стоит просто self.GetDistanceTo(tower)  < self.CastRange прекрасно все долетает.
Очевидно, это не оптимально. Хотябы тогда self.GetDistanceTo(tower) - tower.Radius  < self.CastRange
Записан

ilt

  • Jr. Member
  • **
  • Сообщений: 27
Re: Время жизни снаряда.
« Ответ #16 : Ноября 13, 2016, 10:11:00 am »

Цитировать
У меня стоит просто self.GetDistanceTo(tower)  < self.CastRange прекрасно все долетает.
Очевидно, это не оптимально. Хотябы тогда self.GetDistanceTo(tower) - tower.Radius  < self.CastRange
Поясни почему не оптимально? Я тоже ни разу не видел, что бы снаряд не долетал до башни при self.GetDistanceTo(tower) < self.CastRange.
Записан

recar

  • Jr. Member
  • **
  • Сообщений: 26
Re: Время жизни снаряда.
« Ответ #17 : Ноября 13, 2016, 10:42:30 am »

Потому что будешь ближе подходить к башне чем надо, чтобы выстрелить.
Записан

ilt

  • Jr. Member
  • **
  • Сообщений: 27
Re: Время жизни снаряда.
« Ответ #18 : Ноября 13, 2016, 01:47:42 pm »

Вот дела...

Доработал алгоритм. Теперь Quick боты очень редко в локал-раннере в меня стреляют.  :)
Записан

mortido

  • Full Member
  • ***
  • Сообщений: 96
Re: Время жизни снаряда.
« Ответ #19 : Ноября 13, 2016, 04:34:10 pm »

Цитировать
Кто-то писал, что возможно из-за того, что за тик снаряд пролетает сразу 40 единиц, и возможно оно округляет до int(distance/40.0)*40
Проверял. Иногда, он пролетает и больше.

Я сам еще не добрался до полноценной проверки этого, но может дело в минимально дистанции? интуитивно мне кажется, что проверка минимальной дистанции могла бы проходить раз в тик, а вот колизии 10 раз за тик. Т.е. снард просто не успевает "включится" если его минимальная дистанция 481, например.
Записан

mortido

  • Full Member
  • ***
  • Сообщений: 96
Re: Время жизни снаряда.
« Ответ #20 : Ноября 13, 2016, 05:13:02 pm »

Или наоборот, поверяет minDistance в момент первого соприкосновения, а если снаряд начал уже внутри башни дествовать, то он игнорит, т.к. эта пара объектов уже помечена, как "не пересекающиеся" (тут надо получше чем я рабираться в методе BeforeCollisionStart у https://github.com/Russian-AI-Cup/notreal2d/blob/475188b716234b09db3fec1b67866314c6d88aaf/src/main/java/com/codegame/codeseries/notreal2d/listener/CollisionListener.java т.к. именно там проверяется minCastDistance)
Записан

Spasitel

  • Jr. Member
  • **
  • Сообщений: 18
Re: Время жизни снаряда.
« Ответ #21 : Ноября 14, 2016, 07:13:09 am »

Да херня какая-то происходит, уже 2-й день с этим борюсь.
У меня сейчас такая ситуация, что я стреляю по башне, а снаряд не долетает, хотя self.GetDistanceTo(tower) - tower.Radius - projectile.Radius < self.CastRange.
Не могу понять закономерность.
Уже грешу на баги в локал раннере/движке.

А не из-за погрешностей ли чисел с плавающей точкой проблема? Если поставить self.GetDistanceTo(tower) - tower.Radius - projectile.Radius < self.CastRange - delta и так же ставить minDistance = maxDistance - delta с какой нибудь delta=10^-7, не начнет ли он попадать всегда?
Записан

Spasitel

  • Jr. Member
  • **
  • Сообщений: 18
Re: Время жизни снаряда.
« Ответ #22 : Ноября 14, 2016, 07:21:11 am »

Да херня какая-то происходит, уже 2-й день с этим борюсь.
У меня сейчас такая ситуация, что я стреляю по башне, а снаряд не долетает, хотя self.GetDistanceTo(tower) - tower.Radius - projectile.Radius < self.CastRange.
Не могу понять закономерность.
Уже грешу на баги в локал раннере/движке.

А не из-за погрешностей ли чисел с плавающей точкой проблема? Если поставить self.GetDistanceTo(tower) - tower.Radius - projectile.Radius < self.CastRange - delta и так же ставить minDistance = maxDistance - delta с какой нибудь delta=10^-7, не начнет ли он попадать всегда?

Перечитал соседнюю тему от Let_It_Rain, понял что ошибка не в этом
Записан
Страницы: [1]