示例#1
0
        public BomberGame()
        {
            // AddComponent(new FrameRateCounter());
            AddComponent(ComboManager.Instance);
            AddComponent(StateManager.Instance);

            drawer = new Drawer();
            graphics = new GraphicsDeviceManager(this);

            Content.RootDirectory = "Content";

            // Frame rate is 30 fps by default for Windows Phone.
            TargetElapsedTime = TimeSpan.FromTicks(333333);

            StateManager.registerStateChange(
                States.MENU_STATE,
                new StateChangeInfo.StateFunction(startMainMenu),
                new StateChangeInfo.StateFunction(endMainMenu));
            StateManager.registerStateChange(
                States.GAMEPLAY_STATE,
                new StateChangeInfo.StateFunction(startGame),
                new StateChangeInfo.StateFunction(endGame));
            StateManager.registerStateChange(
                States.LEVEL_SELECT_STATE,
                new StateChangeInfo.StateFunction(startLevelSelect),
                new StateChangeInfo.StateFunction(endLevelSelect));
        }
示例#2
0
        protected Axis(Drawer drawer, Diagram diagram)
        {
            this.drawer = drawer;
            this.diagram = diagram;

            MarkerCount = 5;
            Color = Color.White;
        }
        public VisibleFrameCounter(Drawer drawer)
        {
            this.drawer = drawer;

            IsDrawn = true;
            Color = Color.White;
            Alignment = TextAlignment.Near;
            Position = Vector2.Zero;
        }
示例#4
0
        public Graph(Drawer drawer, Diagram diagram, EntryData entryData)
        {
            this.drawer = drawer;
            this.diagram = diagram;
            this.entryData = entryData;

            streamManager = new StreamManager(diagram, entryData);

            IsDrawn = true;
        }
示例#5
0
 public Settings(System.Windows.Forms.PropertyGrid propertyGrid, MainWindow mainWindow, Viewport viewport, Drawer drawer, Timer timer, Diagram diagram, RectangleSelector zoomSelector, RectangleSelector unZoomSelector, Dragger panDragger, VisibleFrameCounter frameCounter)
     : base("Settings")
 {
     this.mainWindow = mainWindow;
     this.viewport = new ViewportSettings("ViewportSettings", viewport);
     this.drawer = new DrawerSettings("DrawerSettings", drawer);
     this.diagram = new DiagramSettings("DiagramSettings", propertyGrid, timer, diagram);
     this.zoomSelector = new RectangleSelectorSettings("ZoomSelectorSettings", zoomSelector);
     this.unZoomSelector = new RectangleSelectorSettings("UnZoomSelectorSettings", unZoomSelector);
     this.panDragger = new DraggerSettings("PanDraggerSettings", panDragger);
     this.frameCounter = new FrameCounterSettings("FrameCounterSettings", frameCounter);
 }
        public RectangleSelector(Drawer drawer, Viewport viewport)
        {
            this.drawer = drawer;

            IsDrawn = true;
            Button = MouseButtons.Left;
            Color = Color.White;
            Width = 1;

            viewport.MouseDown += viewport_MouseDown;
            viewport.MouseUp += viewport_MouseUp;
            viewport.MouseMove += viewport_MouseMove;
        }
