Beispiel #1
0
        void CheckTapInput(GameTime gameTime)
        {
            // jump on two finger tap
            touches = TouchPanel.GetState();

            // reduce speed if no input has been given in a while
            timeSinceLastHit += gameTime.ElapsedGameTime.Milliseconds;
            if (timeSinceLastHit > currentTolerance)
            {
                currentRunningSpeed--;
                timeSinceLastHit = 0f;
            }

            if (!player.IsGrounded)
            {
                previousDrumSide = DrumSide.side.NONE;
                return;
            }

            if (touches.Count == 1 && touches[0].State == TouchLocationState.Pressed)
            {
                if (CheckDrumHit(touches, leftDrum) && (previousDrumSide != DrumSide.side.LEFT || previousDrumSide == DrumSide.side.NONE))
                {
                    bongo1.Play();
                    //if (CheckDrumTiming(leftDrum, gameTime))
                    //{
                    //    successCounter++;
                    //    if (successCounter % 10 == 0)
                    //    {
                    //        currentTempo += 1;
                    //        successCounter = 0;
                    //    }
                    //    dino.physics.Velocity -= Vector2.UnitX * 0.1f;
                    //    previousDrumSide = leftDrum.drumSide;
                    //    //player.physics.AddForce(Vector2.UnitX * 2000);
                    //}
                    //else
                    //{
                    //    dino.physics.Velocity += Vector2.UnitX * 0.08f;
                    //}

                    timeSinceLastHit = 0f;
                    currentRunningSpeed++;
                    previousDrumSide = leftDrum.drumSide;
                    dino.transform.Position -= Vector2.UnitX * Math.Max(1, maxRunningSpeed / (currentRunningSpeed));
                }
                else if (CheckDrumHit(touches, rightDrum) && (previousDrumSide != DrumSide.side.RIGHT || previousDrumSide == DrumSide.side.NONE))
                {
                    bongo2.Play();
                    //if (CheckDrumTiming(rightDrum, gameTime))
                    //{
                    //    successCounter++;
                    //    if(successCounter % 10 == 0)
                    //    {
                    //        currentTempo += 2;
                    //        successCounter = 0;
                    //    }
                    //    dino.physics.Velocity -= Vector2.UnitX * 0.1f;
                    //    previousDrumSide = rightDrum.drumSide;
                    //    //player.physics.AddForce(Vector2.UnitX * 2000);
                    //}
                    //else
                    //{
                    //    dino.physics.Velocity += Vector2.UnitX * 0.25f;
                    //}

                    timeSinceLastHit = 0f;
                    currentRunningSpeed++;
                    previousDrumSide = rightDrum.drumSide;
                    dino.transform.Position -= Vector2.UnitX * Math.Max(1, maxRunningSpeed / (currentRunningSpeed));
                }
            }
            else if (touches.Count == 2 && CheckDrumHit(touches, leftDrum, rightDrum)
                && (touches[0].State == TouchLocationState.Pressed || touches[0].State == TouchLocationState.Moved)
                && (touches[1].State == TouchLocationState.Pressed || touches[1].State == TouchLocationState.Moved))
            {
                player.Jump();
            }

            // clamp tempo to maxTempo
            if (currentRunningSpeed > maxRunningSpeed)
                currentRunningSpeed = maxRunningSpeed;
        }
Beispiel #2
0
        void CheckTapInput(GameTime gameTime)
        {
            // jump on two finger tap
            touches = TouchPanel.GetState();

            // reduce speed if no input has been given in a while
            timeSinceLastHit += gameTime.ElapsedGameTime.Milliseconds;
            if (timeSinceLastHit > currentTolerance)
            {
                currentRunningSpeed--;
                timeSinceLastHit = 0f;
            }

            if (!player.IsGrounded)
            {
                previousDrumSide = DrumSide.side.NONE;
                return;
            }

            if (touches.Count == 1 && touches[0].State == TouchLocationState.Pressed)
            {
                if (CheckDrumHit(touches, leftDrum) && (previousDrumSide != DrumSide.side.LEFT || previousDrumSide == DrumSide.side.NONE))
                {
                    bongo1.Play();
                    //if (CheckDrumTiming(leftDrum, gameTime))
                    //{
                    //    successCounter++;
                    //    if (successCounter % 10 == 0)
                    //    {
                    //        currentTempo += 1;
                    //        successCounter = 0;
                    //    }
                    //    dino.physics.Velocity -= Vector2.UnitX * 0.1f;
                    //    previousDrumSide = leftDrum.drumSide;
                    //    //player.physics.AddForce(Vector2.UnitX * 2000);
                    //}
                    //else
                    //{
                    //    dino.physics.Velocity += Vector2.UnitX * 0.08f;
                    //}

                    timeSinceLastHit = 0f;
                    currentRunningSpeed++;
                    previousDrumSide         = leftDrum.drumSide;
                    dino.transform.Position -= Vector2.UnitX * Math.Max(1, maxRunningSpeed / (currentRunningSpeed));
                }
                else if (CheckDrumHit(touches, rightDrum) && (previousDrumSide != DrumSide.side.RIGHT || previousDrumSide == DrumSide.side.NONE))
                {
                    bongo2.Play();
                    //if (CheckDrumTiming(rightDrum, gameTime))
                    //{
                    //    successCounter++;
                    //    if(successCounter % 10 == 0)
                    //    {
                    //        currentTempo += 2;
                    //        successCounter = 0;
                    //    }
                    //    dino.physics.Velocity -= Vector2.UnitX * 0.1f;
                    //    previousDrumSide = rightDrum.drumSide;
                    //    //player.physics.AddForce(Vector2.UnitX * 2000);
                    //}
                    //else
                    //{
                    //    dino.physics.Velocity += Vector2.UnitX * 0.25f;
                    //}

                    timeSinceLastHit = 0f;
                    currentRunningSpeed++;
                    previousDrumSide         = rightDrum.drumSide;
                    dino.transform.Position -= Vector2.UnitX * Math.Max(1, maxRunningSpeed / (currentRunningSpeed));
                }
            }
            else if (touches.Count == 2 && CheckDrumHit(touches, leftDrum, rightDrum) &&
                     (touches[0].State == TouchLocationState.Pressed || touches[0].State == TouchLocationState.Moved) &&
                     (touches[1].State == TouchLocationState.Pressed || touches[1].State == TouchLocationState.Moved))
            {
                player.Jump();
            }

            // clamp tempo to maxTempo
            if (currentRunningSpeed > maxRunningSpeed)
            {
                currentRunningSpeed = maxRunningSpeed;
            }
        }