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); }
private void EndMouseOperation() { this.mGotMouseDown = LeftMouseButton.IsNotClicked; this.mCurrentMouseHandler = null; // Re-enable the data model. CanvasViewModel.DocumentViewModel.dm_DocumentDataModel.EndOperation("CanvasView mouse operation"); }
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"); }
// 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(); } }