• Как поворачивать координату линии?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Начните с того, что, хотя бы, расскажите про двумерный или трехмерный случай идет речь.
    Обычно конец луча никто никуда не поворачивает.
    У вас есть луч и поверхность. Луч - это половина прямой. Если задать его уравнением и также уравнениями задать поверхность, а потом дополнительным неравенством добавить ограничения (поверхности и прямой), то решение получившейся системы будет точками пересечения луча и поверхности. Нас интересует ближайшая точка пересечения от начала луча.

    Ваша поверхность в точке пересечения с лучом имеет нормаль. Это перпендикуляр к поверхности в данной точке.
    Итак, дано:
    точка старта луча (O),
    точка пересечения (P) луча с поверхностью,
    вектор нормали (n) в этой точке.
    Нужно получить вектор (v) направления нового луча из точки P.

    Построим вектор PO = O - P (да-да, любые координаты - это вектор из начала координат) Если вычесть из вектора O вектор P, получим вектор направления из P в сторону O.

    Итак, у нас есть два вектора: PO и n. Угол падения у нас равен углу отражения и искомый вектор v будет лежать в плоскости этих двух векторов. Нам нужно повернуть вектор PO в упомянутой плоскости на удвоенный угол между нормалью и вектором PO.

    Любую плоскость можно задать точкой и нормалью (вектором перпендикуляра к плоскости). Чтобы получить этот перпендикуляр, назовём его вектором w, нужно сделать векторное произведение PO на n. Это будет ось вращения. Она направлена будет по правилу "буравчика".
    Чтобы повернуть вокруг этой оси ваш вектор PO, проще всего умножить его на матрицу поворота.
    Вот статья, которая это с рисунками показывает.
    https://scicenter.online/avtomatizatsiya-scicenter...
    Ответ написан
  • Стоит ли сейчас использовать Webassembly?

    sfi0zy
    @sfi0zy Куратор тега JavaScript
    UI developer. Верстаю неверстаемое.
    Webassembly может давать существенный прирост производительности в абстрактных вычислениях. Но тут есть один нюанс - на 99% сайтов, решающих задачи бизнеса, вычисления находятся на уровне "одно яблоко стоит N рублей, а одна груша - K рублей, сколько стоит два яблока и три груши?". Здесь Webassembly может только усложнить жизнь на ровном месте. Основные затыки в плане производительности на таких сайтах - тормознутый DOM, мобильный интернет и кривые руки у любителей WebGL. Webassembly ни одну из этих проблем не решает. Так что эта технология нужна лишь на том малом количестве сайтов, где реально делают какие-то сложные абстрактные вычисления.
    Ответ написан
  • Где найти игры для веб-программиста?

    Beeetle
    @Beeetle
    https://flexboxfroggy.com по флексам
    https://cssgridgarden.com по гридам
    Очень прикольные сервисы по изучению в игровой форме
    Ответ написан
  • Выполнение двух асинхронных функций?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Если результат выполнения commit нужен, тогда так:

    await Promise.all([ one(), query().then(commit) ])

    Если не нужен:

    await Promise.all([ one(), query().then(r => (commit(), r)) ])
    Ответ написан
  • Доступность ассета после покупки?

    GavriKos
    @GavriKos Куратор тега Unity Game Engine
    Когда я покупаю ассет он доступен мне для каждого проекта, или одна покупка на один проект?

    Для каждого проекта

    Если один из нас купит ассет и импортирует его в проект, он будет доступен каждому члену команды, или нет?


    А вот тут нюансы. Есть лицензии Per seat, есть - где ничего не указано.
    Ответ написан
  • Как включить отображение полигонов в Unity?

    MrMureno
    @MrMureno Куратор тега Unity Game Engine
    VR for all
    В SceneView окне - есть на верхней "кромке" кнопки и галочки. там есть режимы отображения, в том числе и Wired (или как он там зовется) думаю сможете найти))

    а про картинку - разрешение и сглаживание, но оно не задаром дается, на ту же мобилочку - будет тяжко без просадочек сделать "гладенько"))

    просто примите как данность в Scene и в Game - по разному рендерится картинка.

    давайте даже так. ссылочкой, раз не читали видать всю документацию)
    https://docs.unity3d.com/Manual/ViewModes.html
    Ответ написан
  • VueJS: mutation-types и action-types?

    kulakoff
    @kulakoff Куратор тега Vue.js
    Vue.js developing
    Ответ банальным будет - делайте так как удобнее вам. Если не видите причин использовать - не используйте. Я ни в одном проекте пока не нашёл удобным для себя это делать.
    Ответ написан
  • Где найти программиста и сколько заплатить?

    dollar
    @dollar
    Огорчу. Ваша идея ничего не стоит (как и любая идея). Если вы по каким-то причинам думаете, что идея стоящая, то это главная ошибка. Естественно, я измеряю стоимость в деньгах, то есть в прибыли.

    Поэтому всё зависит от ваших целей. Если вы хотите игру для себя, то программиста можно найти на фрилансе, либо среди знакомых ваших знакомых. При этом игру даже не обязательно выводить в стор, вы и ваши друзья и так сможете играть.

    Если же вы хотите заработать, то советую поскорее отказаться от этой затеи, потому что без опыта у вас нет шансов. Каждый день выходит около 200 мобильных игр. Но сколько из них стали известны и успешны? Причём, это только те игры, которые дошли до публикации в сторе. Но ещё больше игр, которые разрабатывались и были заброшены.

    Понадобится не только программист, но и другие специалисты. Минимальная стоимость хорошей игры будет более 100 тыс. долларов. В случае успеха это ничто, потому что прибыль всё окупит многократно, но шансы успеха крайне малы. А в случае провала, что более вероятно, вы просто потеряете эти деньги. Вы готовы к этому?

    Как вы хотите
    Вы платите программисту немного денег, он всё делает. Вы публикуете игру, а дальше толпы фанатов бросают в вас деньгами. Вы не спеша их собираете, изредка поощряя какими-нибудь словами.
    Как будет
    Вы нанимаете программиста. Но оказывается, что еще нужен и художник. Вы нанимаете и его. Но время разработки оказывается 8 месяцев. Всё это время вы практически платите зарплату из своего кармана. В конце получается нечто типа игры, что вы публикуете. 10 человек скачивают игру, и всё, больше никто о вашей игре не знает и не узнает никогда.
    Как надо
    Вы изучаете, что такое геймдев и с чем его едят, читаете статьи, проходите курсы, получаете второе высшее в этой сфере. Затем вы подробно описываете свою идею, находите инвестора, который готов дать вам 300 тыс. долларов, собираете команду из 10-15 человек. Проходите через все этапы разработки, держите KPI на высоте. Готовую игру тестируете на небольшой аудитории (например, на Филиппинах). Это значит, что вы закупаете трафик оттуда, а не просто выкладываете игру в стор. Смотрите, как пойдет, что подрихтовать и т.д. Если игра в целом успешна, т.е. стоимость игрока меньше, чем прибыль с игрока (LTV > CPI), то вливаете огромные деньги для закупки трафика по всему миру, что естественно окупается и вы становитесь миллионером. Если же игра плохо себя показала, то больше не тратитесь на эту игру, а закрываете её, и приступаете к разработке следующей, но с учётом ошибок, либо вообще уходите из геймдева.
    Ответ написан
  • ES5 only на возможном месте работы. Что скажете?

    JN0iZzze
    @JN0iZzze
    Во первых не понимаю что значит "исключает возможность использовать ES6+ вообще", никто не отменял babel и полифилы, независимо от того на чем был написан проект, другой вопрос что это тоже придется настроить в проекте самостоятельно.

    Во вторых любая первая работа даёт много опыта, НО отсутствие опыта с ES6+ сильно ограничивает возможности получить нормальную работу в будущем, например в нашей компании мы уделяем большое значение опыту работы с ES6 при собеседовании.

    Ну и в третьих опыт работы только с ES5 в 2019 году может дать тебе скорее "анти" опыт и кучу примеров как в 2019 писать код не надо, так что польза от такого опыта сомнительна впринципе.
    Ответ написан
  • Реален ли поиск палиндромов в огромном тексте на js в браузере?

    l3ftoverz
    @l3ftoverz Куратор тега JavaScript
    Люблю Финский металкор
    Можно это все завернуть в воркеры и вынести в отдельный поток, разбивая данные на части.
    Или WASM.
    Ответ написан
  • В чем преимущество localStorage перед cookie?

    Stalker_RED
    @Stalker_RED
    Если отбросить бредовые аргументы, что куки увеличивают заголовки, потому что прикрепляются к каждому запросу

    Ну да, а cookieless домены от скуки прикручивают :)

    1. Не передаются = не жрут трафик
    2. Не передаются = нельзя перехватить
    3. Размер хранилища намного больше
    Ответ написан
  • This - undefined в стрелочной функции?

    filgaponenko
    @filgaponenko
    frontend developer
    Стрелочная функция получает внешний, по отношению к себе, контекст;

    Выше вариант с currentTarget правильный.

    не знаю, как это исправить, кроме как переделать функцию на ES5, но хотелось бы оставить стрелочную


    Стрелочные функции это инструмент, который нужно применять по назначению, если для решения вашей задачи можно написать function declaration, то лучше не усложнять себе(и тому, кто будет читать ваш код) жизнь, а сделать именно так.
    Ответ написан
  • Программное решение для упорядочивания жизни?

    whillson
    @whillson
    помогу, чем смогу ^_^
    Пользуюсь и рекомендую Вам trello.
    Сама по себе канбан доска очень удобна.
    В trello вы можете создавать доски под свои нужды, начиная с работы, жизни, покупок, финансов и так далее.
    Проставляйте себе нужные теги, добавляйте колонки с описанием процессов. Этот сервис очень вам поможет, если вы вникните в суть.
    Ответ написан
  • Как получить доступ к полям выключенного объекта?

    MrMureno
    @MrMureno Куратор тега Unity Game Engine
    VR for all
    привидите пожалуйста пример где именно обращение к инвентарю и что именно там в инвентаре за код.

    и отчасти Константин Китманов ошибается. а freeExec отчасти верно вам говорит. что при ссылке на объект у вас доступ к полям и методам будет.

    и вот что важно бы вам уяснить, на ВЫКЛЮЧЕННЫХ объектах не работает НИКАКОЙ ПОИСК.
    GetComponentInChildren - это тоже ПОИСК. и все ему подобное не сможет ничего найти на выключенных объектах.
    может в инвентаре у вас не просто получение значения
    inventory.ItemList[0].cost
    а что то в духе
    inventory.GetItemInfo(0);
    ///
    void ItemInfo(int itemIndex)
    {
    something.GetComponent<T>();
    }

    и такое не будет отрабатывать, потому не ленитесь побольше кода прикладывать)) хотя и весь проект целиком тоже не стоит. хм, тут не просто угадать))
    Ответ написан
  • Как преодолеть неприязнь к использованию готовых решений?

    SagePtr
    @SagePtr
    Еда - это святое
    Как правило, у любого стороннего модуля в npm есть исходники на github, вы можете ознакомиться с кодом и примерно понять, как это работает. Там же есть issues, где можно ознакомиться с имеющимися известными проблемами.
    В целом, вероятность, что в популярном модуле, используемом тысячами и миллионами разработчиков, допустят ошибку и никто из этих людей за всё это время её не обнаружит, гораздо ниже, чем если вы в своём коде допустите ошибку.
    Ответ написан
  • Куда можно бесплатно опубликовать пк игру?

    DIEMONIC
    @DIEMONIC
    https://itch.io - крупный, удобный, бесплатный англоязычный ресурс. Пользуюсь сам, рекомендую. Можно опубликовать любую игру (в названии темы ты указал ПК игру, в описании - мобильную ???)
    Ответ написан
  • Реально ли найти инвестора на инди-игру?

    @Warlodya
    Сделайте демку, где будут реализованы самый крутые фичи вашей игры, запилите гифки/видосики/картинки с демонстрацией этих фич и отправляйте всем кому можете.
    Ответ написан
  • Почему this указывает на класс, в котором был создан?

    Lynn
    @Lynn
    nginx, js, css
    Ну учитывая, что этот синтаксис вообще ещё не везде есть и у вас наверняка бабель, то это на самом деле выглядит так:

    class Parent extends React.Component {
        constructor() {
            this.checkThis = () => {
                console.log(this);
            }
        }
    
        render() { 
            return <Child checkThis={this.checkThis} />
        }
    }

    class Child extends React.Component {
        render(){
            this.props.checkThis(); // выводит класс Parent
            return '';
        }
    }


    И да, вы всё перепутали, и контекст стелочной функции как раз таки лексический. Так что логично, что внутри конструктора класса её `this` указывается на экземпляр этого класса.
    Ответ написан