예제 #1
0
    public void Save(StarLife life, AllSoundFx sound)
    {
        string gamePath = Application.persistentDataPath + "/Player.dat";

        FileStream fstream = new FileStream(gamePath, FileMode.OpenOrCreate);

        BinaryFormatter formatter = new BinaryFormatter();

        GameStats gStats = new GameStats(life, sound);

        formatter.Serialize(fstream, gStats);

        fstream.Close();
    }
예제 #2
0
    public GameStats(StarLife life, AllSoundFx sound)
    {
        #region For all Gameplay

        isAdDisabled          = life.isAdRemoved;
        isLimUnlock           = life.isLimitlessUnlocked;
        diamonds              = life.diamonds;
        highScoreLL           = life.HighScore;
        totalLockedLevel      = life.totalClassicLocked;
        isActive              = life.isGameActive;
        isMusicOn             = sound.isSoundOn;
        isGameOverPanelActive = life.isGameOverPanelActive;
        VideoadCounter        = life.adCounter;
        isRatemeShown         = life.isRatingShown;
        ratemecounter         = life.rateCounter;
        isStartDisabled       = life.isStartIntroDisabled;
        for (int i = 0; i < 60; i++)
        {
            AdlimitCounter[i] = life.AdlimitCounter[i];
        }

        #endregion
    }
