Программа ролевой игры: вызов входных переменных из другого класса

#variables #input #game-engine

#переменные #ввод #игровой движок

Вопрос:

Я искал решение для этого в течение нескольких часов, и я в тупике. Я очень новичок в Java, но в настоящее время я программирую очень простой движок для ролевых игр. В этой игре пользователь должен ввести уровень своей статистики. Мой вопрос: как я могу создать класс, в котором эта информация хранится и на который легко ссылаться, когда требуется уровень статистики?

Чтобы быть немного более конкретным: я хочу создать переменную, в которой пользователь вводит уровень своего навыка (используя сканер), а затем я хочу позволить остальной части Java-программы получить доступ к значению и использовать его на протяжении всей игры.

Я бы предпочел хранить статистику в другом классе, а не там, где она будет использоваться.

Заранее спасибо за ответы!

Комментарии:

1. В большинстве игр есть класс для персонажа игрока, который содержит статистику (и другие данные), это то, что вы хотите, или что-то еще?

2. О, позвольте мне уточнить: рассматриваемая система RPG является бесклассовой с точки зрения игрового процесса, позволяя вам выбирать навыки и тренировки. Я хочу, чтобы класс Java содержал всю эту информацию.

Ответ №1:

Как насчет

 class Stats {
    private int skillLevel;
    // ... other stats
    public void setSkill(int level) { skillLevel = level }
    public int getSkill() { return skillLevel; }
}

class Player {
    private Stats stats;
    // ...
    public Stats getStats() { return stats; }
}
  

Тогда вы не сможете получить навык для игрока:

 Player p;
// ...
p.getStats().getSkill();
  

Это было так просто или я чего-то не заметил?

Комментарии:

1. Этот ответ, вероятно, правильный, но, боюсь, я очень новичок в Java и не совсем понимаю. Как я должен заставить игрока указать «уровень»? Вы указываете «Player p;», не могли бы вы объяснить, что это значит? Я думаю, что понимаю большую часть этого, но я хотел бы быть полностью уверенным. Спасибо за ответ, и я надеюсь получить от вас еще один ответ!

2. @user969417 Это объявление переменной где-то в программе — где бы вы его ни выбрали. Послушайте, я не хочу показаться резким, но вы не сможете продолжить, не ознакомившись с языком — посмотрите, например, учебник по Java от Oracle. В целом, именно вы собираетесь написать эту игру, и нет никаких шансов, что вы сможете сделать это по принципу «пожалуйста, пришлите мне код».

3. О, я приношу свои извинения, если у меня создалось такое впечатление! Я не ожидаю, что кто-то, кроме меня, будет кодировать это, но я подумал, что смогу узнать больше о том, что я пытаюсь сделать, задав вопрос. Я обязательно ознакомлюсь с руководством по Java и еще раз спасибо за помощь!

4. @user969417 Не извиняйся за незнание, никто не рождается программистом. Так что это подходящее место, чтобы задавать вопросы, но пока вы не покажете, что на самом деле стараетесь изо всех сил, никто вам не поможет. Прочитайте FAQ по SO.