Пример #1
0
    public void CreateHeadOfObject(Metronome metronome, Vector3 startPos, Vector3 target, Vector3 destroy)
    {
        startPosition = startPos;

        // instantiate object
        musicObject       = ( GameObject )Instantiate(prefab, startPosition, Quaternion.identity);
        musicObject.name += index;

        //if not a tap object
        if (!held && expected != inputType.tap)
        {
            SpriteRenderer mainRenderer = ( SpriteRenderer )musicObject.GetComponent(typeof(SpriteRenderer));
            mainRenderer.sprite = mainSprite;
        }
        moveScript     = ( MoveToBeat )musicObject.GetComponent(typeof(MoveToBeat));
        feedbackScript = ( ShowFeedback )musicObject.GetComponent(typeof(ShowFeedback));

        moveScript.metronome = metronome;
        // calculate its start values

        moveScript.CalculateAndSetValues(startPosition, target, destroy, arrivalBeat, metronome.bpm);

        Activate(false);
    }
Пример #2
0
    void EndOfInput()
    {
        float endBeat = metronome.currentPartialBeats;

        float beatsHeld = endBeat - beatOfInput;

        inputType swipe = DetermineSwipe(Input.mousePosition);
//		Debug.Log (" swipe : " + swipe);
        int interactionType = GetInputTypeAsInt(swipe);

        if (readPlayerInput)
        {
            //set sprite
            int    swipeInt  = GetInputTypeAsInt(swipe);
            Sprite newSprite = instantiate.GetSprite(swipeInt);
            //destroy user created object
            ShowFeedback feedbackScript = (ShowFeedback )userCreatedObject.GetComponent(typeof(ShowFeedback));
            feedbackScript.SetSprite(newSprite);
            feedbackScript.TimeDestruction();


            float normalizedEndBeat   = GetClosestHalfBeat(endBeat);
            float normalizedStartBeat = GetClosestHalfBeat(beatOfInput);

            string saveData = "";
            saveData += normalizedStartBeat + ",";
            saveData += normalizedEndBeat + ",";
            saveData += interactionType.ToString() + ",";

            //if previous input does not overlap with current input
            if (normalizedStartBeat > previousEndBeat)
            {
                //record data
                GameData.dataControl.SavePerformanceStats(saveData);
                previousEndBeat = normalizedEndBeat;
            }
        }
        if (!readPlayerInput)
        {
            Debug.Log(" received : " + swipe + ", expected : " + currentObject.expected);

            if (WithinInputRange())
            {
//				Debug.Log (" received : " + swipe + ", expected : " + currentObject.expected );
                if (currentObject.expected == swipe)
                {
                    if (swipe != inputType.tap && swipe != inputType.up)
                    {
                        Debug.Log(swipe + " at " + metronome.currentPartialBeats);
                    }

                    Debug.Log("ATTEMPTING TO DESTROY");
                    currentObject.feedbackScript.ShowSuccess();
                }

                else if (currentObject.expected == inputType.tap && !currentObject.isBeingHeld)

                {
                    currentObject.feedbackScript.ShowSuccess();
                }
            }
            //if held object is let go early
            else if (currentObject.held && currentObject.isBeingHeld)
            {
                currentObject.feedbackScript.UnsuccessfulHoldContinuesToDestruction();
            }

            currentObject.isBeingHeld = false;
        }
    }