示例#1
0
    // Update is called once per frame
    void Update()
    {
        //此处判断游戏关卡结束条件,关卡对象总数暂时写100个,后续根据midi文件生成
        //if(Time.time>midi.TotalLength/1000+5)
        //{
        //	Application.LoadLevel ("end");
        //	Destroy(this);
        //	analysisSignal.midiClose();
        //}
        content  = "实时得分:" + scoreUtil.PerScore.ToString() + "\r\n";
        content += "力度匹配程度:" + scoreUtil.ForceRation.ToString() + "\r\n";
        content += "总得分:" + scoreUtil.Score.ToString() + "\r\n";
        content += "当前正确率:" + scoreUtil.Correct + "/" + count + "\r\n";

        if (count < midi.Count)
        {
            example(midi.NoteDelta[count] / 1000f);
        }
        foreach (int index in nullList)
        {
            goList.RemoveAt(index);
        }
        nullList = new ArrayList();

        /*if (Input.GetKeyDown (KeyCode.W)) {
         *      foreach(GameObject go in goList){
         *              if(go==null){
         *                      nullList.Add(goList.IndexOf(go));
         *              }else{
         *                      go.BroadcastMessage ("ReceiveBroadcastMessage","C5");
         *              }
         *      }
         * }*/
        if (Input.anyKey)
        {
            if (Input.GetKeyDown(KeyCode.W))
            {
                foreach (GameObject go in goList)
                {
                    if (go == null)
                    {
                        nullList.Add(goList.IndexOf(go));
                    }
                    else
                    {
                        go.BroadcastMessage("ReceiveBroadcastMessage", "C5");
                    }
                }
            }
            if (!analysisSignal.isEquelPerString(Input.inputString) && Input.inputString != "")
            {
                analysisSignal.analysisMidiKey(Input.inputString);
                midikeycode = analysisSignal.KeyCode;
                if (midikeycode != null && midikeycode.KeyCode != null && Midi.getNote(midikeycode.KeyCode) != null)
                {
                    foreach (GameObject go in goList)
                    {
                        if (go == null)
                        {
                            nullList.Add(goList.IndexOf(go));
                        }
                        else
                        {
                            go.BroadcastMessage("ReceiveBroadcastMessage", Midi.getNote(midikeycode.KeyCode));
                        }
                    }
                }
                Debug.Log("键值:" + midikeycode.KeyCode);
                //Debug.Log("键是否为释放状态:"+midikeycode.IsRrelease);
                //Debug.Log("按键力度:"+midikeycode.Strength);
                //Debug.Log("按键时间戳:"+midikeycode.Time_ticks);
            }
        }
    }