Ejemplo n.º 1
0
 public void LoadLevel(LevelCollageInfo levelInfo)
 {
     currentLevelInfo         = levelInfo;
     currentLevelInfo.visited = true;
     CollageFraction.selectedCollageFraction = null;
     //Debug.Log("Collage ORG Load level: " + levelIndex.ToString() + " Count: " + levelInfoList[currentLevelId].collageFractionInfoList.Count);
     if (levelInfo.collageFractionInfoList.Count == 0)
     {
         //see this level for the first time for empty list generate pieces and shuffle
         SetCollagePieces(levelInfo);
         SequentiallySetPieceToGrid();
         ShuffleCollagePieces();
     }
     else
     {
         for (int i = 0; i < collageFractionList.Count; ++i)
         {
             collageFractionList[i].SetTextureAndPositionFromInfo(levelInfo.collageFractionInfoList[i]);
             if (currentLevelInfo.childrenLevelCollageIndexes.Contains(i))
             {
                 LevelCollageInfo child = currentLevelInfo.childrenLevelInfo[currentLevelInfo.childrenLevelCollageIndexes.IndexOf(i)];
                 if (!child.visited)
                 {
                     collageFractionList[i].SetImageFromTexture2D(PlayerInfo.questionTexture);
                 }
                 else
                 {
                     Texture2D sketch = child.GetSketch();
                     collageFractionList[i].SetImageFromTexture2D(sketch);
                 }
             }
         }
     }
 }
Ejemplo n.º 2
0
 //Set up pictures for collage pieces
 public void SetCollagePieces(LevelCollageInfo levelInfo)
 {
     for (int i = 0; i < collageFractionList.Count; i++)
     {
         collageFractionList[i].canEnterNextLevel = false;
         Texture2D cTex = GetTexture2DForCollage(levelInfo, i);
         collageFractionList[i].currentTexture2d = cTex;
         if (currentLevelInfo.childrenLevelCollageIndexes.Contains(i))
         {
             collageFractionList[i].canEnterNextLevel = true;
             LevelCollageInfo child = currentLevelInfo.childrenLevelInfo[currentLevelInfo.childrenLevelCollageIndexes.IndexOf(i)];
             if (!child.visited)
             {
                 collageFractionList[i].SetImageFromTexture2D(PlayerInfo.questionTexture);
             }
             else
             {
                 Texture2D sketch = child.GetSketch();
                 collageFractionList[i].SetImageFromTexture2D(sketch);
             }
         }
         else
         {
             collageFractionList[i].SetImageFromTexture2D(cTex);
         }
     }
 }
Ejemplo n.º 3
0
    public Texture2D GetSketch()
    {
        //Debug.Log("here" + collageFractionInfoList.Count + " " + levelTexture.height + " " + levelTexture.width);
        Texture2D sketch = new Texture2D(levelTexture.width, levelTexture.height, levelTexture.format, true);

        foreach (CollageFractionInfo collage in collageFractionInfoList)
        {
            int nextIndex  = childrenLevelCollageIndexes.IndexOf(collage.collageId);
            int positionId = collage.positionId;
            if (positionId != -1)
            {
                //Debug.Log("here has some ids");
                int       xOffset = positionId % gameBoard.gridCountPerLine;
                int       yOffset = positionId / gameBoard.gridCountPerLine;
                Texture2D tex     = collage.currentTexture2d;
                //Debug.Log("collage texture2d: " + tex.width + " " + tex.height);
                if (nextIndex != -1)
                {
                    LevelCollageInfo childLevel = childrenLevelInfo[nextIndex];
                    if (!childLevel.visited)
                    {
                        tex = CollageImage.ScaleTexture(PlayerInfo.questionTexture, tex.width, tex.height);
                    }
                    else
                    {
                        tex = CollageImage.ScaleTexture(childLevel.GetSketch(), tex.width, tex.height);
                    }
                }
                //send picture to sketches

                for (int i = 0; i < tex.width; i++)
                {
                    for (int j = 0; j < tex.height; j++)
                    {
                        Color color = tex.GetPixel(i, j);
                        sketch.SetPixel(xOffset * levelCollageSize + i, yOffset * levelCollageSize + j, color);
                    }
                }
            }
        }
        sketch.Apply();
        return(sketch);
    }