Задать вопрос
  • Как сделать сохранительную функцию в c#?

    BasiC2k
    @BasiC2k
    .NET developer (open to job offers)
    В классе создайте текстовую переменную - путь к сохраняемому файлу.
    Если пользователь нажал Save, а эта переменная пуста - вызывается Save As. После выполнения Save As, в эту переменную вносится выбранный путь (с именем файла).
    В дальнейшем, при нажатии на Save, если путь уже есть, диалоговое окно для выбора пути - не выводится.
    Ответ написан
    6 комментариев
  • Как работать в строке с "{"?

    edward_freedom
    @edward_freedom
    Там в подсказках было, что тебе нужно продублировать фигурные скобки и отсчет начинается с 0
    Console.WriteLine("new Item{{ Thumbnail = {0} }}", item.Thumbnail);
    Ответ написан
    Комментировать
  • Как создать текстовую онлайн RPG/ZPG?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Если у тебя есть интерес к математике и ты любишь логически рассуждать, то основы программирования тебе дадутся легко. В любом императивном языке программирования используются конструкции "если-то-иначе" и "повторять-до-тех-пор", то есть используются условия, которые могут быть "истиной" или "ложью". Остаётся только изучить синтаксис самого языка: где-то пишут if условие then действие end, а где-то if (условие) { действие } и тому подобное. То есть различия только в написании. Вот тебе основы программирования в двух словах.

    Что касается разработки именно игры, то есть понятие основного игрового цикла. С точки зрения программирования - это обычный цикл "повторять-до-тех-пор", просто он не заканчивается до самого конца игровой сессии. Этот цикл делит игру на так называемые "кадры" или "тики", из которых и состоит игра. Каждый кадр - это отдельное состояние игры, которое соответствует отдельной итерации основного цикла. Тебе нужно придумать, каким образом одно состояние сменяет другое, как осуществляется переход, какие вычисления при этом производятся. Такой "кадр" обычно не соответствует кадру на экране (другими словами ход игры не зависит от FPS), хотя это уже отдельная сложная тема.

    1. Язык выбирай в зависимости от того, какой движок или платформу будешь использовать. Не оглядывайся на другие игры. Например, Unity и соответственно C#.
    2. Курсы, учебники, ютуб-каналы - без разницы. В любом случае ты потратишь какое-то время, и его не получится сильно уменьшить. То есть это прямая конвертация времени в знания и навыки без сильных колебаний курса цены этой конвертации. В целом, время будет зависеть от твоего начального бэкграунда (т.е. что ты знаешь и умеешь уже сейчас).
    3. В программировании (да и в других областях) сложную задачу принято разбивать на части (декомпозиция). Сначала нужно изучить понятие игрового цикла, и как время будет течь в игре (или как время в игре соотносится с реальным, учитывая паузы и сохранения). Затем решить, в каком порядке и что там будет выполняться более детально. Однако любая мелкая игровая система всё равно будет достаточно сложна, и её снова нужно разбивать на совсем уж простые. А простые - снова разбивать на элементарные. Поэтому от умения разбивать зависит, закончишь ли ты программу (игру) или нет.
    4. Сетевая часть - обычно самая сложная (и самая глючная), потому что для каждой своя оптимизация. В двух словах, устройства обмениваются сообщениями по сети, и эти сообщения могут пересылаться с разной скоростью, а могут порой вообще теряться в никуда. Клиент-серверная модель предполагает, что есть некое главное устройство (например, ты арендовал сервер в дата-центре), к которому подключаются все остальные (т.н. клиенты). Но вот как будет реализовано взаимодействие, контроль ошибок, чтобы не глючило, вот это уже зависит от самой игры.
    Ответ написан
    Комментировать
  • Как использовать один метод в другом классе?

    GavriKos
    @GavriKos Куратор тега Unity
    Последовательность вызовов эвейков - дело туманное и неопределенное.
    Вы даете гарантию что Awake класса DataStorage вызовется раньше чем IAPSeller?
    Ответ написан
    4 комментария
  • Как это понять?

    theobroma
    @theobroma
    javascript developer (ReactJS)
    1)let arr = str.split(' ');
    Возьмет строку, в данном случае 'aa bb cc aa bb aa', разобьет на части используя пробел как разделитель. В результате получим:
    let arr = ['aa', 'bb', 'cc', ' aa', 'bb', 'aa']
    2) Следующий кусок кода просто произведет подсчет одинаковых частей.
    return arr.reduce((acc, rec, index) => {
        return (typeof acc[rec] !== 'undefined')
          ? { ...acc, [rec]: acc[rec] + 1 }
          : { ...acc, [rec]: 1 }
      }, {});
    Рассмотрим его подробнее. Начнем с аргументов:
    acc – последний результат вызова функции, он же «промежуточный результат».
    rec – текущий элемент массива, элементы перебираются по очереди слева-направо.
    index – номер текущего элемента.

    Что собственно происходит:
    -typeof acc[rec] !== 'undefined' проверит есть ли в объекте 'acc' ключ 'rec'.
    - и если мы уже встречали такой( например когда "aa", но уже во второй раз ), тогда изменить значение этого ключа прибавив 1.{ ...acc, [rec]: acc[rec] + 1 }
    - если же такого ключа еще не было, то создадим его со значением 1, ибо он в первый раз попался{ ...acc, [rec]: 1 }
    Ответ написан
    6 комментариев
  • Какие программы можно написать на C#?

    GavriKos
    @GavriKos
    99% функционала в указанных вами программах не зависит от языка в целом. Там куча алгоритмов, и щепотка UI. Алгоритмы от языка не зависят (только разве что быстродействие, удобство реализации и прочее - но результат будет на любом языке), интерфейс - в целом тоже.
    Ответ написан
    Комментировать
  • Можно ли сделать чтобы действия в OnTriggerEnter происходили каждый кадр?

    @pashara
    Можно обойтись OnTriggerStay, либо выставлением флага в OnTriggerEnter/Exit, и обновлять данные по своей логике и своему апдейту.
    Ответ написан
    3 комментария
  • Как организовать монитор порта на stm32?

    1. Вы в принципе можете использовать монитор порта из arduino ide :)
    2. Можно использовать любую программу, которая позволяет читать данные из COM-порта - например putty, а потом загнать эти данные в ексель.
    3. Можно написать небольшой скрипт на питоне или другом языке, который будет читать данные из COM и сразу отрисовывать их.
    Ответ написан
    Комментировать
  • Как сделать поочерёдный удар?

    @WaterSmith
    Android-разработчик. Java, Kotlin
    Ну, вот тебе хоть какой нибудь код.
    while (player.hitpoints > 0 && enemy.hitpoints > 0) {
           enemy.hitpoints = enemy.hitpoints - player.getDamagePower()
           if (enemy.hitpoints>0) {
                 player.hitpoints = player.hitpoints - enemy.getDamagePower()       
           }
    }
    Ответ написан
    2 комментария
  • Как создать исполняемий файл?

    Griboks
    @Griboks Куратор тега C#
    Исполняемые файлы создаются компиляторами. Конкретнее нужно смотреть справочник конкретного компилятора. С другой стороны можно посмотреть формат исполняемого файла и создать его вручную.
    Ответ написан
    4 комментария
  • Как создать массив списков через классы C#?

    Как искать причины подобных подобных ошибок:
    • Ставим точку останова на строку с ошибкой
    • Смотрим что там со значениями переменных

    В вашем случае:
    6051b0621d2aa442080624.jpeg
    Мы видим что все элементы Coor равны null.
    Ответ написан
    Комментировать
  • Как понять залипла ли кнопка мыши/палец?

    GavriKos
    @GavriKos Куратор тега Unity
    Почитать чуть дальше "инструкцию" - есть другие методы, например внезапно GetMouseButtonUp
    Ответ написан
    Комментировать
  • Есть ли мини-книжка/статья с совсеми запросами sql?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    "Весь список запросов по sql" - это примерно как "все предложения русского языка".
    SQL - это язык запросов, надо освоить его синтаксис и семантику, тогда сможете написать любой необходимый вам запрос.
    Ответ написан
    Комментировать
  • Как добавить свое приложения в меню при клике правой клавишой?

    @rPman
    Штатная утилита командной строки windows:
    assoc - регистрирует тип по расширению
    ftype - регистрирует приложение на тип

    больше контроля - в реестре
    Ответ написан
    2 комментария
  • Почему в моем коде нет задержки и объекты создаются сразу?

    @KoreanGuy
    у вас yield return после Instantiate. Просто поменяйте местами.
    Ответ написан
    Комментировать
  • Как посмотреть пошагово работу скрипта в отладчике?

    @AUser0
    Чем больше знаю, тем лучше понимаю, как мало знаю.
    Так вы просите JavaScript "выполни текущую и покажи следующую команду", вот он и переходит к первой команде фукции jquery.on(), которая описана в файле jquery-latest.min.js.

    Там, в консоли управления, кроме кнопочки "выполни текущую и покажи следующую команду", есть ещё кнопочка "выполни функцию целиком (без захода внутрь), и покажи следующую после функции команду"...

    P.S. Или ставьте breakpoint-ы не на объявлении функции, а на командах внутри нее.
    Ответ написан
    2 комментария
  • Как можно проверить сайт на работоспособность?

    vabka
    @vabka Куратор тега Веб-разработка
    Сначала сформулируйте, что такое "Работоспособность сайта" для вас
    Варианты разные, по мере сложности:
    1. Сервер работает, пингуется.
    2. Веб-сервер работает. Отвечает на HTTP-запросы
    3. Веб-приложение работает. Успешно отвечает на более сложные HTTP-запросы
    4. Метрики приложения в норме - количество 500х ошибок за час/минуту в норме. Во время работы не падают необработанные исключения.
    Ответ написан
    2 комментария
  • Как в Hex редакторе найти все данные в файле которые обращаются к одному смещению?

    15432
    @15432
    Системный программист ^_^
    Если это исполняемый файл, то здесь вам помогут дизассемблеры, например, IDA Pro.
    В общем случае - например, поискать это число в виде набора данных (я бы искал последовательность байт "D0 C3'), но если ссылка будет относительной, или кодирование данных имеет особый формат, такой поиск не поможет, и потребуется детальное изучение форматов структур и писать некоторые скрипты для автоматизации поиска
    Ответ написан
    Комментировать