示例#1
0
    void Spawn()
    {
        if (Constants.Endless)
        {
            spawnTimer = spawnTime;
            spawnTime *= Constants.EndlessSpawnDecay;

            int from = Random.Range(Constants.MinNote, Constants.MaxNote + 1);
            int to   = Random.Range(Constants.MinNote, Constants.MaxNote + 1);
            while (to == from)
            {
                to = Random.Range(Constants.MinNote, Constants.MaxNote + 1);
            }

            floorManager.LightOn(from, true);
            PersonScript person = factory.CreatePerson();
            person.Appear(from, to);
            clients.Add(person);
        }
        else
        {
            int from = Constants.Level[curIdx];
            int to   = Constants.Level[curIdx + 1];

            string noteName = PitchManager.NoteToName(from);
            UpText.text   = noteName;
            DownText.text = noteName;
            floorManager.LightOn(from, true);
            PlayNote(from);
            PersonScript person = factory.CreatePerson();
            person.Appear(from, to);
            clients.Add(person);
        }
    }
示例#2
0
    IEnumerator ResumeGame(ArrayList toLightOn, int toLightOff)
    {
        yield return(new WaitForSeconds(1));

        floorManager.LightOff(toLightOff);
        foreach (int note in toLightOn)
        {
            floorManager.LightOn(note, false);
            if (!Constants.Endless)
            {
                PlayNote(note);
                string noteName = PitchManager.NoteToName(note);
                UpText.text   = noteName;
                DownText.text = noteName;
            }
        }

        if (Constants.Endless)
        {
            Constants.GameOn = true;
        }
        else
        {
            if (toLightOn.Count > 0 || clients.Count == 0)
            {
                curIdx++;
                UpdateTarget();
            }
            else
            {
                Constants.GameOn = true;
            }
        }
    }
示例#3
0
    void Start()
    {
        float worldScreenWidth = (Camera.main.orthographicSize * 2 / Screen.height) * Screen.width;

        floorsOn = new ArrayList();
        floors   = new GameObject[Constants.MaxNote - Constants.MinNote + 1];
        for (int note = Constants.MinNote; note <= Constants.MaxNote; note++)
        {
            Vector3    pos   = new Vector3(0, NoteToPos(note));
            GameObject floor = Instantiate(FloorPrefab, pos, Quaternion.identity);
            floors[note - Constants.MinNote] = floor;

            var left     = floor.transform.Find("left_floor").GetComponent <SpriteRenderer>();
            var right    = floor.transform.Find("right_floor").GetComponent <SpriteRenderer>();
            var left_bg  = floor.transform.Find("left_bg").GetComponent <SpriteRenderer>();
            var right_bg = floor.transform.Find("right_bg").GetComponent <SpriteRenderer>();
            var text     = floor.transform.Find("name").GetComponent <TextMesh>();

            Vector3 bgScale = left_bg.transform.localScale;
            bgScale.x = worldScreenWidth / (2 * left_bg.sprite.bounds.size.x);

            left_bg.transform.localScale  = bgScale;
            right_bg.transform.localScale = bgScale;
            left_bg.color  = GetColor(note);
            right_bg.color = GetColor(note);

            Vector3 left_bg_pos = left_bg.transform.position;
            left_bg_pos.x = -worldScreenWidth / 4;
            left_bg.transform.position = left_bg_pos;

            Vector3 right_bg_pos = right_bg.transform.position;
            right_bg_pos.x = worldScreenWidth / 4;
            right_bg.transform.position = right_bg_pos;

            Vector3 leftPos = left.transform.position;
            leftPos.x = -worldScreenWidth / 4 - 1;
            left.transform.position = leftPos;

            Vector2 leftSize = left.size;
            leftSize.x = worldScreenWidth / 2 - 2;
            left.size  = leftSize;

            Vector3 rightPos = right.transform.position;
            rightPos.x = worldScreenWidth / 4 + 1;
            right.transform.position = rightPos;

            Vector2 rightSize = right.size;
            rightSize.x = worldScreenWidth / 2 - 2;
            right.size  = rightSize;

            text.text = PitchManager.NoteToName(note);

            Vector3 textPos = text.transform.position;
            textPos.x = worldScreenWidth / 2 - 1;
            text.transform.position = textPos;
        }
    }