Войти
ПрограммированиеФорумИгровая логика и ИИ

Как можно реализовать диалоги с неписями в рпг? (21 стр)

Страницы: 120 21 22 2332 Следующая »
#300
(Правка: 11:10) 11:10, 24 ноя 2022

FourGen
> Мне вот захотелось еще одного Player?
В движке плееров может быть несколько, но у него один, и работает исходя из того что один.
Если он знает что не будет делать 10 плееров, то почему бы не использовать более простое решение.

#301
11:30, 24 ноя 2022

FourGen
> Мне вот захотелось еще одного Player?
Мультиплер не планировался. Такие вещи еще на старте выбираются и не меняются.

FourGen
> Мне вот приспичило сделать еще одну валюту, причем не int, а float
Тогда Money станет возвращать не инт, а мапу. Но вообще я ни одной игры не припомню, чтоб было несколько валют.

FlyOfFly
> Без свойств тебе нужно постоянно контролировать где ты изменяешь здоровье и
> вместе с этим изменять ещё и healthbar
Я просто каждый фрейм опрашиваю юнита хп. Это самый рабочий способ.

#302
(Правка: 11:36) 11:35, 24 ноя 2022

samrrr
>
> Я просто каждый фрейм опрашиваю юнита хп. Это самый рабочий способ.
Проще контролировать свойство, тем более в юнити обновление UI это нагрузка лишняя, ибо вместе с обновлением одного элемена он обновляет весь canvas

#303
11:37, 24 ноя 2022

FlyOfFly
> Проще контролировать свойство
Это сложнее и ведет к багам. Хз как в юнити а в анреале прокатывает же.

#304
11:41, 24 ноя 2022

samrrr
>
> Это сложнее и ведет к багам. Хз как в юнити а в анреале прокатывает же.
К каким багам? И В Смысле сложнее, просто обновлять текст(или его размер) элемента при изменение значение.

#305
11:44, 24 ноя 2022

FlyOfFly
Можно случайно пропустить ивент о изменении и не обновить гуи. В половине игр есть баги связанные с этим.

Самый правильный метод самый простой. Просто обновлять каждый фрейм хп.

#306
(Правка: 11:48) 11:45, 24 ноя 2022

samrrr
>
> Можно случайно пропустить ивент о изменении и не обновить гуи.
Какой ивент?

   public Text text;
    int _hp;
    public int Hp
    {
        get
        {
            return _hp;
        }
        set
        {

            _hp = value;
            if (_hp <= 0) _hp = 0;
            text.text = _hp.ToString();
        }
    }

Unity же при каждом элементе делает канвас грязным и автоматом полностью перерисовывает его даже незатронутые элемены

#307
11:50, 24 ноя 2022

FlyOfFly
> Какой ивент?
О изменении, например в указанном тобой коде на конструкторе вызовется сеттер или нет? Или как в играх бывает на покажет цифру пока она не поменяется?

А что если случайно изменишь текст? А что если сменил язык и цифры не арабские теперь? итд.

#308
11:54, 24 ноя 2022

samrrr
>
> О изменении, например в указанном тобой коде на конструкторе вызовется сеттер
> или нет?
Ну турдно не вызвать изменение на конструкторе, ибо данные в любом случае сначала надо как-то в Hp назначать

    public void Start()
    {
        Hp = max_hp;
    }
    public int max_hp = 200;
#309
(Правка: 12:08) 11:55, 24 ноя 2022

samrrr
> А что если сменил язык и цифры не арабские теперь?
Вот это тема, да ...Правда даже в японских переводах вроде как арабские цифры используют

#310
15:09, 24 ноя 2022

>samrrr
Вот ваша одна строчка переписанная по человечески, должна выглядеть примерно так:
* Положить скрипты в папку с проектом и вызвать

ParamsScript ParamsScript = new ParamsScript();
ParamsScript.SetGameParams(ParamsScript);

ParamsScript.cs

+ Показать
#311
15:09, 24 ноя 2022

MoneyScript.cs

+ Показать
#312
15:10, 24 ноя 2022

PlayerScript.cs

+ Показать
#313
(Правка: 15:21) 15:12, 24 ноя 2022

Вот с таким можно начинать работать, естественно там куча недоделок кривых, нет проверок и прочего, часть структур надо переделывать, так как писал от балды, что бы показать как меняются параметры стоимости и как вычетается у персонажа требуемая валюта но что-то типа такого. Вот это хоть как-то можно расширять. Индусский код? Вы не задумывались, почему так делают? Куда этому коду, до ваших великих знаний. 1 строчку написал тяп ляп и говово, Архитектура приложения на высоте. Если что потом новый класс сделаю и как-нибудь разрулится.
Заметьте, у меня код работает польность без графики и объектов.

Вопрос на засыпку, куда я вставлю проверку токенов на >=500 Money

BuyItem | Как можно реализовать диалоги с неписями в рпг?
#314
(Правка: 21:06) 20:59, 24 ноя 2022

FourGen
Синтаксис C# позволяет красиво инициировать массивы
типо вот так:

string [] Text = new string []
{
  "1",
  "2",
  "3"
};

Если вопрос в возможности явно видеть индекс строки то тут можно взять Dictionary

Dictionary<int,string> Text = new Dictrionary<int,string>
{
  { 0, "1"},
  { 1, "2"},
  { 2, "3"}
};

Кстати еще есть такой вариант инициации

        
public Dictionary<int, string> Tags = new Dictionary<int, string>
{
  [0] = "1",
  [1] = "2",
  [2] = "3"
};

В общем итоге кода меньше, и воспринимается он проще

Страницы: 120 21 22 2332 Следующая »
ПрограммированиеФорумИгровая логика и ИИ