private void KinectScrollViewerHandPointersUpdated(object sender, EventArgs e) { var kinectRegion = (KinectRegion)sender; var primaryHandPointer = kinectRegion.HandPointers.FirstOrDefault(hp => hp.IsPrimaryHandOfPrimaryUser); if (primaryHandPointer == null) { return; } if (primaryHandPointer.HandEventType == HandEventType.Grip) { if (this.capturedHandPointer == primaryHandPointer) { return; } //Grip ocorre aqui this.grippedHandpointer = primaryHandPointer; return; } if (this.grippedHandpointer == primaryHandPointer && primaryHandPointer.HandEventType == HandEventType.GripRelease) { this.grippedHandpointer = null; } }
/// <summary> /// Helper to get how far the thumb needs to move to be at the /// hand pointer position. /// </summary> /// <param name="kinectHandPointer">Hand pointer to check</param> /// <returns>How far the thumb control needs to move</returns> private Vector GetDragDelta(HandPointer kinectHandPointer) { var handPointerRelativeToGripEventTarget = kinectHandPointer.GetPosition(this.gripEventTarget); var thumbRelativeToGripEventTarget = this.TranslatePoint(new Point(this.ActualWidth / 2.0, this.ActualHeight / 2.0), this.gripEventTarget); return(handPointerRelativeToGripEventTarget - thumbRelativeToGripEventTarget); }
/// <summary> /// Initialise Data for customer. /// </summary> public void InitiateData() { customerSizeX = transform.lossyScale.x * 0.275f; customerSizeZ = transform.lossyScale.z * 0.275f; waitTiming = Random.Range((waitTiming / 2), waitTiming); anim = GetComponent <Animator>(); SetAnim(idle, false); SetAnim(walking, true); leavingState = LeavingStates.phase1; fightPositions = (FightPositions)customerId; dodge = false; audio = GetComponent <AudioSource>(); var spawnPos = CustomerSpawner.Instance.spawnPoint.position; leavingPosition = new Vector3(spawnPos.x + customerSizeX * 0.75f, spawnPos.y, spawnPos.z + customerSizeZ); var hands = PauseManager.Instance.GetComponentsInChildren <HandPointer>(); foreach (var hand in hands) { if (hand.currentHand == HandPointer.Hands.left) { playerLHand = hand; } else if (hand.currentHand == HandPointer.Hands.right) { playerRHand = hand; } } CalculateDir(); InitiateColor(); AllowHover(false); }
private void OnHandPointerGotCapture(object sender, HandPointerEventArgs e) { if (capturedHandPointer == null) { capturedHandPointer = e.HandPointer; e.Handled = true; } }
private void HandPointerLostCaptureEvent(object sender, HandPointerEventArgs e) { if (capturedHandPointer == e.HandPointer) { capturedHandPointer = null; e.Handled = true; } }
private void OnHandPointerLostCapture(object sender, HandPointerEventArgs handPointerEventArgs) { if (this.capturedHandPointer == handPointerEventArgs.HandPointer) { this.capturedHandPointer = null; ReleaseGrip(); } }
private void OnHandPointerLostCapture(object sender, HandPointerEventArgs kinectHandPointerEventArgs) { if (this.capturedHandPointer == kinectHandPointerEventArgs.HandPointer) { this.capturedHandPointer = null; this.lastGripStatus = GripState.Released; kinectHandPointerEventArgs.Handled = true; } }
private void OnHandPointerCaptured(object sender, HandPointerEventArgs kinectHandPointerEventArgs) { if (this.capturedHandPointer != null) { this.capturedHandPointer.Capture(null); } this.capturedHandPointer = kinectHandPointerEventArgs.HandPointer; kinectHandPointerEventArgs.Handled = true; }
private void OnHandPointerLeave(object sender, HandPointerEventArgs e) { if (this.activeHandpointer != e.HandPointer) { return; } this.activeHandpointer = null; this.IsHandPointerOver = false; }
private void OnHandPointerEnter(object sender, HandPointerEventArgs e) { if (!e.HandPointer.IsPrimaryHandOfUser || !e.HandPointer.IsPrimaryUser) { return; } this.activeHandpointer = e.HandPointer; this.IsHandPointerOver = true; }
private void OnHandPointerCaptured(object sender, HandPointerEventArgs handPointerEventArgs) { if (this.capturedHandPointer != null) { // Release capture on any previous captured handpointer this.capturedHandPointer.Capture(null); } this.capturedHandPointer = handPointerEventArgs.HandPointer; handPointerEventArgs.Handled = true; }
private void HandPointerPressEvent(object sender, HandPointerEventArgs e) { if (capturedHandPointer == null && e.HandPointer.IsPrimaryHandOfUser && e.HandPointer.IsPrimaryHandOfUser) { if (e.HandPointer.GetIsOver(back)) { e.HandPointer.Capture(back); capturedHandPointer = e.HandPointer; e.Handled = true; } } }
private void OnHandPointerEnter(object sender, HandPointerEventArgs kinectHandPointerEventArgs) { if (kinectHandPointerEventArgs.HandPointer.IsPrimaryHandOfUser && kinectHandPointerEventArgs.HandPointer.IsPrimaryUser) { kinectHandPointerEventArgs.Handled = true; if (this.grippedHandpointer == kinectHandPointerEventArgs.HandPointer) { this.HandleHandPointerGrip(kinectHandPointerEventArgs.HandPointer); this.grippedHandpointer = null; } } }
private void KinectRegion_HandPointersUpdated(object sender, System.EventArgs e) { HandPointer[] handPointers = new HandPointer[KinectState.Instance.KinectRegion.HandPointers.Count]; KinectState.Instance.KinectRegion.HandPointers.CopyTo(handPointers, 0); long timestampOfLastUpdate = long.MinValue; foreach (HandPointer handPointer in handPointers) { timestampOfLastUpdate = System.Math.Max(handPointer.TimestampOfLastUpdate, timestampOfLastUpdate); } ThreadPool.QueueUserWorkItem(new WaitCallback(o => HandPointersCallback(timestampOfLastUpdate, handPointers))); }
private void HandPointerLeaveEvent(object sender, HandPointerEventArgs e) { if (!e.HandPointer.GetIsOver(back) && e.HandPointer.IsPrimaryHandOfUser) { VisualStateManager.GoToState(back, "Normal", true); } if (capturedHandPointer == e.HandPointer) { capturedHandPointer = null; e.Handled = true; } }
public override void OnHandPointerGripRelease(HandPointer grippedHandpointer, System.Windows.Point startGripPoint, System.Windows.Point endGripPoint) { System.Windows.Point diffVector = (System.Windows.Point)(endGripPoint - startGripPoint); if (Math.Abs(diffVector.X / diffVector.Y) > 2.0) { page.performMove(diffVector.X < 0 ? GameManager.Direction.LEFT : GameManager.Direction.RIGHT); } else if (Math.Abs(diffVector.Y / diffVector.X) > 2.0) { page.performMove(diffVector.Y < 0 ? GameManager.Direction.UP : GameManager.Direction.DOWN); } }
private void OnHandPointerEnter(object sender, HandPointerEventArgs e) { if (!e.HandPointer.IsPrimaryHandOfUser || !e.HandPointer.IsPrimaryUser) { return; } this.activeHandpointer = e.HandPointer; this.IsHandPointerOver = true; if (hoverOnly) { this.repeatTimer.Start(); } }
private void HandPointerLeaveEvent(object sender, HandPointerEventArgs e) { if (!e.HandPointer.GetIsOver(btnCancelLogin) && e.HandPointer.IsPrimaryHandOfUser) { VisualStateManager.GoToState(btnCancelLogin, "Normal", true); } if (!e.HandPointer.GetIsOver(btnLogin) && e.HandPointer.IsPrimaryHandOfUser) { VisualStateManager.GoToState(btnLogin, "Normal", true); } if (!e.HandPointer.GetIsOver(textBoxUsername) && e.HandPointer.IsPrimaryHandOfUser) { VisualStateManager.GoToState(textBoxUsername, "Normal", true); } if (!e.HandPointer.GetIsOver(passwordBox) && e.HandPointer.IsPrimaryHandOfUser) { VisualStateManager.GoToState(passwordBox, "Normal", true); } try { if (!e.HandPointer.GetIsOver((Button)sender) && e.HandPointer.IsPrimaryHandOfUser) { VisualStateManager.GoToState((Button)sender, "Normal", true); Button button = (Button)sender; button.RenderTransformOrigin = new Point(0.5, 0.5); ScaleTransform scaleTransform = new ScaleTransform { ScaleX = 1, ScaleY = 1 }; TransformGroup transformGroup = new TransformGroup(); transformGroup.Children.Add(scaleTransform); button.RenderTransform = transformGroup; } } catch (Exception) { } if (capturedHandPointer == e.HandPointer) { capturedHandPointer = null; e.Handled = true; } }
private void OnHandMove(object source, HandPointerEventArgs args) { //Double.Parse(this.rowCanvas.Height.Value.ToString()) HandPointer ptr = args.HandPointer; if (this.isGrip) { Point j1P = kinectRegion.PointToScreen(ptr.GetPosition(kinectRegion)); if (j1P.X >= this.paint.Margin.Left && j1P.X <= Screen.PrimaryScreen.Bounds.Width && j1P.Y >= this.paint.Margin.Top && j1P.Y <= Screen.PrimaryScreen.Bounds.Height) { // ptr.IsInGripInteraction = true; this.paint.Children.Add(this.ctl.paintCanvas(j1P, this.colorSelec.Background)); } } }
/// <summary> /// Lost capture event handler. /// </summary> /// <param name="sender">The sender.</param> /// <param name="kinectHandPointerEventArgs">The kinect hand pointer event arguments.</param> private void OnHandPointerLostCapture(object sender, HandPointerEventArgs kinectHandPointerEventArgs) { if (this.capturedHandPointer == kinectHandPointerEventArgs.HandPointer) { this.capturedHandPointer = null; this.IsDragging = false; var delta = this.GetDragDelta(kinectHandPointerEventArgs.HandPointer); var e = new DragCompletedEventArgs(delta.X, delta.Y, false); this.RaiseEvent(e); this.ChangeVisualState(true); kinectHandPointerEventArgs.Handled = true; } }
private void HandPointerPressEvent(object sender, HandPointerEventArgs e) { if (capturedHandPointer == null && e.HandPointer.IsPrimaryHandOfUser) { if (e.HandPointer.GetIsOver(btnCancelLogin)) { e.HandPointer.Capture(btnCancelLogin); capturedHandPointer = e.HandPointer; e.Handled = true; } else if (e.HandPointer.GetIsOver(btnLogin)) { e.HandPointer.Capture(btnLogin); capturedHandPointer = e.HandPointer; e.Handled = true; } else if (e.HandPointer.GetIsOver(textBoxUsername)) { e.HandPointer.Capture(textBoxUsername); capturedHandPointer = e.HandPointer; e.Handled = true; } else if (e.HandPointer.GetIsOver(passwordBox)) { e.HandPointer.Capture(passwordBox); capturedHandPointer = e.HandPointer; e.Handled = true; } else { try { if (e.HandPointer.GetIsOver((Button)sender)) { e.HandPointer.Capture((Button)sender); capturedHandPointer = e.HandPointer; e.Handled = true; } } catch (Exception) { } } } }
//Update Area Colliders void UpdateAreaColliders() { //switch current area collider to a trigger if (currentWave > 0) { BoxCollider areaCollider = EnemyWaves [currentWave - 1].AreaCollider; if (areaCollider != null) { areaCollider.enabled = true; areaCollider.isTrigger = true; AreaColliderTrigger act = areaCollider.gameObject.AddComponent <AreaColliderTrigger> (); act.EnemyWaveSystem = this; } } //set next collider as camera area restrictor if (EnemyWaves[currentWave].AreaCollider != null) { EnemyWaves[currentWave].AreaCollider.gameObject.SetActive(true); } //LETHAL FORCES - set back collider as area restrictor if (EnemyWaves[currentWave].BackAreaCollider != null) { EnemyWaves[currentWave].BackAreaCollider.gameObject.SetActive(true); } CameraFollow cf = GameObject.FindObjectOfType <CameraFollow>(); if (cf != null) { cf.CurrentAreaCollider = EnemyWaves [currentWave].AreaCollider; } if (cf != null) { cf.CurrentBackCollider = EnemyWaves [currentWave].BackAreaCollider; //LETHAL FORCES - add backcollider to camera } //show UI hand pointer HandPointer hp = GameObject.FindObjectOfType <HandPointer>(); if (hp != null) { hp.ActivateHandPointer(); } }
//Start a new enemy wave public void StartNewWave() { //hide UI hand pointer HandPointer hp = GameObject.FindObjectOfType <HandPointer>(); if (hp != null) { hp.DeActivateHandPointer(); } //activate enemies foreach (GameObject g in EnemyWaves[currentWave].EnemyList) { if (g != null) { g.SetActive(true); } } Invoke("SetEnemyTactics", .1f); }
/// <summary> /// Capture event handler. /// </summary> /// <param name="sender">The sender.</param> /// <param name="kinectHandPointerEventArgs">The kinect hand pointer event arguments.</param> private void OnHandPointerCaptured(object sender, HandPointerEventArgs kinectHandPointerEventArgs) { // We should only get a capture if we don't already have a hand pointer captured. if (this.capturedHandPointer != null) { return; } this.capturedHandPointer = kinectHandPointerEventArgs.HandPointer; this.IsDragging = true; var delta = this.GetDragDelta(kinectHandPointerEventArgs.HandPointer); var e = new DragStartedEventArgs(delta.X, delta.Y); this.RaiseEvent(e); this.ChangeVisualState(true); kinectHandPointerEventArgs.Handled = true; }
private void OnHandPointerLeave(object sender, HandPointerEventArgs e) { if (!KinectRegion.GetIsPrimaryHandPointerOver(btn_login)) { VisualStateManager.GoToState(btn_login, "Normal", true); } if (!KinectRegion.GetIsPrimaryHandPointerOver(btn_register)) { VisualStateManager.GoToState(btn_register, "Normal", true); } if (!KinectRegion.GetIsPrimaryHandPointerOver(btn_singlePlayer)) { VisualStateManager.GoToState(btn_singlePlayer, "Normal", true); } if (!KinectRegion.GetIsPrimaryHandPointerOver(btn_multiPlayer)) { VisualStateManager.GoToState(btn_multiPlayer, "Normal", true); } if (!KinectRegion.GetIsPrimaryHandPointerOver(btn_loadGame)) { VisualStateManager.GoToState(btn_loadGame, "Normal", true); } if (!KinectRegion.GetIsPrimaryHandPointerOver(btn_highScores)) { VisualStateManager.GoToState(btn_highScores, "Normal", true); } if (!KinectRegion.GetIsPrimaryHandPointerOver(btn_help)) { VisualStateManager.GoToState(btn_help, "Normal", true); } if (!KinectRegion.GetIsPrimaryHandPointerOver(btn_exit)) { VisualStateManager.GoToState(btn_exit, "Normal", true); } if (capturedHandPointer == e.HandPointer) { capturedHandPointer = null; e.Handled = true; } }
private void HandleHandPointerGrip(HandPointer handPointer) { if (handPointer == null) { return; } if (this.capturedHandPointer != handPointer) { if (handPointer.Captured == null) { handPointer.Capture(element); } else { return; } } this.lastGripStatus = GripState.Gripped; this.gripPoint = handPointer.GetPosition(element); }
/// <summary> /// 更新区域碰撞器 /// </summary> void UpdateAreaColliders() { //将当前区域碰撞器切换到触发器 if (currentWave > 0) { BoxCollider areaCollider = EnemyWaves[currentWave - 1].AreaCollider; if (areaCollider != null) { areaCollider.enabled = true; areaCollider.isTrigger = true; AreaColliderTrigger act = areaCollider.gameObject.AddComponent <AreaColliderTrigger>(); act.EnemyWaveSystem = this; } } //将下一个碰撞器设置为相机区域触发器 if (EnemyWaves[currentWave].AreaCollider != null) { EnemyWaves[currentWave].AreaCollider.gameObject.SetActive(true); } CameraFollow cf = GameObject.FindObjectOfType <CameraFollow>(); if (cf != null) { cf.CurrentAreaCollider = EnemyWaves[currentWave].AreaCollider; } //显示UI HandPointer hp = GameObject.FindObjectOfType <HandPointer>(); if (hp != null) { hp.ActivateHandPointer(); } }
private void HandleHandPointerGrip(HandPointer handPointer) { if (handPointer == null) { return; } if (this.capturedHandPointer != handPointer) { if (handPointer.Captured == null) { // Only capture hand pointer if it isn't already captured handPointer.Capture(this); } else { // Some other control has capture, ignore grip return; } } Grip(); this.gripPoint = handPointer.GetPosition(this); }
/// <summary> /// This implements any special interactions with the hand pointer. /// For example, if the hand pointer was to repel or attract this object, /// the code to implement that would go here. /// </summary> /// <param name="pointer"></param> public override void InteractWithHandPointer(HandPointer pointer) { /* Also no interactions with a hand pointer. We'll handle the * button press separately. */ }
/// <summary> /// This implements any special interactions with the hand pointer. /// For example, if the hand pointer was to repel or attract this object, /// the code to implement that would go here. /// </summary> /// <param name="pointer"></param> public override void InteractWithHandPointer(HandPointer pointer) { /* For now, we won't have the hand pointer do anything cool, so we'll * leave this blank. */ }