GetKeyDown() public static méthode

public static GetKeyDown ( MidiChannel channel, int noteNumber ) : bool
channel MidiChannel
noteNumber int
Résultat bool
Exemple #1
0
 void CheckButton()
 {
     for (int i = 0; i < buttonCount; i++)
     {
         if (MidiInput.GetKeyDown(i))
         {
             Messenger.Broadcast(buttonEventPrefix + i);
         }
     }
 }
Exemple #2
0
    // Update is called once per frame
    void Update()
    {
        foreach (int i in notes)
        {
            if (MidiInput.GetKeyDown(i))
            {
//				arena.ButtonPressed (i);
            }
        }
        if (Input.GetKeyDown(KeyCode.R))
        {
            Reset();
        }
    }
    void Update()
    {
        if (MidiInput.GetKeyDown(keyNumber + 21))
        {
            isDown = true;

            if (keyNumber == song.noteList[0].noteNum)
            {
                // If the MIDI input matches the current target note...

                material.color = Color.Lerp(material.color, Color.blue, 1 - Time.deltaTime);

                if (song.noteList.Count == 1)
                {
                    text.Invoke("Complete", 0);
                }
                else
                {
                    // Pop queue, trigger corresponding effects, update text

                    front.Invoke("PopEffect", 0f);
                    song.noteList.RemoveAt(0);
                    text.text_data.RemoveAt(0);
                    text.Invoke("Refresh", 0);
                }
            }
            else
            {
                // If note played is incorrect, change color of both the note text and corresponding
                // piano key to red

                material.color    = Color.Lerp(material.color, Color.red, 1 - Time.deltaTime);
                front.front.color = Color.Lerp(front.text.color, Color.red, 1 - Time.deltaTime);

                Debug.LogFormat("WRONG NOTE! Expected: {0} {1}", song.noteList[0].noteName, song.noteList[0].noteOctave, song.noteList[0].duration);
            }
        }
        else if (MidiInput.GetKeyUp(keyNumber + 21))
        {
            // Reset colors to default if no note is played

            isDown            = false;
            material.color    = Color.Lerp(material.color, col, 1 - Time.deltaTime);
            front.front.color = Color.Lerp(front.text.color, Color.green, 1 - Time.deltaTime);
        }
    }
    IEnumerator WaitingForInput(List <int> lights)
    {
        bool[] pressed = new bool[lights.Count];
        bool   done    = false;

        foreach (int i in sideNotes)
        {
            lightHandler.Light(i, Colors.RED);
        }
        while (!done)
        {
            for (int i = 0; i < lights.Count; i++)
            {
                if (MidiInput.GetKeyDown(lights[i]))
                {
                    pressed[i] = true;
                    lightHandler.Light(lights[i], Colors.GREEN);
                }
            }
            foreach (bool b in pressed)
            {
                done = b;
                if (!b)
                {
                    break;
                }
            }
            yield return(null);
        }
        foreach (int i in sideNotes)
        {
            lightHandler.Light(i, Colors.GREEN);
        }
        input.Reset();
        numPlayers--;
    }
Exemple #5
0
    // Update is called once per frame
    void Update()
    {
        for (int i = 0; i < 128; i++)
        {
            if (MidiInput.GetKeyUp(i))
            {
                foreach (var glow in glows)
                {
                    if (glow.note == i)
                    {
                        glow.note             = -1;
                        glow.renderer.enabled = false;
                    }
                }
//				Debug.Log("Releasing " + i + "!");
            }

            if (MidiInput.GetKeyDown(i))
            {
                hasPressedDown = true;

                foreach (var glow in glows)
                {
                    if (glow.note == -1)
                    {
                        glow.note             = i;
                        glow.renderer.enabled = true;

                        int offsetIndex = GetOffsetFromMiddleC(i);                         //60 is middleC

                        glow.offsetFromMiddleC = offsetIndex;

                        glow.transform.localPosition = new Vector3(0, MIDDLEY + (float)offsetIndex * SPREADY / 2f, 0);

                        glow.audioSource.Stop();

                        glow.audioSource.pitch = QNoteHelper.GetFrequencyForIndex(i) / QNoteHelper.GetFrequencyForIndex(60);

                        glow.audioSource.Play();

                        break;
                    }
                }

//				Debug.Log("Pressing " + i + "!");
            }
        }

        NoteTarget currentTarget = null;
        int        futureTargets = 0;

        for (int r = 0; r < targets.Count; r++)
        {
            var target = targets[r];
            //remove far left targets here

            if (targets.Count > TOTAL_TARGETS)
            {
                targets.Remove(target);
                target.Remove();
                r--;
            }
            else
            {
                if (!target.hasBeenPlayed)
                {
                    if (currentTarget == null)
                    {
                        currentTarget = target;
                    }
                    else
                    {
                        futureTargets++;
                    }
                }
            }
        }

        if (currentTarget == null)
        {
            currentTarget = CreateTarget();
        }

        while (futureTargets < FUTURE_TARGETS)
        {
            CreateTarget();
            futureTargets++;
        }

        bool wasNoteTouched = false;

        if (hasPressedDown)        //must press before we start to touch the note
        {
            foreach (var glow in glows)
            {
                if (glow.note != -1 && glow.offsetFromMiddleC == currentTarget.offsetFromMiddleC)
                {
                    currentTarget.energy -= Time.deltaTime;
                    wasNoteTouched        = true;
                }
            }
        }

        if (wasNoteTouched)
        {
            currentTarget.renderer.color = Color.green;
        }
        else
        {
            currentTarget.renderer.color = Color.white;
            currentTarget.energy         = TIME_TO_SELECT;
        }


        if (currentTarget.energy <= 0)        //played the note!
        {
            currentTarget.hasBeenPlayed = true;
            scrollXTarget -= SPREADX;             //scroll timeline
            hasPressedDown = false;
        }

        scrollX += (scrollXTarget - scrollX) * 0.1f;       //ease towards scroll target

        foreach (var target in targets)
        {
            target.transform.localPosition = new Vector3(scrollX + target.baseX, target.baseY, 0);
        }
    }
Exemple #6
0
 void Update()
 {
     transform.localScale    = Vector3.one * (0.1f + MidiInput.GetKey(channel, noteNumber));
     renderer.material.color = MidiInput.GetKeyDown(channel, noteNumber) ? Color.red : Color.white;
 }
Exemple #7
0
 void Update()
 {
     transform.localScale = Vector3.one * (0.1f + MidiInput.GetKey(noteNumber));
     GetComponent <Renderer>().material.color = MidiInput.GetKeyDown(noteNumber) ? Color.red : Color.white;
 }