示例#7
0
        public MainWindow(Parameters parameters)
        {
            Console.WriteLine("Initializing graphics and user interface...");
            InitializeComponent();

            Text = title;

            this.parameters = parameters;

            this.drawer = new Drawer(viewport);

            this.timer = new Data.Timer();

            this.diagram = CreateDiagram(viewport, drawer, timer, parameters);

            this.zoomSelector = new RectangleSelector(drawer, viewport);
            this.zoomSelector.Button = MouseButtons.Left;
            this.zoomSelector.Color = System.Drawing.Color.White;
            this.zoomSelector.EndSelect += zoomSelector_Select;

            this.unZoomSelector = new RectangleSelector(drawer, viewport);
            this.unZoomSelector.Button = MouseButtons.Middle;
            this.unZoomSelector.Color = System.Drawing.Color.Blue;
            this.unZoomSelector.EndSelect += unZoomSelector_Select;

            this.panDragger = new Dragger(viewport);
            this.panDragger.Button = MouseButtons.Right;
            this.panDragger.Drag += panDragger_Drag;
            this.panDragger.EndDrag += panDragger_EndDrag;

            this.frameCounter = new VisibleFrameCounter(drawer);
            this.frameCounter.Color = System.Drawing.Color.Yellow;
            this.frameCounter.Alignment = TextAlignment.Far;

            this.coordinateLabel = new CoordinateLabel(coordinateStatusLabel, viewport, diagram);

            NewSession(parameters.PortStrings);

            if (parameters.MinimalMode != null) MinimalMode = parameters.MinimalMode.Value;

            this.settings = new Settings(properties, this, viewport, drawer, timer, diagram, zoomSelector, unZoomSelector, panDragger, frameCounter);
            if (System.IO.File.Exists(SettingsPath)) this.settings.XElement = XElement.Load(SettingsPath);
            properties.SelectedObject = settings;

            viewport.AddComponent(diagram);
            viewport.AddComponent(zoomSelector);
            viewport.AddComponent(unZoomSelector);
            viewport.AddComponent(frameCounter);
            viewport.AddComponent(coordinateLabel);
        }
示例#8
0
        static Diagram CreateDiagram(Viewport viewport, Drawer drawer, Data.Timer timer, Parameters parameters)
        {
            Diagram diagram = new Diagram();

            diagram.Graphs = new List<Graph>();

            diagram.GraphSettings = new GraphSettings();
            if (parameters.ExtendGraphs != null) diagram.GraphSettings.ExtendGraphs = parameters.ExtendGraphs.Value;
            if (parameters.LineWidth != null) diagram.GraphSettings.LineWidth = parameters.LineWidth.Value;

            switch (parameters.TimeManagerType)
            {
                case TimeManagerType.Continuous:
                    diagram.TimeManager = new ContinuousTimeManager(timer);
                    break;
                case TimeManagerType.Shiftting:
                    diagram.TimeManager = new ShiftingTimeManager(timer);
                    if (parameters.TimeManagerParameter != null) ((ShiftingTimeManager)diagram.TimeManager).ShiftLength = parameters.TimeManagerParameter.Value;
                    break;
                case TimeManagerType.Wrapping:
                    diagram.TimeManager = new WrappingTimeManager(timer);
                    if (parameters.TimeManagerParameter != null) ((WrappingTimeManager)diagram.TimeManager).GapLength = parameters.TimeManagerParameter.Value;
                    break;
                default: throw new InvalidOperationException();
            }
            if (parameters.DiagramWidth != null) diagram.TimeManager.Width = parameters.DiagramWidth.Value;

            switch (parameters.ValueManagerType)
            {
                case ValueManagerType.Fitting:
                    diagram.ValueManager = new FittingValueManager(diagram);
                    break;
                case ValueManagerType.Fixed:
                    diagram.ValueManager = new FixedValueManager();
                    if (parameters.ValueRange != null) ((FixedValueManager)diagram.ValueManager).FixedRange = parameters.ValueRange.Value;
                    break;
                default: throw new InvalidOperationException();
            }

            diagram.DataManager = new PerPixelDataManager(diagram);
            if (parameters.ClearData != null) diagram.DataManager.ClearData = parameters.ClearData.Value;

            diagram.AxisX = new AxisX(drawer, diagram);
            if (parameters.MarkerCountX != null) diagram.AxisX.MarkerCount = parameters.MarkerCountX.Value;
            if (parameters.DiagramColor != null) diagram.AxisX.Color = parameters.DiagramColor.Value;

            diagram.AxisY = new AxisY(drawer, diagram);
            if (parameters.MarkerCountY != null) diagram.AxisY.MarkerCount = parameters.MarkerCountY.Value;
            if (parameters.DiagramColor != null) diagram.AxisY.Color = parameters.DiagramColor.Value;

            diagram.Layouter = new Layouter(viewport, diagram.AxisX, diagram.AxisY);

            return diagram;
        }
示例#9
0
 public DrawerSettings(string xElementName, Drawer drawer)
     : base(xElementName)
 {
     this.drawer = drawer;
 }
示例#10
0
 public AxisY(Drawer drawer, Diagram diagram)
     : base(drawer, diagram)
 {
 }