示例#1
0
        private KeyEventInfo CreateKeyState()
        {
            var keyInfo = new KeyEventInfo();

            keyInfo.KeyShift = ImGui.GetIO().KeyShift;
            keyInfo.KeyCtrl  = ImGui.GetIO().KeyCtrl;
            keyInfo.KeyAlt   = ImGui.GetIO().KeyAlt;
            return(keyInfo);
        }
        public void OnMouseWheel(MouseEventInfo e, KeyEventInfo k)
        {
            if (previousMouseWheel == 0)
            {
                previousMouseWheel = e.WheelPrecise;
            }

            e.Delta = e.WheelPrecise - previousMouseWheel;
            _context.Camera.Controller.MouseWheel(e, k);
            previousMouseWheel = e.WheelPrecise;
        }
        private KeyEventInfo CreateKeyState()
        {
            var keyInfo = new KeyEventInfo();

            keyInfo.KeyShift = ImGui.GetIO().KeyShift;
            keyInfo.KeyCtrl  = ImGui.GetIO().KeyCtrl;
            keyInfo.KeyAlt   = ImGui.GetIO().KeyAlt;

            if (Keyboard.GetState().IsKeyDown(Key.W))
            {
                keyInfo.KeyChars.Add("w");
            }
            if (Keyboard.GetState().IsKeyDown(Key.A))
            {
                keyInfo.KeyChars.Add("a");
            }
            if (Keyboard.GetState().IsKeyDown(Key.S))
            {
                keyInfo.KeyChars.Add("s");
            }
            if (Keyboard.GetState().IsKeyDown(Key.D))
            {
                keyInfo.KeyChars.Add("d");
            }
            if (Keyboard.GetState().IsKeyDown(Key.X))
            {
                keyInfo.KeyChars.Add("x");
            }
            if (Keyboard.GetState().IsKeyDown(Key.Y))
            {
                keyInfo.KeyChars.Add("y");
            }
            if (Keyboard.GetState().IsKeyDown(Key.Z))
            {
                keyInfo.KeyChars.Add("z");
            }
            if (Keyboard.GetState().IsKeyDown(Key.Space))
            {
                keyInfo.KeyChars.Add("space");
            }

            return(keyInfo);
        }
        public void OnMouseMove(MouseEventInfo e, KeyEventInfo k, OpenTK.Vector2 refPos)
        {
            _context.OnMouseMove(e);

            int transformState = 0;

            if (_context.Scene.ActiveAction != null)
            {
                transformState = _context.Scene.ActiveAction.OnMouseMove(_context, e);
            }

            if (transformState != 0)
            {
                return;
            }

            _context.Camera.Controller.MouseMove(e, k, refPos);
            e.FullPosition = new Point((int)refPos.X, (int)refPos.Y);
        }
        public void OnMouseDown(MouseEventInfo e, KeyEventInfo k)
        {
            _context.OnMouseDown(e);

            if (_context.Scene.ActiveAction != null)
            {
                var state = _context.Scene.ActiveAction.OnMouseDown(_context, e);
                if (state != 0)
                {
                    return;
                }
            }

            if (e.LeftButton == ButtonState.Pressed)
            {
                PickScene(e, true);
            }

            _context.Camera.Controller.MouseClick(e, k);
        }
