Exemple #1
0
 private void ReleaseMouseEventHandler(object sender, MouseButtonEventArgs e)
 {
     if (IsHoldingMouse)
     {
         Logic.StopDrag(selectedShape);
         FollowMouseTimer.Stop();
         IsHoldingMouse = false;
         Logic.UneffectedShapes.Remove(selectedShape);
         selectedShape = null;
     }
 }
Exemple #2
0
        public MainWindow()
        {
            InitializeComponent();

            SetMouseEvents();
            SetUiElements();
            CreateLogic();
            SetRenderTimer(60);
            SetFollowMouseTimer();

            Logic.TimerSwitch = true;


            void SetMouseEvents()
            {
                PreviewMouseDown += HoldMouseEventHandler;
                PreviewMouseUp   += ReleaseMouseEventHandler;
            }

            void SetUiElements()
            {
                var c1 = new WpfCircle(50);
                var c2 = new WpfCircle(50);

                Cnvs.Children.Add(c1.Ellipse);
                Cnvs.Children.Add(c2.Ellipse);

                entities = new List <WpfCircle>()
                {
                    c1, c2
                };
            }

            void CreateLogic()
            {
                Logic = new PhysicsLogic(GetScreenWidth, GetScreenHeight, entities.ToArray());
            }

            void SetFollowMouseTimer()
            {
                FollowMouseTimer          = new DispatcherTimer(DispatcherPriority.Send);
                FollowMouseTimer.Tick    += FollowMouseTick;
                FollowMouseTimer.Interval = TimeSpan.FromMilliseconds(16);
            }

            void SetRenderTimer(int ticksPerSecond)
            {
                RenderUiTimer          = new DispatcherTimer(DispatcherPriority.Send);
                RenderUiTimer.Tick    += Draw;
                RenderUiTimer.Interval = TimeSpan.FromMilliseconds(1000 / ticksPerSecond);
                RenderUiTimer.Start();
            }
        }
Exemple #3
0
 private void HoldMouseEventHandler(object sender, MouseButtonEventArgs e)
 {
     foreach (var s in entities)
     {
         if (s.Ellipse.IsMouseOver)
         {
             IsHoldingMouse = true;
             FollowMouseTimer.Start();
             selectedShape = s;
             Logic.UneffectedShapes.Add(s);
             return;
         }
     }
 }