예제 #1
0
        public override void Render()
        {
            if (Terminal == null)
            {
                return;
            }

            if (Units == Components.Units.Viewport)
            {
                for (int i = 0; i < Terminal.Size.X; i++)
                {
                    for (int j = 0; j < Terminal.Size.Y; j++)
                    {
                        GlyphSheet.Draw(Window, i, j, Terminal.Get(i, j));
                    }
                }
            }
            else
            {
                for (int i = 0; i < Terminal.Size.X; i++)
                {
                    for (int j = 0; j < Terminal.Size.Y; j++)
                    {
                        if (Game.ViewPort.Contains(new Bramble.Core.Vector2D(i, j)))
                        {
                            GlyphSheet.Draw(Window, i, j, Terminal.Get(i, j));
                        }
                    }
                }
            }

            Terminal.Clear();
        }
예제 #2
0
 public override void Render()
 {
     if (Units == Components.Units.World)
     {
         if (Game.ViewPort.Contains(GameObject.Position + Offset))
         {
             GlyphSheet.Draw(Window, GameObject.Position.X + Offset.X - Game.ViewPortOffset.X, GameObject.Position.Y + Offset.Y - Game.ViewPortOffset.Y, Character);
         }
     }
     else
     {
         GlyphSheet.Draw(Window, GameObject.Position.X, GameObject.Position.Y, Character);
     }
 }
예제 #3
0
 public override void Render()
 {
     foreach (var node in Nodes)
     {
         if (Units == Components.Units.Viewport)
         {
             GlyphSheet.Draw(Window, node.X + Offset.X, node.Y + Offset.Y, Character);
         }
         else
         {
             if (Game.ViewPort.Contains(node + Offset))
             {
                 GlyphSheet.Draw(Window, node.X + Offset.X - Game.ViewPortOffset.X, node.Y + Offset.Y - Game.ViewPortOffset.Y, Character);
             }
         }
     }
 }
예제 #4
0
        static void Main()
        {
            var width        = 80u;
            var height       = 48u;
            var videoMode    = new VideoMode(width * 16, height * 16);
            var sheetTexture = new Texture(@"Resources/cp437_16x16.png");
            var sheet        = new GlyphSheet(sheetTexture, 16, 16);
            //var terminal = new Terminal((int)width, (int)height, Encoding.GetEncoding(437));
            var window = new RenderWindow(videoMode, "Praedium");

            window.SetFramerateLimit(60);

            Game g = new Game(sheet, window);

            g.LoadLevel(new FarmLevel());

            g.Run();
        }
예제 #5
0
        public Game(GlyphSheet defaultSheet, RenderWindow window)
        {
            RNG      = new Random();
            UI       = new UserInterface();
            entities = new List <GameObject>();
            watch    = Stopwatch.StartNew();

            Window     = window;
            GlyphSheet = defaultSheet;

            window.KeyPressed  += window_KeyPressed;
            window.KeyReleased += window_KeyReleased;

            window.MouseButtonPressed  += window_MouseButtonPressed;
            window.MouseButtonReleased += window_MouseButtonReleased;

            window.MouseMoved      += window_MouseMoved;
            window.MouseEntered    += window_MouseEntered;
            window.MouseLeft       += window_MouseLeft;
            window.MouseWheelMoved += window_MouseWheelMoved;
            window.Closed          += window_Closed;
            window.Resized         += window_Resized;
        }