コード例 #1
0
        public void Run()
        {
            DrawingBuffer mainBuffer = new DrawingBuffer();

            dataBase = new GODataBase();
            dataBase.Load();

            mainWorld = new World("world1", dataBase);
            mainWorld.Load();

            mainWorld.player = new Player();
            mainWorld.player.SetCurrentRoom(mainWorld.GetRoomAt(0, 0));
            mainWorld.player.SetPosition(30, 11);

            ConsoleKey input;


            while ((input = Console.ReadKey(true).Key) != ConsoleKey.Q)
            {
                mainWorld.player.Step(input);

                mainBuffer.Clear();
                mainBuffer.DrawAreaAt(mainWorld.BuildRoomImage(mainWorld.player.GetCurrentRoom()), 0, 0);

                mainBuffer.DrawTextAt("Name: " + mainWorld.player.GetName(), 35, 2);
                mainBuffer.DrawTextAt("Position X: " + mainWorld.player.GetPosition().X, 35, 3);
                mainBuffer.DrawTextAt("Position Y: " + mainWorld.player.GetPosition().Y, 35, 4);

                mainBuffer.Render();
            }
        }
コード例 #2
0
ファイル: World.cs プロジェクト: QuantMad/SimpleRPG
        /**
         * Конструктор класса. Принимает путь к директории с файлами комнат,
         * и ссылку на объект базы данных статических объектов.
         * Заполняет массив комнат пустыми объектами для последующей работы с ними.
         */
        public World(string pathWorld, GODataBase dataBase)
        {
            this.pathWorld = pathWorld;
            this.dataBase  = dataBase;

            for (int y = 0; y < WORLD_SIZE; y++)
            {
                for (int x = 0; x < WORLD_SIZE; x++)
                {
                    rooms[y, x] = new Room();
                }
            }
        }
コード例 #3
0
 private void LoadStatic(StreamReader roomReader, GODataBase dataBase)
 {
     int[] parsedLine;
     for (int y = 0; y < 32; y++)
     {
         parsedLine = StringArrayToInt(roomReader.ReadLine().Split(","));
         for (int x = 0; x < 32; x++)
         {
             SetStaticAt(x, y, dataBase.CloneByID(parsedLine[x]));
             GetStaticAt(x, y).SetPosition(x, y);
         }
     }
 }
コード例 #4
0
 public void Load(StreamReader roomReader, GODataBase dataBase)
 {
     LoadStatic(roomReader, dataBase);
     LoadObjects(roomReader);
     //Sort(); //todo???
 }