예제 #3
0
    void Update()
    {
        if (camera == null)
        {
            return;
        }
        //Center starfield rect on player
        starfieldRect.position = camera.transform.position - starfieldOffset;

        //Store player position delta
        deltaPosition = lastPosition - camera.transform.position;
        lastPosition  = camera.transform.position;

        //Update 1st layer
        for (int i = layer1.Count - 1; i >= 0; i--)
        {
            layer1[i].transform.position += (deltaPosition * layer1Speed) - deltaPosition;
            StarLife script = layer1[i].GetComponent <StarLife>();

            if (!starfieldRect.Contains(layer1[i].transform.position))
            {
                script.timeOOB += Time.deltaTime;
            }
            else
            {
                script.timeOOB = 0;
            }

            if (script.timeOOB > starTimeout)
            {
                layer1[i].SetActive(false);
                layer1.RemoveAt(i);
            }
        }


        //Update 2nd Layer
        for (int i = layer2.Count - 1; i >= 0; i--)
        {
            layer2[i].transform.position += (deltaPosition * layer2Speed) - deltaPosition;
            StarLife script = layer2[i].GetComponent <StarLife>();

            if (!starfieldRect.Contains(layer2[i].transform.position))
            {
                script.timeOOB += Time.deltaTime;
            }
            else
            {
                script.timeOOB = 0;
            }

            if (script.timeOOB > starTimeout)
            {
                layer2[i].SetActive(false);
                layer2.RemoveAt(i);
            }
        }

        //Update 3rd Layer
        for (int i = layer3.Count - 1; i >= 0; i--)
        {
            layer3[i].transform.position += (deltaPosition * layer3Speed) - deltaPosition;
            StarLife script = layer3[i].GetComponent <StarLife>();

            if (!starfieldRect.Contains(layer3[i].transform.position))
            {
                script.timeOOB += Time.deltaTime;
            }
            else
            {
                script.timeOOB = 0;
            }

            if (script.timeOOB > starTimeout)
            {
                layer3[i].SetActive(false);
                layer3.RemoveAt(i);
            }
        }

        //Check number of stars in 1st layer and add more in direction of player movement
        while (layer1.Count < numOfStarsLayer1)
        {
            GameObject obj;
            Vector2    dirNormal;
            obj = starPool.GetPooledObject();
            StarLife script = obj.GetComponent <StarLife>();
            script.timeOOB = 0;
            dirNormal      = player.GetComponent <Rigidbody2D>().velocity.normalized;
            if (dirNormal.x > 0)
            {
                if (dirNormal.y > 0)
                {
                    //top right
                    if (Random.value < 0.5f)
                    {
                        obj.transform.position = new Vector2(Random.Range(starfieldRect.xMin, starfieldRect.xMax), starfieldRect.yMax);
                    }
                    else
                    {
                        obj.transform.position = new Vector2(starfieldRect.xMax, Random.Range(starfieldRect.yMin, starfieldRect.yMax));
                    }
                }
                else
                {
                    //bottom right
                    if (Random.value < 0.5f)
                    {
                        obj.transform.position = new Vector2(Random.Range(starfieldRect.xMin, starfieldRect.xMax), starfieldRect.yMin);
                    }
                    else
                    {
                        obj.transform.position = new Vector2(starfieldRect.xMax, Random.Range(starfieldRect.yMin, starfieldRect.yMax));
                    }
                }
            }
            else
            {
                if (dirNormal.y > 0)
                {
                    //top left
                    if (Random.value < 0.5f)
                    {
                        obj.transform.position = new Vector2(Random.Range(starfieldRect.xMin, starfieldRect.xMax), starfieldRect.yMax);
                    }
                    else
                    {
                        obj.transform.position = new Vector2(starfieldRect.xMin, Random.Range(starfieldRect.yMin, starfieldRect.yMax));
                    }
                }
                else
                {
                    //bottom left
                    if (Random.value < 0.5f)
                    {
                        obj.transform.position = new Vector2(Random.Range(starfieldRect.xMin, starfieldRect.xMax), starfieldRect.yMin);
                    }
                    else
                    {
                        obj.transform.position = new Vector2(starfieldRect.xMin, Random.Range(starfieldRect.yMin, starfieldRect.yMax));
                    }
                }
            }
            obj.SetActive(true);
            layer1.Add(obj);
        }

        //Check number of stars in 2nd layer and add more in direction of player movement
        if (layer2.Count < numOfStarsLayer2)
        {
            GameObject obj;
            Vector2    dirNormal;
            obj = starPool.GetPooledObject();
            StarLife script = obj.GetComponent <StarLife>();
            script.timeOOB = 0;
            dirNormal      = player.GetComponent <Rigidbody2D>().velocity.normalized;
            if (dirNormal.x > 0)
            {
                if (dirNormal.y > 0)
                {
                    //top right
                    if (Random.value < 0.5f)
                    {
                        obj.transform.position = new Vector2(Random.Range(starfieldRect.xMin, starfieldRect.xMax), starfieldRect.yMax - Random.Range(edgeSpawnMin, edgeSpawnMax));
                    }
                    else
                    {
                        obj.transform.position = new Vector2(starfieldRect.xMax - Random.Range(edgeSpawnMin, edgeSpawnMax), Random.Range(starfieldRect.yMin, starfieldRect.yMax));
                    }
                }
                else
                {
                    //bottom right
                    if (Random.value < 0.5f)
                    {
                        obj.transform.position = new Vector2(Random.Range(starfieldRect.xMin, starfieldRect.xMax), starfieldRect.yMin + Random.Range(edgeSpawnMin, edgeSpawnMax));
                    }
                    else
                    {
                        obj.transform.position = new Vector2(starfieldRect.xMax - Random.Range(edgeSpawnMin, edgeSpawnMax), Random.Range(starfieldRect.yMin, starfieldRect.yMax));
                    }
                }
            }
            else
            {
                if (dirNormal.y > 0)
                {
                    //top left
                    if (Random.value < 0.5f)
                    {
                        obj.transform.position = new Vector2(Random.Range(starfieldRect.xMin, starfieldRect.xMax), starfieldRect.yMax - Random.Range(edgeSpawnMin, edgeSpawnMax));
                    }
                    else
                    {
                        obj.transform.position = new Vector2(starfieldRect.xMin + Random.Range(edgeSpawnMin, edgeSpawnMax), Random.Range(starfieldRect.yMin, starfieldRect.yMax));
                    }
                }
                else
                {
                    //bottom left
                    if (Random.value < 0.5f)
                    {
                        obj.transform.position = new Vector2(Random.Range(starfieldRect.xMin, starfieldRect.xMax), starfieldRect.yMin + Random.Range(edgeSpawnMin, edgeSpawnMax));
                    }
                    else
                    {
                        obj.transform.position = new Vector2(starfieldRect.xMin + Random.Range(edgeSpawnMin, edgeSpawnMax), Random.Range(starfieldRect.yMin, starfieldRect.yMax));
                    }
                }
            }
            obj.SetActive(true);
            layer2.Add(obj);
        }

        //Check number of stars in 3rd layer and add more in direction of player movement
        if (layer3.Count < numOfStarsLayer3)
        {
            GameObject obj;
            Vector2    dirNormal;
            obj = starPool.GetPooledObject();
            StarLife script = obj.GetComponent <StarLife>();
            script.timeOOB = 0;
            dirNormal      = player.GetComponent <Rigidbody2D>().velocity.normalized;
            if (dirNormal.x > 0)
            {
                if (dirNormal.y > 0)
                {
                    //top right
                    if (Random.value < 0.5f)
                    {
                        obj.transform.position = new Vector2(Random.Range(starfieldRect.xMin, starfieldRect.xMax), starfieldRect.yMax - Random.Range(edgeSpawnMin, edgeSpawnMax));
                    }
                    else
                    {
                        obj.transform.position = new Vector2(starfieldRect.xMax - Random.Range(edgeSpawnMin, edgeSpawnMax), Random.Range(starfieldRect.yMin, starfieldRect.yMax));
                    }
                }
                else
                {
                    //bottom right
                    if (Random.value < 0.5f)
                    {
                        obj.transform.position = new Vector2(Random.Range(starfieldRect.xMin, starfieldRect.xMax), starfieldRect.yMin + Random.Range(edgeSpawnMin, edgeSpawnMax));
                    }
                    else
                    {
                        obj.transform.position = new Vector2(starfieldRect.xMax - Random.Range(edgeSpawnMin, edgeSpawnMax), Random.Range(starfieldRect.yMin, starfieldRect.yMax));
                    }
                }
            }
            else
            {
                if (dirNormal.y > 0)
                {
                    //top left
                    if (Random.value < 0.5f)
                    {
                        obj.transform.position = new Vector2(Random.Range(starfieldRect.xMin, starfieldRect.xMax), starfieldRect.yMax - Random.Range(edgeSpawnMin, edgeSpawnMax));
                    }
                    else
                    {
                        obj.transform.position = new Vector2(starfieldRect.xMin + Random.Range(edgeSpawnMin, edgeSpawnMax), Random.Range(starfieldRect.yMin, starfieldRect.yMax));
                    }
                }
                else
                {
                    //bottom left
                    if (Random.value < 0.5f)
                    {
                        obj.transform.position = new Vector2(Random.Range(starfieldRect.xMin, starfieldRect.xMax), starfieldRect.yMin + Random.Range(edgeSpawnMin, edgeSpawnMax));
                    }
                    else
                    {
                        obj.transform.position = new Vector2(starfieldRect.xMin + Random.Range(edgeSpawnMin, edgeSpawnMax), Random.Range(starfieldRect.yMin, starfieldRect.yMax));
                    }
                }
            }
            obj.SetActive(true);
            layer3.Add(obj);
        }
    }