コード例 #1
0
    public void SetupLevel()
    {
        ////Get information of current category
        CategoryInfo categoryInfo = GuessManager.Instance.GetCategoryInfo(activeCategoryName);

        levelItemObjectPool.ReturnAllObjectsToPool();

        for (int i = 0; i < categoryInfo.levelInfos.Count; i++)
        {
            LevelListItem.Type type;
            if (i < numbersOfActiveLevel)
            {
                type = LevelListItem.Type.Completed;
            }
            else if (i == numbersOfActiveLevel)
            {
                type = LevelListItem.Type.Normal;
            }
            else
            {
                type = LevelListItem.Type.Locked;
            }
            LevelListItem levelListItem = levelListContainer.GetChild(i).transform.gameObject.GetComponent <LevelListItem>();

            levelListItem.Setup(categoryInfo, i + 1, type, categoryInfo.levelInfos[i].answer, categoryInfo.levelInfos[i].question, categoryInfo.levelInfos[i].sprite, categoryInfo.levelInfos[i].description);
            levelListItem.gameObject.SetActive(true);
        }

        for (int j = 0; j < categoryInfo.levelInfos.Count; j++)
        {
            LevelListItem levelListItem = levelListContainer.GetChild(j).transform.gameObject.GetComponent <LevelListItem>();
            levelListItem.SetupMode(timeMode.Contains(j + 1), lockMode.Contains(j + 1));
        }
    }
コード例 #2
0
    public void LoadLevelList()
    {
        TextAsset listAsset = Resources.Load <TextAsset> ("levelList");

        if (listAsset != null)
        {
            var content = JSON.Parse(listAsset.text);

            if (content != null)
            {
                JSONArray list = content ["levelList"].AsArray;

                for (int i = 0; i < list.Count; i++)
                {
                    GameObject    itemGO = GameObject.Instantiate(listItem);
                    LevelListItem item   = itemGO.GetComponent <LevelListItem>();

                    if (item != null)
                    {
                        item.SetData(list[i]["name"], list[i]["uri"]);
                        item.gManager = gManager;
                        item.lManager = this;

                        itemGO.transform.SetParent(grid.transform);
                    }
                }
            }
        }
    }
コード例 #3
0
    public override void OnShowing(object data)
    {
        base.OnShowing(data);

        levelItemObjectPool.ReturnAllObjectsToPool();

        CategoryInfo categoryInfo = GameManager.Instance.GetCategoryInfo((string)data);
        bool         completed    = true;

        for (int i = 0; i < categoryInfo.levelInfos.Count; i++)
        {
            LevelListItem.Type type = completed ? LevelListItem.Type.Completed : LevelListItem.Type.Locked;

            if (completed && !GameManager.Instance.IsLevelCompleted(categoryInfo, i))
            {
                completed = false;
                type      = LevelListItem.Type.Normal;
            }

            LevelListItem levelListItem = levelItemObjectPool.GetObject().GetComponent <LevelListItem>();

            levelListItem.Setup(categoryInfo, i, type);
            levelListItem.gameObject.SetActive(true);
        }
    }
コード例 #4
0
    private static IEnumerator LoadNewAudio(uint i)
    {
        AudioPlayer   player = Objects[i].audioPlayer;
        LevelListItem item   = Instance.LevelList[i];

        player.LoadNewClip(item.clip);
        yield return(null);
    }
コード例 #5
0
ファイル: LevelMenu.cs プロジェクト: Calamander/Group-Puzzle
 // Start is called before the first frame update
 void Start()
 {
     foreach (var key in GameData.levels.Keys)
     {
         GameObject    new_item        = Instantiate(list_item);
         LevelListItem new_item_script = new_item.GetComponent <LevelListItem>();
         new_item_script.level_menu = this;
         new_item_script.level      = GameData.levels[key];
         new_item.transform.SetParent(list.transform);
     }
 }
コード例 #6
0
 private static Texture2D MeasureTexture(LevelListItem item, uint i)
 {
     if (MeasureIsLocked(i))
     {
         return(Instance.MeasureLock);
     }
     else
     {
         return(item.measure);
     }
 }
コード例 #7
0
 private static Texture2D ComicTexture(LevelListItem item, uint i)
 {
     if (ComicIsLocked(i))
     {
         return(Instance.ComicLock);
     }
     else
     {
         return(item.comic);
     }
 }
コード例 #8
0
 private static Texture2D MeasureTexture(LevelListItem item, uint i)
 {
     if (MeasureIsLocked(i))
     {
         return Instance.MeasureLock;
     } else
     {
         return item.measure;
     }
 }
コード例 #9
0
 private static Texture2D ComicTexture(LevelListItem item, uint i)
 {
     if (ComicIsLocked(i))
     {
         return Instance.ComicLock;
     } else
     {
         return item.comic;
     }
 }
