private void DrawScore(string filename)
        {
            // 解析MusicXml文件
            XmlFacade xmlFacade = new XmlFacade(filename);
            // 生成乐谱表
            ScoreGenerator scoreGenerator =
                new ScoreGenerator(xmlFacade.GetBeat().GetBeats(), xmlFacade.GetBeat().GetBeatType());
            List <List <Measure> > scoreList = scoreGenerator.Generate(xmlFacade.GetMeasureList(), Screen.width - 67);

            // 准备绘制乐谱对象及其他参数
            GameObject   parentObject = GameObject.Find("Canvas_Score");
            List <float> screenSize   = new List <float>();

            screenSize.Add(Screen.width);
            screenSize.Add(Screen.height);
            List <string> scoreInfo = new List <string>();

            // 乐谱名称和作者信息
            scoreInfo.Add(xmlFacade.GetWorkTitle()); // 0
            scoreInfo.Add(xmlFacade.GetCreator());   // 1

            // 绘制乐谱视图
            ScoreView scoreView = new ScoreView(scoreList, parentObject, screenSize, scoreInfo);

            // 更改乐符颜色
//        Symbol symbol = scoreList[0][0].GetMeasureSymbolList()[0][1][2];
//        SymbolControl symbolControl = new SymbolControl(symbol);
//        symbolControl.SetColor(Color.red);
        }
Beispiel #2
0
        public static void Main(string[] args)
        {
            XmlFacade      xmlFacade      = new XmlFacade("polka.xml");
            List <Measure> measureList    = xmlFacade.GetMeasureList();
            ScoreGenerator scoreGenerator = new ScoreGenerator(xmlFacade.GetBeat().GetBeats(), xmlFacade.GetBeat().GetBeatType());
            List <List <List <List <List <Symbol> > > > > scoreList = scoreGenerator.Generate(xmlFacade.GetHighSymbolList(), xmlFacade.GetLowSymbolList());

            List <List <Measure> > scoreList2 = scoreGenerator.Generate(xmlFacade.GetMeasureList(), 600);

            Console.WriteLine("test");
        }
Beispiel #3
0
 private void AddScoreToGroups(IEnumerable <IGrouping <int, ScoredReformedQuery> > groups,
                               ScoreGenerator scoreGenerator)
 {
     foreach (var group in groups)
     {
         var points = scoreGenerator.GetNextScore();
         foreach (var query in group)
         {
             query.AddPoints(points);
         }
     }
 }
        public void TestGenerateScoreFromPrefab()
        {
            GameObject scoreObject    = Resources.Load <GameObject>("Prefabs/Scores/score_bluedisk");
            GameObject scoreParent    = new GameObject();
            GameObject generatedScore = ScoreGenerator.GenerateScore(scoreObject, scoreParent.transform);

            Assert.AreEqual(0, generatedScore.transform.localPosition.x);
            Assert.AreEqual(0, generatedScore.transform.localPosition.y);
            Assert.AreEqual(0, generatedScore.transform.localPosition.z);

            Assert.AreEqual(scoreParent.transform, generatedScore.transform.parent);
            Assert.AreEqual("Score", generatedScore.tag);
        }
        public override bool Create(ScoreLocationDTO dto)
        {
            // TODO: some checking that this location is free to place on.
            GameObject score = ScoreGenerator.GenerateScore(dto, scoreFolder.transform);

            if (score == null)
            {
                Debug.Log("Generated pickup is null!");
                return(false);
            }

            // Update currentScores for next UpdateFeatures call.
            currentScores.Add(dto);

            return(true);
        }
Beispiel #6
0
    // Use this for initialization
    void Awake()
    {
        //タイマーを初期化.
        time_counter_ = 0.0F;
        image_animator_ = GetComponent<ImageAnimator>();
        is_end_send_ = false;
        //桁番号参照用に、スコアジェネレータを初期化.
        //animationの遅延時間をスコア表示側から設定、
        //一桁ずつアニメーション時間をずらす.
        score_generator_refernce_ = GameObject.FindObjectOfType<ScoreGenerator>();
        sprite_animator_ = GetComponent<SpriteAnimator>();
        sprite_animator_.target_time_ = animation_end_target_time;
        sprite_animator_.delay_time_ = show_delay_time_
                                       + (score_generator_refernce_.DigitCounter * show_lag_);

        //スコアを参照.(1桁分のみ)
        GameObject score_refernce = GameObject.Find("ScoreGenerator(Clone)") as GameObject;
        number_ = score_refernce.GetComponent<ScoreGenerator>().Score;
        //Spriteを初期化.数字をランダムに取得.
        number_object_ = GetComponent<Image>();
        number_object_.sprite = Instantiate(Score_Number_[Random.Range(0,9)]) as Sprite;
    }
