//Tick update in game
        protected override void Update(GameTime gameTime)
        {
            var gamepadState  = GamePad.GetState(PlayerIndex.One);
            var keyboardState = Keyboard.GetState();
            var mouseState    = Mouse.GetState();

            if (gamepadState.Buttons.Back == ButtonState.Pressed || Keyboard.GetState().IsKeyDown(Keys.Escape))
            {
                Exit();
            }



            // Create InputEvent and parse to tree
            var mousePressed = (
                mouseState.LeftButton == ButtonState.Pressed ||
                mouseState.RightButton == ButtonState.Pressed ||
                mouseState.MiddleButton == ButtonState.Pressed
                );
            var inputMouse = new InputEventMouse()
            {
                Position = new Vector2(mouseState.X, mouseState.Y) / _aspect,
                Pressed  = mousePressed,
                State    = mouseState,
                Strength = mousePressed ? 1f : 0f
            };

            var keyPressed   = keyboardState.GetPressedKeys().Length > 0;
            var inputKeybard = new InputEventKey()
            {
                Pressed  = keyPressed,
                Strength = keyPressed ? 1f : 0f,
                State    = keyboardState
            };


            //Recurcive process handle
            _root.ProcessRecturcive(gameTime);
            _root.InputRecurcive(inputKeybard);
            _root.InputRecurcive(inputMouse);
            _root.AddChildRequrciveProcess();
            Node.FreeProcess(gameTime);

            base.Update(gameTime);
        }