コード例 #10
0
    private static void AddLevelListItem(uint i, LevelListItem item)
    {
        uint row, col;
        Vector3 center, comicOffset, measureOffset, headerOffset;
        Vector3 comicBgPos, measureBgPos, comicTilePos, measureTilePos, headerPos;
        Vector2 comicBgSize, measureBgSize, comicTileSize, measureTileSize, totalSize;

        row = i / Instance.LevelsPerLine;
        col = i % Instance.LevelsPerLine;

        comicBgSize = ComicBgSize();
        comicTileSize = ComicTileSize(comicBgSize);
        measureBgSize = MeasureBgSize(row);
        measureTileSize = MeasureTileSize(measureBgSize);
        totalSize = TotalSize(row);

        center = LLICenterPosition(row, col);
        comicOffset = ComicOffset(totalSize, comicBgSize);
        measureOffset = MeasureOffset(totalSize, measureBgSize);
        headerOffset = HeaderOffset(totalSize, comicBgSize);

        comicBgPos = center + comicOffset + BgOffset;
        comicTilePos = center + comicOffset;
        measureBgPos = center + measureOffset + BgOffset;
        measureTilePos = center + measureOffset;
        headerPos = center + headerOffset;

        GameObject parent = new GameObject(string.Format("Level {0}", i + 1));
        parent.transform.parent = Instance.transform;
        parent.transform.position = center;
        Objects[i].parent = parent;

        Objects[i].comicBg = SpriteUtil.AddSprite(Instance.ComicBackground, comicBgSize, comicBgPos,
            string.Format("Comic Background {0}", i + 1), parent);

        Objects[i].comicTile = SpriteUtil.AddSprite(ComicTexture(item, i), comicTileSize, comicTilePos,
            string.Format("Comic Tile {0}", i + 1), parent);

        Objects[i].measureBg = SpriteUtil.AddSprite(Instance.MeasureBackground, measureBgSize, measureBgPos,
            string.Format("Measure Background {0}", i + 1), parent);

        Objects[i].measureTile = SpriteUtil.AddSprite(MeasureTexture(item, i), measureTileSize, measureTilePos,
            string.Format("Measure Tile {0}", i + 1), parent);

        Objects[i].header = AddHeader(parent, i + 1, headerPos);

        GameObject audioObject = new GameObject(string.Format("Audio Source {0}", i + 1));
        audioObject.transform.parent = parent.transform;

        AudioSource audioSource = audioObject.AddComponent<AudioSource>();
        Objects[i].audioSource = audioSource;
        AudioClip clip;

        if (MeasureIsLocked(i))
        {
            clip = Instance.LockedClip;
        } else
        {
            clip = item.clip;
        }
        Objects[i].audioPlayer = new AudioPlayer(clip, audioSource);
    }
コード例 #11
0
    private static void AddLevelListItem(uint i, LevelListItem item)
    {
        uint    row, col;
        Vector3 center, comicOffset, measureOffset, headerOffset;
        Vector3 comicBgPos, measureBgPos, comicTilePos, measureTilePos, headerPos;
        Vector2 comicBgSize, measureBgSize, comicTileSize, measureTileSize, totalSize;

        row = i / Instance.LevelsPerLine;
        col = i % Instance.LevelsPerLine;

        comicBgSize     = ComicBgSize();
        comicTileSize   = ComicTileSize(comicBgSize);
        measureBgSize   = MeasureBgSize(row);
        measureTileSize = MeasureTileSize(measureBgSize);
        totalSize       = TotalSize(row);

        center        = LLICenterPosition(row, col);
        comicOffset   = ComicOffset(totalSize, comicBgSize);
        measureOffset = MeasureOffset(totalSize, measureBgSize);
        headerOffset  = HeaderOffset(totalSize, comicBgSize);

        comicBgPos     = center + comicOffset + BgOffset;
        comicTilePos   = center + comicOffset;
        measureBgPos   = center + measureOffset + BgOffset;
        measureTilePos = center + measureOffset;
        headerPos      = center + headerOffset;

        GameObject parent = new GameObject(string.Format("Level {0}", i + 1));

        parent.transform.parent   = Instance.transform;
        parent.transform.position = center;
        Objects[i].parent         = parent;

        Objects[i].comicBg = SpriteUtil.AddSprite(Instance.ComicBackground, comicBgSize, comicBgPos,
                                                  string.Format("Comic Background {0}", i + 1), parent);

        Objects[i].comicTile = SpriteUtil.AddSprite(ComicTexture(item, i), comicTileSize, comicTilePos,
                                                    string.Format("Comic Tile {0}", i + 1), parent);

        Objects[i].measureBg = SpriteUtil.AddSprite(Instance.MeasureBackground, measureBgSize, measureBgPos,
                                                    string.Format("Measure Background {0}", i + 1), parent);

        Objects[i].measureTile = SpriteUtil.AddSprite(MeasureTexture(item, i), measureTileSize, measureTilePos,
                                                      string.Format("Measure Tile {0}", i + 1), parent);

        Objects[i].header = AddHeader(parent, i + 1, headerPos);

        GameObject audioObject = new GameObject(string.Format("Audio Source {0}", i + 1));

        audioObject.transform.parent = parent.transform;

        AudioSource audioSource = audioObject.AddComponent <AudioSource>();

        Objects[i].audioSource = audioSource;
        AudioClip clip;

        if (MeasureIsLocked(i))
        {
            clip = Instance.LockedClip;
        }
        else
        {
            clip = item.clip;
        }
        Objects[i].audioPlayer = new AudioPlayer(clip, audioSource);
    }