Beispiel #1
0
        public VoxelRTSWindow(GameEngine engine)
            : base(1280, 720, new GraphicsMode(32, 24, 0, 1), "ORTS.Test")
        {
            VSync = VSyncMode.Off;
            Views= new ConcurrentDictionary<Type,IGameObjectView>();
            Engine = engine;

            Engine.Bus.OfType<GraphicsDirtyMessage>().Subscribe(m => _graphicsDirty = true);

            var map = new KeyMap();
            Keyboard.KeyDown += (sender, e) => Engine.Bus.Add(new KeyDownMessage(Engine.Timer.LastTickTime, map.Match(e.Key)));
            Keyboard.KeyUp += (sender, e) => Engine.Bus.Add(new KeyUpMessage(Engine.Timer.LastTickTime, map.Match(e.Key)));
            Mouse.WheelChanged += (sender, e) => Camera.Translate(new Vect3(0,0,-e.DeltaPrecise));

            Camera = new Camera();
            Camera.Translate(new Vect3(0, 0, 30));
            engine.Bus.Add(new GraphicsLoadedMessage(engine.Timer.LastTickTime));
        }
Beispiel #2
0
        public VoxelRTSWindow(GameEngine engine)
            : base(1280, 720, new GraphicsMode(32, 24, 0, 1), "ORTS.Test")
        {
            VSync  = VSyncMode.Off;
            Views  = new ConcurrentDictionary <Type, IGameObjectView>();
            Engine = engine;

            Engine.Bus.OfType <GraphicsDirtyMessage>().Subscribe(m => _graphicsDirty = true);

            var map = new KeyMap();

            Keyboard.KeyDown   += (sender, e) => Engine.Bus.Add(new KeyDownMessage(Engine.Timer.LastTickTime, map.Match(e.Key)));
            Keyboard.KeyUp     += (sender, e) => Engine.Bus.Add(new KeyUpMessage(Engine.Timer.LastTickTime, map.Match(e.Key)));
            Mouse.WheelChanged += (sender, e) => Camera.Translate(new Vect3(0, 0, -e.DeltaPrecise));

            Camera = new Camera();
            Camera.Translate(new Vect3(0, 0, 30));
            engine.Bus.Add(new GraphicsLoadedMessage(engine.Timer.LastTickTime));
        }
Beispiel #3
0
        public SpaceWindow(GameEngine engine)
            : base(1280, 720, new GraphicsMode(32, 0, 0, 4), "ORTS.Space")
        {
            _screen = new Rectangle(0, 0, 1280, 720);

            VSync  = VSyncMode.Off;
            Views  = new ConcurrentDictionary <Type, IGameObjectView>();
            Engine = engine;
            Bus    = Engine.Bus;
            var map = new KeyMap();

            KeyPress           += (sender, e) => Engine.CurrentState.KeyPress(new KeyPressMessage(Engine.Timer.LastTickTime, e.KeyChar));
            Keyboard.KeyDown   += (sender, e) => Engine.CurrentState.KeyDown(new KeyDownMessage(Engine.Timer.LastTickTime, map.Match(e.Key)));
            Keyboard.KeyUp     += (sender, e) => Engine.CurrentState.KeyUp(new KeyUpMessage(Engine.Timer.LastTickTime, map.Match(e.Key)));
            Mouse.Move         += (sender, e) => Engine.CurrentState.MouseMove(new MouseMoveMessage(Engine.Timer.LastTickTime, e.Position));
            Mouse.ButtonDown   += (sender, e) => Engine.CurrentState.MouseButtonDown(new MouseButtonDownMessage(Engine.Timer.LastTickTime, e.Position, MapMouseButton(e.Button)));
            Mouse.ButtonUp     += (sender, e) => Engine.CurrentState.MouseButtonUp(new MouseButtonUpMessage(Engine.Timer.LastTickTime, e.Position, MapMouseButton(e.Button)));
            Mouse.WheelChanged += (sender, e) => Camera.Translate(new Vect3(0, 0, -e.DeltaPrecise));

            Camera = new Camera();
            Camera.Translate(new Vect3(0, 0, 30));
            LoadViews();
        }