Я пытаюсь написать текстовую RPG на C #.У меня возникают проблемы с пониманием того, как я могу эффективно сделать символьные данные доступными для многих других объектов.
Я довольно новичок в программировании, и мне определенно не хватает информации.Я читал руководства и вопросы в Интернете, и это дошло до меня, но я чувствую, что либо думаю об этом неправильно, либо что-то упускаю полностью.
Я пытаюсь написать все настолько гибко, насколько это возможно, поскольку я планирую многое добавить в этот проект, если смогу пройти этот этап.Но мне кажется трудным позволить всем этим объектам активно общаться друг с другом.Может ли использование Unity помочь с этим?В основном я делаю это, чтобы выучить язык, чтобы потом использовать его с Unity, но я хотел выучить язык напрямую, поэтому решил отказаться от Unity.Если есть какие-либо предлагаемые ресурсы, чтобы узнать о языке, я мог бы действительно использовать рекомендации.
Извините, если вопрос слишком открытый, но я не могу найти что-либо относительно мышления позади того, как я должен бытьпостроение системы, как это.Последнее, что я узнал, это ref, но я чувствую, что это не лучший ответ.
namespace GameMain
{
public class Game
{
static void Main()
{
MainMenu Game = new MainMenu();
Game.Menu();
return;
}
}
public class MainMenu
{
Character CurrentPlayer = new Character();
public void Menu()
{
Music MusicPlayer = new Music();
LocationEngine Location = new LocationEngine();
Tester Testman = new Tester();
MusicPlayer.Track("0");
while (true)
{
Menu:
Console.WriteLine("Welcome to the main menu. Enter 'create' to create a character and begin the game. Enter 'play' to log in.\r\nSaving features are to be implemented.\r\n");
while (true)
{
string MenuSelection = Console.ReadLine();
if (MenuSelection == "create")
{
CurrentPlayer.Creation();
goto Menu;
}
else if (MenuSelection == "play")
{
if (CurrentPlayer.CharacterPass != "")
{
Console.Write("\r\nEnter your password: ");
string Password = Console.ReadLine();
bool Check = CurrentPlayer.Login(Password);
if (Check == true)
{
Console.WriteLine("\r\nAdd transition to location here.");
break;
}
else
{
break;
}
}
else
{
Console.WriteLine("Please create a character first.\r\n");
break;
}
}
}
while (true)
{
Console.WriteLine("\r\nPress any key to continue.\r\n");
Console.ReadKey();
string TownSelection = "";
Console.WriteLine("\r\nYou are in Town.\r\n\r\nYou can 'explore' for encounters\r\nYou can use 'stats' to check your character\r\nOr you can 'sleep' to return to the main menu\r\n");
TownSelection = Console.ReadLine();
if (TownSelection == "sleep")
{
Console.WriteLine("");
break;
}
else if (TownSelection == "stats")
{
CurrentPlayer.CharacterStats();
}
}
}
}
}
}
Я не знаю, как сделать объект CurrentPlayer доступным для других объектов, таких как Location,Лучше ли передавать каждый соответствующий бит в качестве ссылки на всем протяжении кроличьей норы?
Я разместил здесь все на github, если вы чувствуете себя лишним: https://github.com/Slocknog/rpgproject
...и спасибо за помощь.Пожалуйста, прокомментируйте что-нибудь еще, что вы думаете, я должен делать по-другому или читать дальше.