示例#1
0
 private void Awake()
 {
     fakeBLE = fakeBLE.GetComponent <FakeBLE>();
     tsc01   = new TopSpeedChallenge(TopSpeedImage, 30);
     msc01   = new MaintainSpeedChallenge(MaintainSpeedImage, 30, 20);
     tdc01   = new TotalDistanceChallenge(TotalDistanceImage, 30); //Not sure of value
 }
    // Tracks the speed every second
    IEnumerator MaintainSpeedTracker(MaintainSpeedChallenge challenge, float time)
    {
        // Loops and calculate the time that has passed
        for (float deltaTime = 0; ; deltaTime = Time.time - time)
        {
            // Calculate the current speed
            float speed = CalculateSpeed();

            // Check if the speed is correct and the time is achieved
            if (deltaTime >= challenge.Time && speed >= challenge.Speed)
            {
                StartCoroutine(MaintainSpeedTrigger(challenge));
                yield break;
            }
            else if (speed >= challenge.Speed)
            {
                // speed is correct, time is not achieved, wait for a second and check again
                yield return(new WaitForSeconds(1));
            }
            else
            {
                // Resets the challenges as the player failed
                challenge.Active = false;
                yield break;
            }
        }
    }
    private void Awake()
    {
        // Need to find out how to change certain statuses
        //ChallengeData data = SaveSystem.LoadChallengeData();
        //challengeStatuses = new bool[numChallenges];

        // Initialize the challenges with certain stats
        tsc01 = new TopSpeedChallenge(TopSpeedImage, 20);
        msc01 = new MaintainSpeedChallenge(MaintainSpeedImage, 10, 30);
        rpc01 = new RacePlacementChallenge(RacePlacementImage, 3);
        tdc01 = new TotalDistanceChallenge(TotalDistanceImage, 1); //Not sure of value

        //RealTimeClient.Instance.RaceEnd += RaceEndTrigger;
    }
示例#4
0
    IEnumerator MaintainSpeedTrigger(MaintainSpeedChallenge challenge)
    {
        Debug.Log("MAINTAINSPEEDACHIEVED");

        challenge.Achieved = true;
        challenge.Image.SetActive(true);
        challengeTitle.GetComponent <Text>().text       = challenge.Title;
        challengeDescription.GetComponent <Text>().text = challenge.Description;
        challengePanel.SetActive(true);

        yield return(new WaitForSeconds(7));

        challengePanel.SetActive(false);
        challenge.Image.SetActive(false);
    }
示例#5
0
    IEnumerator MaintainSpeedTracker(MaintainSpeedChallenge challenge, float time)
    {
        for (float deltaTime = 0; ; deltaTime = Time.time - time)
        {
            float speed = calculateSpeed(fakeBLE.rpm);

            if (deltaTime >= challenge.Time && speed >= challenge.Speed)
            {
                StartCoroutine(MaintainSpeedTrigger(challenge));
                yield break;
            }
            else if (speed >= challenge.Speed)
            {
                Debug.Log("DeltaTime " + deltaTime);
                yield return(new WaitForSeconds(1));
            }
            else
            {
                Debug.Log("Speed fail");
                challenge.Active = false;
                yield break;
            }
        }
    }