Задать вопрос
  • Как сконвертировать стринг из текстбокса в инт для дальнейших операций?

    @Fallenyasha
    Int32.TryParse(textBox1.Text, out var text);
    Int32.TryParse(textBox2.Text, out var text2);
    Int32.TryParse(textBox3.Text, out var text3);
    Ответ написан
    Комментировать
  • Кто поможет решить простую задачу по C# на массивы?

    mmmaaak
    @mmmaaak
    Какой-нибудь фрилансер обязательно поможет
    Ответ написан
    Комментировать
  • Как внедрить в ядро ОС на Си C++?

    saboteur_kiev
    @saboteur_kiev Куратор тега C++
    software engineer
    C++ это язык программирования. Его поддержки ни в каком ядре нет.

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

    А С++ поддерживается в первую очередь компилятором, который к ядру никакого отношения не имеет.

    Немного другой вопрос линкер, который создает бинарник или библиотеку, и ваше ядро по идее должно уметь этот бинарник запускать а библиотекой пользоваться.

    Итого, прежде чем "подключать С++ к ядру", следует уточнить как работает архитектура ОС и задать правильный вопрос
    Ответ написан
    7 комментариев
  • С чего начать изучать ассемблер в 2021?

    approximate_solution
    @approximate_solution
    JS Developer. Angular\React\Vue\Ember
    С чего начать изучать ассемблер в 2021?

    Как правило с того же с чего начинали изучать и в 2020.

    https://asmbase.ru/uchebnik-po-assembleru/

    Assembler на примерах. Базовый курс – Р. Марек
    Основы программирования на Ассемблере – В. Г. Секаев
    Ответ написан
    1 комментарий
  • Как запустить потоки поочередно?

    Join блокирует вызывающий поток, пока не завершится тот, который джоинят.
    https://docs.microsoft.com/ru-ru/dotnet/api/system...
    Возможно, вам нужны не потоки, а таски и async/await.
    Ещё вы можете использовать коллбэки, чтобы запускать новый поток после завершения старого (но если честно, это какая-то синтетическая задача - в такой ситуации можно всё в одном потоке выполнить)
    Ответ написан
    Комментировать
  • Сколько полигонов/вертексов может быть на модели для игры?

    maaGames
    @maaGames
    Погроммирую программы
    Нет никаких норм.
    Очевидно, что чем меньше, тем будет работать быстрее, но выглядеть будет хуже. Нужно достичь компромиса, когда уже мало, но ещё красиво.
    Ответ написан
    Комментировать
  • Entity Component System + ООП подход?

    @MarkusD
    все время мелю чепуху :)
    ECS является подходом декомпозиции не только логики и данных, но и подходом отказа от агрегации и наследования в пользу косвенной композиции. Явной композиции в ECS тоже не предусматривается, а косвенная композиция не намекает на связность или структурированность данных. Косвенная композиция обозначает только наличие каких либо данных по некоторым косвенным признакам.
    Более того, в рамках ECS сторонний код и с данными нормально работать не способен. Для стороннего кода в ECS предусматривается уровень абстракции для чтения и записи данных.

    Это все должно говорить о том, что ООП возможно применять только рядом с ECS и отдельно от ECS, но не вместе с и не внутри модели данных ECS.

    К примеру есть сущность игрок с набором компонентов наследованная от Entity,

    Нет, это сразу будет не ECS. Сущность игрок - это и есть entity, являющаяся эфемерной единицей в мире ECS.
    И методов у entity быть не может. Вся логика сущностей распределена по системам и сильно зависит от имеющихся у сущности компонент.
    Более того. Если ты говоришь о том, что в твоем мире может существовать сущность с характеристикой игрока, таких сущностей в твоем мире может быть до 100% всего ECS мира. Если игрок у тебя должен быть представлен единичной сущностью, значит это уже не сущность, а внешний объект, по ошибке введенный в ECS мир.

    В ECS базовым правилом является то, что в любой момент времени любая сущность может получить или утратить любой компонент.

    Про состояния, пустые компоненты добавлять удалять в entity как флаги что сущность в каком либо состоянии, и отдельные системы для обработки каждого состояния это нормальный подход ?!

    Битовые компоненты - это рядовая оптимизация для хранения пустых компонент. Да, так делают и обеспечивают правильную работу систем, чтобы фильтры компонент одинаково обрабатывали как полноразмерные компоненты, так и битовые тоже.
    Ответ написан
  • Как сделать ссылку на проект?

    Ссылку на проект - это в csproj надо написать
    <ItemGroup>
      <ProjectReference Include="../OtherProject/OtherProject.csproj"/>
    </ItemGroup>

    А то что "Ссылки: 0" - это то, в каких местах идёт явное обращение к подсвеченному методу.
    Ответ написан
    Комментировать
  • Как подавить автогенерацию метода ToString у record в c#?

    В record'е можно реализовать ToString явно - тогда не сгенерируется его дефолтная версия.
    Или можно тупо не использовать рекорды

    UPD: Поэкспериментировал с рекордами и вот вывод:
    1.
    sealed override string ToString()
    Так можно делать только в sealed record
    2. Рекорд не наследует ToString от родителя - вместо этого он определяет свой собственный
    3. В рекоде можно спокойно переопределить ToString
    Если вы не хотите переопределять ToString во всех рекордах, то, возможно, вам нужны не рекорды, а обычные классы.
    Ответ написан
    2 комментария
  • Не подкинете тему для курсовой работы с использованием PIC?

    @AVKor
    Темы курсовых и дипломных работ обсуждают с научным руководителем, а не в интернетиках спрашивают.
    Ответ написан
    7 комментариев
  • Произошла проблема в Unity, поможете?

    У объекта класса RigidBody нет поля velosity - об этом тебе Unity говорит.
    Идём в документацию и видим, что есть поле velocity - ты опечатался.

    Раз у тебя возникают трудности в таких моментах, от забудь про существование юнити и займись просто C#-ом
    Ответ написан
    Комментировать
  • По каким то причинам юнити пишет "Transform' does not contain a definition for 'left'?

    transform.right Содержит значение красной (правой) оси. Чтобы получить значение "левой" оси - надо просто взять right со знаком "минус"

    Не забывайте про документацию: https://docs.unity3d.com/ScriptReference/Transform...
    Ответ написан
    5 комментариев
  • Demo в Google Play публикуют отдельным приложением?

    Я видел два подхода:
    1. Бесплатное приложение с внутренними покупками. Полная версия приобретается внутри.
    2. Два приложения - бесплатное и платное.
    Ответ написан
    Комментировать
  • Как заставить ботов убегать от преследователей?

    GavriKos
    @GavriKos Куратор тега Разработка игр
    переводите вашу плоскость в граф. Например, через навмеш. Тогда вам просто надо двигаться по тем вершинам графа, которые позволят вернутся в исходную точку/цель не проходя по одному маршруту дважды. Более того - такие слепые зоны-висяки можно вообще отсеять на этапе построения мира.
    Ответ написан
    9 комментариев
  • Можно ли сделать 3д игру под андроид без движков если да - то как?

    samodum
    @samodum
    Какой вопрос - такой и ответ
    Конечно можно.
    Достаточно изучить математику трёхмерной графики - координаты, проекции... Хорошо понимать и разбираться в вычислительной геометрии - пересечение линий, полигонов, уметь триангулировать как выпуклые, так и невыпуклые полигоны, понимать трассировку лучей и прочее...
    Я в студенческие годы увлекался этим и вполне успешно. С нуля писал трёхмерные игры без каких-либо движков.
    Это даёт огроменные скиллы как в математике, так и в программировании.
    Ты на верном пути.
    Почитай вот это:
    "Ласло М. Вычислительная геометрия и компьютерная графика на С++"
    "Иванов В.П., Батраков А.С. Трехмерная компьютерная графика".
    Книги старые, но в этом есть их плюс - они не привязаны ни к ЯП, ни к библиотекам и фреймворка. Только основы, самая суть.
    Написано очень простым и понятным языком.
    Освоив это, тебе по зубам будут не только всякие там OpenGL, DirectX, Vulkan, но даже сам сможешь написать свою библиотеку.
    Я на основе этих книг написал крутые трёхмерные приложения - как игры, так и рейтрейсер с CSG.

    На хабре есть цикл статей как всё это сделать
    https://habr.com/ru/post/248153/
    Ответ написан
  • Создание сайта нарушение прав?

    CityCat4
    @CityCat4
    Дома с переломом ноги
    Не будет ли это нарушением?

    Если договоришься с правообладателем и он даст такое разрешение (желательно в письменном виде) - нет. Иначе - будет.
    Лицензирование идет по принципу "все, что не разрешено, то запрещено" (default deny), поэтому если я выкладываю в тырнет самый бестолковый ролик, но не указываю, что его можно свободно распространять - я не даю прав вообще ни на что :D
    Тот факт, что нечто можно свободно скачать в тырнете вовсе не означает, что Вам тоже можно это свободно выложить - у того сайта может быть договор с правообладателем :)
    Ответ написан
    Комментировать
  • Создание сайта нарушение прав?

    Свободный доступ != свободен для копирования.
    Если речь о фильмах и сериалах, то права на них принадлежат соответствующим компаниям, а они очень редко(никогда) дают разрешение на бесплатное копирование, показ, и просмотр.
    Ответ написан
    Комментировать
  • Для чего нужен LINQ?

    Morpheus_God
    @Morpheus_God
    LINQ помогает избегать многих велосипедов которые могут посетить ясную голову программиста.
    Вместо громоздких циклов по поиску или фильтрации ваш код будет лаконичен и легко читаем.
    Примеры как он используется можете посмотреть тут.
    Ответ написан
    Комментировать
  • Почему платформа не двигается вверх?

    GavriKos
    @GavriKos Куратор тега Unity
    Потому что MovePosition принимает в качестве аргумента новую позицию. Вот оно у тебя и переместилось в Vector2.up * speed * Time.deltaTime и трется там
    Ответ написан
    2 комментария
  • Что возвращает out параметр?

    @Hanneman
    Не буду своими словами объяснять, так как в любом учебнике описано.

    В версии C# 7 переменные можно объявлять на лету при вызове методов с параметрами out:
    int.TryParse ("123", out int x);
    Console.WriteLine (x);

    Этот код эквивалентен следующему коду:
    int x;
    int.TryParse ("123", out x);
    Console.WriteLine (x);

    Когда вызываются методы с множеством параметров out, посредством символа подчеркивания можно “отбрасывать” любые параметры, которые не интересны для кода. Предполагая, что метод SomeBigMethod() был определен с пятью параметрами out, вот как проигнорировать все параметры кроме третьего:
    SomeBigMethod (out _, out _, out int x, out _, out _);
    Console.WriteLine (x);
    Ответ написан
    1 комментарий