示例#6
0
        public override void OnKeyPress(KeyEventInfo e)
        {
            if (e.Pressed)
            {
                switch (e.Key)
                {
                case ConsoleKey.Q:
                {
                    showDebug = !showDebug;
                }
                break;

                case ConsoleKey.H:
                {
                    showHelp = !showHelp;
                }
                break;

                case ConsoleKey.D1:
                {
                    ChangePaintColors(new Colors(Colors.Color.Default, Colors.Color.Red), new Colors(Colors.Color.Default, Colors.Color.DarkRed));
                    highlight.Coords.X = 13;
                    highlight.Text     = "(1)";
                }
                break;

                case ConsoleKey.D2:
                {
                    ChangePaintColors(new Colors(Colors.Color.Default, Colors.Color.Yellow), new Colors(Colors.Color.Default, Colors.Color.DarkYellow));
                    highlight.Coords.X = 21;
                    highlight.Text     = "(2)";
                }
                break;

                case ConsoleKey.D3:
                {
                    ChangePaintColors(new Colors(Colors.Color.Default, Colors.Color.Green), new Colors(Colors.Color.Default, Colors.Color.DarkGreen));
                    highlight.Coords.X = 29;
                    highlight.Text     = "(3)";
                }
                break;

                case ConsoleKey.D4:
                {
                    ChangePaintColors(new Colors(Colors.Color.Default, Colors.Color.Cyan), new Colors(Colors.Color.Default, Colors.Color.DarkCyan));
                    highlight.Coords.X = 37;
                    highlight.Text     = "(4)";
                }
                break;

                case ConsoleKey.D5:
                {
                    ChangePaintColors(new Colors(Colors.Color.Default, Colors.Color.Blue), new Colors(Colors.Color.Default, Colors.Color.DarkBlue));
                    highlight.Coords.X = 45;
                    highlight.Text     = "(5)";
                }
                break;

                case ConsoleKey.D6:
                {
                    ChangePaintColors(new Colors(Colors.Color.Default, Colors.Color.Magenta), new Colors(Colors.Color.Default, Colors.Color.DarkMagenta));
                    highlight.Coords.X = 53;
                    highlight.Text     = "(6)";
                }
                break;

                case ConsoleKey.D7:
                {
                    ChangePaintColors(new Colors(Colors.Color.Default, Colors.Color.Gray), new Colors(Colors.Color.Default, Colors.Color.DarkGray));
                    highlight.Coords.X = 61;
                    highlight.Text     = "(7)";
                }
                break;

                case ConsoleKey.D8:
                {
                    ChangePaintColors(new Colors(Colors.Color.Default, Colors.Color.White), new Colors(Colors.Color.Default, Colors.Color.Black));
                    highlight.Coords.X = 69;
                    highlight.Text     = "(8)";
                }
                break;

                case ConsoleKey.Enter:
                {
                    string output = JsonConvert.SerializeObject(paintPixels /*, Formatting.Indented*/);

                    if (!Directory.Exists("./temp"))
                    {
                        Directory.CreateDirectory("./temp");
                    }

                    FileInfo fi = new FileInfo(Environment.CurrentDirectory + "/temp/draving.json");

                    if (fi.Exists)
                    {
                        fi.Delete();
                    }

                    using (StreamWriter sw = fi.CreateText())
                    {
                        sw.Write(output);
                    }

                    if (File.Exists("./save.tp"))
                    {
                        File.Delete("./save.tp");
                    }

                    ZipFile.CreateFromDirectory("./temp", "./save.tp", CompressionLevel.Fastest, false);

                    if (Directory.Exists("./temp"))
                    {
                        Directory.Delete("./temp", true);
                    }

                    justSaved = true;
                }
                break;

                case ConsoleKey.Spacebar:
                {
                    string input = "";

                    if (!File.Exists("./save.tp"))
                    {
                        return;
                    }

                    if (Directory.Exists("./temp"))
                    {
                        Directory.Delete("./temp", true);
                    }

                    ZipFile.ExtractToDirectory("./save.tp", "./temp");

                    var fi = new FileInfo("./temp/draving.json");

                    if (!fi.Exists)
                    {
                        return;
                    }

                    using (StreamReader sw = fi.OpenText())
                    {
                        input = sw.ReadToEnd();
                    }

                    if (Directory.Exists("./temp"))
                    {
                        Directory.Delete("./temp", true);
                    }

                    paintPixels = JsonConvert.DeserializeObject <List <PaintPixel> >(input);

                    justLoaded = true;
                }
                break;

                case ConsoleKey.Escape:
                {
                    this.Stop();
                }
                break;
                }
            }
        }