Beispiel #7
0
    // Use this for initialization
    void Awake()
    {
        //タイマーを初期化.
        time_counter_   = 0.0F;
        image_animator_ = GetComponent <ImageAnimator>();
        is_end_send_    = false;
        //桁番号参照用に、スコアジェネレータを初期化.
        //animationの遅延時間をスコア表示側から設定、
        //一桁ずつアニメーション時間をずらす.
        score_generator_refernce_     = GameObject.FindObjectOfType <ScoreGenerator>();
        sprite_animator_              = GetComponent <SpriteAnimator>();
        sprite_animator_.target_time_ = animation_end_target_time;
        sprite_animator_.delay_time_  = show_delay_time_
                                        + (score_generator_refernce_.DigitCounter * show_lag_);

        //スコアを参照.(1桁分のみ)
        GameObject score_refernce = GameObject.Find("ScoreGenerator(Clone)") as GameObject;

        number_ = score_refernce.GetComponent <ScoreGenerator>().Score;
        //Spriteを初期化.数字をランダムに取得.
        number_object_        = GetComponent <Image>();
        number_object_.sprite = Instantiate(Score_Number_[Random.Range(0, 9)]) as Sprite;
    }
        public void TestGenerateScoreFromDTO()
        {
            ScoreLocationDTO scoreDTO       = new ScoreLocationDTO();
            Location         pickupLocation = new Location(10, 20);

            scoreDTO.location = pickupLocation;
            GameObject scoreParent = new GameObject();

            GameObject generatedScore = ScoreGenerator.GenerateScore(scoreDTO, scoreParent.transform);

            Assert.AreEqual(pickupLocation.x, generatedScore.transform.localPosition.x);
            Assert.AreEqual(0, generatedScore.transform.localPosition.y);
            Assert.AreEqual(pickupLocation.y, generatedScore.transform.localPosition.z);

            Assert.AreEqual(scoreParent.transform, generatedScore.transform.parent);
            Assert.AreEqual("score_bluedisk_10_20", generatedScore.name);

            Assert.AreEqual(10, generatedScore.transform.localPosition.x);
            Assert.AreEqual(20, generatedScore.transform.localPosition.z);
            Assert.AreEqual(0, generatedScore.transform.localPosition.y);

            Assert.AreEqual("Score", generatedScore.tag);
        }
Beispiel #9
0
 // the purpose of this function is to call out these particular components
 void Awake()
 {
     carRB          = GetComponent <Rigidbody> ();
     scoreGenerator = GetComponent <ScoreGenerator> ();
     audioSource    = GetComponent <AudioSource> ();
 }
    public void init()
    {
        if (!executedOnce)
        {
            json  = JsonUtility.FromJson <jsonConfig>(jsonData1);
            teams = JsonUtility.FromJson <TeamList>(jsonData);

            yourTeamPlayers     = new List <YourPlayer> (11);
            opponentTeamPlayers = new List <YourPlayer> (11);
            allOvers            = new List <int> (5);
            for (int i = 0; i < 5; i++)
            {
                allOvers.Add(0);
            }

            executedOnce   = true;
            sgen           = new ScoreGenerator();
            target         = sgen.setTarget(json.myTeam, json.opponentTeam);
            autoPlayScores = sgen.populateAutoPlayScore(target);
            int autoPlayBatsmenCount = autoPlayScores.Count;

            yourTeam = json.myTeam;
            oppTeam  = json.opponentTeam;

            TeamInfo teamInfo;
            Players  player = new Players();

            for (int i = 0; i < teams.Teams.Count; i++)
            {
                teamInfo = teams.Teams [i];
                if (teamInfo.team == yourTeam)
                {
                    currentbatsmen = player1Name;
                    for (int iterj = 0; iterj < teamInfo.Players.Count; iterj++)
                    {
                        YourPlayer yourTeamPlayer = new YourPlayer();
                        yourTeamPlayer.playerName = teamInfo.Players [iterj].name;
                        yourTeamPlayer.score      = 0;
                        yourTeamPlayer.balls      = 0;
                        yourTeamPlayer.fours      = 0;
                        yourTeamPlayer.sixes      = 0;
                        yourTeamPlayer.stRate     = 0;
                        yourTeamPlayer.fow        = 0;

                        yourTeamPlayers.Add(yourTeamPlayer);
                    }
                    player1Name    = yourTeamPlayers [0].playerName;
                    player2Name    = yourTeamPlayers [1].playerName;
                    currentbatsmen = player1Name;
                }
                else if (teamInfo.team == oppTeam)
                {
                    for (int iterj = 0; iterj < teamInfo.Players.Count; iterj++)
                    {
                        YourPlayer oppTeamPlayer = new YourPlayer();
                        oppTeamPlayer.playerName = teamInfo.Players [iterj].name;
                        if (iterj < autoPlayBatsmenCount)
                        {
                            oppTeamPlayer.score = autoPlayScores[iterj];
                        }
                        else
                        {
                            oppTeamPlayer.score = 0;
                        }
                        oppTeamPlayer.balls  = 0;
                        oppTeamPlayer.fours  = 0;
                        oppTeamPlayer.sixes  = 0;
                        oppTeamPlayer.stRate = 0;
                        oppTeamPlayer.fow    = 0;
                        opponentTeamPlayers.Add(oppTeamPlayer);
                    }
                }
            }
        }

        updateScoreCanvas();
        updateTriggerCanvas();
    }