Beispiel #1
0
        protected override void OnMouseDown(object sender, MouseButtonEventArgs e)
        {
            if (!Enabled || Time <= 0.05f)
            {
                return;
            }

            System.Numerics.Vector2 pos = MainWindow.ScreenToCoord(e.X, e.Y, Window.Width, Window.Height) / Scale;
            if (e.Button == MouseButton.Left)
            {
                bool s = false;
                if (_pObjs.Count > 0)
                {
                    var list = (from obj in _pObjs
                                where (obj.PObject.Position - pos).LengthSquared() < SelectRadius * SelectRadius
                                orderby(obj.PObject.Position - pos).LengthSquared()
                                select obj).ToArray();
                    if (list.Length > 0)
                    {
                        s         = true;
                        _selected = list[0];
                    }
                }
                if (!s)
                {
                    MovableObject obj = new MovableObject(pos);
                    var           rpo = new RPhysicalObject(obj, Window.ColoredProgram);
                    _pObjs.Add(rpo);
                    _selected = rpo;
                    Console.WriteLine($"Added object at {pos}");
                }
                _selectMarker.Position = new Vector3(_selected.PObject.Position.X, _selected.PObject.Position.Y, 0f) * Scale;
            }
        }
Beispiel #2
0
 public override void Initialize()
 {
     Time = 0f;
     foreach (RPhysicalObject obj in _pObjs)
     {
         obj.Dispose();
     }
     _selected = null;
     _pObjs.Clear();
     _lines.Clear();
 }