Представим себе два куба, стоящие один на другом. По идее, они должны повести себя одинаково. Но в таком случае получится, что второй (нижний) куб вытолкнет первый со скоростью левого портала, и ответ B становится ещё более очевиден. Или вот если портал поглотит куб и продолжит движение, поглощая то, на чём этот куб стоял.
Хотя я и так не понимаю: в случае A куб должен выползти из портала с нулевой скоростью, что ли? Но как можно выползти с нулевой скоростью?
Представим себе шланг пылесоса. Он может изгибаться, как угодно, но с какой скоростью (точнее, её проекцией на ось трубы в точке входа) что-то влетает в него с одной стороны - с такой оно чуть позже вылетает с другой в направлении выхода. Вход и выход могут двигаться друг относительно друга и иметь разные направления. Вот как-то так оно и должно работать.
Боюсь, реализовать вариант A непротиворечиво (грубо говоря, чтобы программа не падала по exception) будет очень непросто. Что будет в тот момент, когда половина куба уже ушла в портал, а половина осталась? Как будет двигаться та половина, что прошла через портал? А вариант B на первый взгляд непротиворечив. Разумеется, речь не идёт про реальные физические законы.
Никак не делают. Поэтому то физические движки такие "тормознутые" и жестко привязаны к времени. Именно потому, что постепенного перехода не будет. Будет мгновенный перенос.
А как вести себя куб будет - проще простого. По А. Это любому человеку который хоть сколько программированием игровых движков занимался - понятно и очевидно.
- Что будет если половина куба зашла в портал, почле чего портал сдвинулся вправо ? - Что будет если предмет должен появиться там, где уже находится другой? (что в варианте "а" что "б").
А так вроде решением видится: 1. Делим куб на 2 половинки (портал двусторонний?) 2. Move (для 2х половинок) - делается естественно 3. Рассчёт новых скоростей, как если куб - единое целое с точки зрения сил, действующих на него. 4. Normalize: - рассчёт "новых" половинок (с усреднением) - сдвиг "новых" половинок так чтобы они были прижаты к порталам со своей стороны
П.С. Согласен, что п.4 - возможно приведёт к каким-то странным эффектам-артефактам и иметь "системой отсчёта" точку на портале было бы более естественно (убрало бы п.4 полностью).
что значит "сохраняют скорость"? как это им вообще удается. скорость это вектор, не правда ли? с определенными правилами пересчета между системами отсчета (и эти правила вообще говоря зависят от величины скорости, учитываем мы релятивистские поправки или нет)
и потом, портал в той же системе отсчета? и это инерционная система? или она например крутится, движется с ускорением
ой, портал движущийся! еще интереснее. так мы знаем как именно он движется или бывает по разному? ну тогда "сохранить скорость" будет совсем непросто
В программе - проще простого. Инерция и вектор - сохраняются относительно... Тадам, обьекта. А обьект у нас что делает? Прааавильно. Лежит и не шевелится. Поэтому из портала он как какашка плюмкнется. Очевидно же, нет?
интересно. т.е., что там делал объект до портала мы принципиально не знаем. при попадании в оранжевый круг он там уничтожается и его структура сохраняется в виде файла например. а потом в портале он генерируется снова. ну портал просто получил информацию об устройстве объекте и воссоздал его, как смог. естественно ему при этом быть неподвижным относительно портала. при этом нет особенной сложности заодно и придать ему любую другую скорость относительно портала. например, скорость измеренную оранжевым кругом в момент уничтожения.
т.е. тут широкий диапазон ответов, и все вполне могут быть "правильными" и "неправильными"
ваш ответ представляется вполне естественным, но и другие варианты вполне возможны
Всё ограничено только фантазией разработчика, сиречь программиста. Может сохранить данные, и буквально переписать три циферьки в координатах. И собсно, будет довольно забавно с движущимся предметом (в зависимости от реализации физического движка, вплоть до влетания в выходной портал спиной вперед и возврат в исходную точку ))) ). В общем, это надо конкретно разбирать. А вот как в Портале работают порталы, вопрос. Насколько я помню - довольно сложно. То есть, нереалистично. Ну, задача то не ставилась в реалистичность. А в игру )
Но вот пример обычного "залёта" с сохранением импульса и вектора. Пускай будет два портала расположенные на равном расстоянии от центра карты и повёрнутые друг к другу "спиной". (схематично - так > + < ). Если вы забегаете в левый портал, и вас переносит в правый, только меняя ваши координаты, но не всё остальное... То вы сохраните вектор движения к центру (а он уже будет у вас за спиной), и между ним и вами будет портал. После чего вы с криком "ой мааать", влетаете спиной уже в правый портал, и оказываетесь
( ... )
Нет, работает не как в игре. В игре поталы неподвижны. Предмет перенесенный движущимся порталом будет представлять из себя двумерный блин. Т.е. ответ С.
С чего бы это? Захочу - сделаю портал подвижным, ако в первой Халфе. Тоже мне сложность. Как только пересекаешь частью тулова определенный обьем в котором по логике - портал, он срабатывает. Всё. В чем проблема не понимаю.
Не, это если брать классические виды порталов. Так то можно напридумывать любые виды с любой фигнёй. Вплоть до сохранения направления импульса и прочее. Презабавные вещи можно делать.
Сколько угодно, но речь о порталах как в Portal по условию. Так-то можно воображить портал, который сканирует определенный объем перед собой - такой вполне может быть движущимся.
Насколько я помню (играл то я немного и то, только в первый), там совсем нереалистичные порталы. К физике отношения имеющие мало (к реальной физике, в смысле).
Тут вот, увы, конкретно про Портал вспомнить ничего не могу. Но они полностью модерируемые, а не физические, поэтому тут ответ один - как оный портал настроит геймдиз так и будет.
Comments 63
Но в таком случае получится, что второй (нижний) куб вытолкнет первый со скоростью левого портала, и ответ B становится ещё более очевиден. Или вот если портал поглотит куб и продолжит движение, поглощая то, на чём этот куб стоял.
Хотя я и так не понимаю: в случае A куб должен выползти из портала с нулевой скоростью, что ли? Но как можно выползти с нулевой скоростью?
Reply
Reply
Reply
Т.е. если душнить/заниматься заклёпничеством - то разумеется как в "Б".
Но в играх / литературе часто принято привязывать систему отсчёта к ландшафту.
Так что ответ "it depends".
"Depends" - от того какие физические законы вы провозгласили в своём сеттинге.
Reply
А вариант B на первый взгляд непротиворечив.
Разумеется, речь не идёт про реальные физические законы.
Reply
Никак не делают. Поэтому то физические движки такие "тормознутые" и жестко привязаны к времени. Именно потому, что постепенного перехода не будет. Будет мгновенный перенос.
А как вести себя куб будет - проще простого. По А. Это любому человеку который хоть сколько программированием игровых движков занимался - понятно и очевидно.
Reply
- Что будет если предмет должен появиться там, где уже находится другой?
(что в варианте "а" что "б").
А так вроде решением видится:
1. Делим куб на 2 половинки (портал двусторонний?)
2. Move (для 2х половинок) - делается естественно
3. Рассчёт новых скоростей, как если куб - единое целое с точки зрения сил, действующих на него.
4. Normalize:
- рассчёт "новых" половинок (с усреднением)
- сдвиг "новых" половинок так чтобы они были прижаты к порталам со своей стороны
П.С.
Согласен, что п.4 - возможно приведёт к каким-то странным эффектам-артефактам и иметь "системой отсчёта" точку на портале было бы более естественно (убрало бы п.4 полностью).
Вроде всё.
Reply
что значит "сохраняют скорость"? как это им вообще удается. скорость это вектор, не правда ли? с определенными правилами пересчета между системами отсчета (и эти правила вообще говоря зависят от величины скорости, учитываем мы релятивистские поправки или нет)
и потом, портал в той же системе отсчета? и это инерционная система? или она например крутится, движется с ускорением
ой, портал движущийся! еще интереснее. так мы знаем как именно он движется или бывает по разному? ну тогда "сохранить скорость" будет совсем непросто
Reply
В программе - проще простого. Инерция и вектор - сохраняются относительно... Тадам, обьекта. А обьект у нас что делает? Прааавильно. Лежит и не шевелится. Поэтому из портала он как какашка плюмкнется. Очевидно же, нет?
Reply
т.е. тут широкий диапазон ответов, и все вполне могут быть "правильными" и "неправильными"
ваш ответ представляется вполне естественным, но и другие варианты вполне возможны
Reply
Всё ограничено только фантазией разработчика, сиречь программиста. Может сохранить данные, и буквально переписать три циферьки в координатах. И собсно, будет довольно забавно с движущимся предметом (в зависимости от реализации физического движка, вплоть до влетания в выходной портал спиной вперед и возврат в исходную точку ))) ). В общем, это надо конкретно разбирать. А вот как в Портале работают порталы, вопрос. Насколько я помню - довольно сложно. То есть, нереалистично. Ну, задача то не ставилась в реалистичность. А в игру )
Но вот пример обычного "залёта" с сохранением импульса и вектора. Пускай будет два портала расположенные на равном расстоянии от центра карты и повёрнутые друг к другу "спиной". (схематично - так > + < ). Если вы забегаете в левый портал, и вас переносит в правый, только меняя ваши координаты, но не всё остальное... То вы сохраните вектор движения к центру (а он уже будет у вас за спиной), и между ним и вами будет портал. После чего вы с криком "ой мааать", влетаете спиной уже в правый портал, и оказываетесь ( ... )
Reply
Предмет перенесенный движущимся порталом будет представлять из себя двумерный блин.
Т.е. ответ С.
Reply
С чего бы это? Захочу - сделаю портал подвижным, ако в первой Халфе. Тоже мне сложность. Как только пересекаешь частью тулова определенный обьем в котором по логике - портал, он срабатывает. Всё. В чем проблема не понимаю.
Не, это если брать классические виды порталов. Так то можно напридумывать любые виды с любой фигнёй. Вплоть до сохранения направления импульса и прочее. Презабавные вещи можно делать.
Reply
Так-то можно воображить портал, который сканирует определенный объем перед собой - такой вполне может быть движущимся.
Reply
Насколько я помню (играл то я немного и то, только в первый), там совсем нереалистичные порталы. К физике отношения имеющие мало (к реальной физике, в смысле).
Тут вот, увы, конкретно про Портал вспомнить ничего не могу. Но они полностью модерируемые, а не физические, поэтому тут ответ один - как оный портал настроит геймдиз так и будет.
Reply
https://www.youtube.com/watch?v=AFJbNUoreVg
Reply
Leave a comment