public override void UpdateEditor(GameTime gameTime)
        {
            if (WorldViewer.self.ContainsMouse && !WorldViewer.self.MouseOverForm)
            {
                RayCast(gameTime);
            }

            if (MyCamera.get() == null)
            {
                MyCamera.set(FindObject(typeof(Camera2DObject)));
                if (MyCamera.get() != null)
                {
                    if (EditorSelected)
                    {
                        UpdateSelected();
                    }
                }
                else
                {
                    Camera2DObject camera = new Camera2DObject();
                    ParentLevel.AddObject(camera, this);
                    MyCamera.set(camera);
                    camera.Name.set("EditorCamera");
                }
            }

            if (ParentLevel.LevelForEditing)
            {
                base.UpdateEditor(gameTime);
            }
        }
        private void SetCamera()
        {
            Camera2DObject o = (Camera2DObject)MyCamera.get();

            if (o != null)
            {
                DrawCamera = o.MyCamera;
                DrawCamera.SetSize(WindowSize);
            }
        }
Exemplo n.º 3
0
        public override void Update(GameTime gameTime, Window Updater)
        {
            if (ParentScene.MyCamera.get() != null)
            {
                editorCamera = (Camera2DObject)ParentScene.MyCamera.get();
            }

            if (Updater.Size.X != TopRightCorner.X)
            {
                TopRightCorner.X = Updater.Size.X;
                CreateForms(TopRightCorner);
            }

            else if (CurrentMode != LockMode.None)
            {
                if (MouseManager.mouseState.LeftButton == ButtonState.Pressed)
                {
                    if (CurrentMode == LockMode.Scale)
                    {
                        editorCamera.ZoomDistance.add(((MouseManager.MousePosition - MouseLockPosition).X + (MouseManager.MousePosition - MouseLockPosition).Y) * ZoomLock / 1000);
                    }
                    if (CurrentMode == LockMode.Rotate)
                    {
                        editorCamera.Rotation.add(MathHelper.ToRadians(MouseManager.MousePosition.Y - MouseLockPosition.Y));
                    }
                    if (CurrentMode == LockMode.MoveAll)
                    {
                        editorCamera.Position.add((MouseLockPosition - MouseManager.MousePosition) / editorCamera.MyCamera.getZoom());
                    }

                    Mouse.SetPosition((int)MouseLockPosition.X, (int)MouseLockPosition.Y);

                    Updater.NeedsToRedraw = true;
                }
                else
                {
                    CurrentMode = LockMode.None;
                    Game1.self.IsMouseVisible = true;
                }
            }

            base.Update(gameTime, Updater);
        }