Beispiel #1
0
        public void Update()
        {
            //Keyboard
            //var keysDown = kbNew.PressedKeys;
            //KeysUp = kbNew.AllKeys.Except(keysDown).Select(x => (Keys)x).ToArray();
            //KeysDown = keysDown.Select(x => (Keys)x).ToArray();
            //KeysWentDown = kbNew.PressedKeys.Where(x => !kbOld.PressedKeys.Contains(x)).Select(x => (Keys)x).ToArray();
            //KeysWentUp = kbOld.PressedKeys.Where(x => !kbNew.PressedKeys.Contains(x)).Select(x => (Keys)x).ToArray();

            Array.Copy(kbNew, kbOld, kbNew.Length);
            WinAPI.GetKeyboardState(kbNew);
            kbNew = kbNew.Select(x => (int)(x & 0x80) != 0 ? (byte)1 : (byte)0).ToArray();

            KeysDown     = allKeys.Where(x => kbNew[(int)x] != 0).ToArray();
            KeysUp       = allKeys.Except(KeysDown).ToArray();
            KeysWentDown = allKeys.Where(x => kbOld[(int)x] == 0 && kbNew[(int)x] != 0).ToArray();
            KeysWentUp   = allKeys.Where(x => kbOld[(int)x] != 0 && kbNew[(int)x] == 0).ToArray();

            //Mouse
            var newPos = new Vector2(Cursor.Position.X, Cursor.Position.Y);

            MouseMoveDist = newPos - MousePos;
            MousePos      = newPos;

            LeftMouseButton.UpdateState(kbNew[(int)Keys.LButton] != 0);
            MiddleMouseButton.UpdateState(kbNew[(int)Keys.MButton] != 0);
            RightMouseButton.UpdateState(kbNew[(int)Keys.RButton] != 0);
            XMouseButton1.UpdateState(kbNew[(int)Keys.XButton1] != 0);
            XMouseButton2.UpdateState(kbNew[(int)Keys.XButton2] != 0);
        }
Beispiel #2
0
        private void EndMouseOperation()
        {
            this.mGotMouseDown        = LeftMouseButton.IsNotClicked;
            this.mCurrentMouseHandler = null;

            // Re-enable the data model.
            CanvasViewModel.DocumentViewModel.dm_DocumentDataModel.EndOperation("CanvasView mouse operation");
        }
Beispiel #3
0
        private void BeginMouseOperation()
        {
            //// DebugUtilities.Assert(_gotMouseDown == false, "beginMouseOperation called when already in mouse operation");
            this.mGotMouseDown = LeftMouseButton.IsClicked;

            // Use the handler specified on Model, if not null. Otherwise, use ourself
            // Default is the ICanvasViewMouseHandler interface implementation of the CanvasView
            this.mCurrentMouseHandler = this.CanvasViewModel.CanvasViewMouseHandler != null ?
                                        this.CanvasViewModel.CanvasViewMouseHandler : this;

            // Don't create undo states at every drag update.
            this.CanvasViewModel.DocumentViewModel.dm_DocumentDataModel.BeginOperation("CanvasView mouse operation");
        }
Beispiel #4
0
    // Update is called once per frame
    void Update()
    {
        if (GameState.asteroid.tag != "Hub" && GameState.asteroid.tag != "Asteroid")
        {
            //print ("RESET");
            GameState.ResetGame();
        }

        conditionMet = false;
        switch (currentRequirement)
        {
        default:
            Debug.LogError("Requirement Not Valid!");
            break;

        case Requirement.none:
            conditionMet = nextStage;
            break;

        case Requirement.move:
            if (KeysButton != null)
            {
                KeysButton.SetActive(true);

                KeysButton.transform.eulerAngles = Vector3.zero;
                KeysButton.transform.position    = KeysButton.transform.parent.position + new Vector3(1.4f, 0.8f);
            }
            //	canMove = true;
            if (Input.GetAxisRaw("Horizontal") != 0 || Input.GetAxisRaw("Vertical") != 0)
            {
                timeSpentMoving += Time.unscaledDeltaTime;
            }

            if (timeSpentMoving >= 2f)
            {
                conditionMet = true;
                KeysButton.SetActive(false);
                timeSpentMoving = 0f;
                if (KeysButton != null)
                {
                    KeysButton.GetComponent <Animator>().SetTrigger("Kill");
                }
            }
            break;

        case Requirement.manualJump:
            if (LeftMouseButton != null)
            {
                LeftMouseButton.SetActive(true);
                LeftMouseButton.transform.eulerAngles = Vector3.zero;
                LeftMouseButton.transform.position    = LeftMouseButton.transform.parent.position + new Vector3(1.4f, 0.8f);
            }
            if (GameState.asteroid.tag != "Hub")
            {
                conditionMet = true;
                LeftMouseButton.SetActive(false);
                if (LeftMouseButton != null)
                {
                    LeftMouseButton.GetComponent <Animator>().SetTrigger("Kill");
                }
            }
            break;

        case Requirement.openMap:
            if (LeftMouseButton != null)
            {
                LeftMouseButton.SetActive(true);
                LeftMouseButton.transform.eulerAngles = Vector3.zero;
                LeftMouseButton.transform.position    = LeftMouseButton.transform.parent.position + new Vector3(1.4f, 0.8f);
            }

            if (GameState.mapOpen)
            {
                if (LeftMouseButton != null)
                {
                    LeftMouseButton.SetActive(false);
                }
                conditionMet = true;
                if (LeftMouseButton != null)
                {
                    LeftMouseButton.GetComponent <Animator>().SetTrigger("Kill");
                }
            }
            break;

        case Requirement.planJump:
            if (LeftMouseButton != null)
            {
                LeftMouseButton.SetActive(true);
                LeftMouseButton.transform.eulerAngles = Vector3.zero;
                LeftMouseButton.transform.position    = LeftMouseButton.transform.parent.position + new Vector3(1.4f, 0.8f);
            }

            if (pathMaker.path.Count > 0)
            {
                conditionMet = true;
                if (LeftMouseButton != null)
                {
                    LeftMouseButton.SetActive(false);
                }
            }
            break;

        case Requirement.closeMap:
            if (LeftMouseButton != null)
            {
                LeftMouseButton.SetActive(true);
                LeftMouseButton.transform.eulerAngles = Vector3.zero;
                LeftMouseButton.transform.position    = LeftMouseButton.transform.parent.position + new Vector3(1.4f, 0.8f);
            }

            if (!GameState.mapOpen)
            {
                conditionMet = true;
                if (LeftMouseButton != null)
                {
                    LeftMouseButton.SetActive(false);
                }
            }
            break;

        case Requirement.eatFood:
            if (GameState.hunger == GameState.maxHunger && timeSinceLastStage >= 1f)
            {
                conditionMet = true;
            }
            break;

        case Requirement.collectScrap:

            break;

        case Requirement.pickupSeed:
            if (GameState.player.transform.Find("GreenPollen") != null)
            {
                conditionMet = true;
            }
            break;

        case Requirement.depositSeed:
            if (plant == null)
            {
                conditionMet = true;
            }
            break;

        case Requirement.returnToHub:
            if (GameState.asteroid.tag == "Hub")
            {
                conditionMet = true;
            }
            break;
        }

        timeSinceLastStage += Time.unscaledDeltaTime;

        playerMove.canMove       = canMove;
        camScroll.enabled        = canZoom;
        playerJump.enabled       = canJump;
        pathMaker.tutorialAllows = canPlanJump;


        if (conditionMet)
        {
            NextStage();
        }
    }