void SpawnNormalEnemy()
    {
        int xMin = -18; int xMax = 18;
        int yMin = -3; int yMax = 9;
        int spawnX; int spawnY;

        int tries = 0;

        do
        {
            spawnX = Random.Range(xMin / 3, xMax / 3) * 3;
            spawnY = (int)(RandomFromDistribution.RandomRangeExponential(yMin / 3, yMax / 3, 2, RandomFromDistribution.Direction_e.Right)) * 3;

            tries++;
            if (tries == 10)
            {
                Debug.Log("Can't find space to spawn normal enemy!");
                return;
            }
        } while (IsEnemyThere(spawnX, spawnY, "EnemyShip1"));

        Vector3    spawnLocation = new Vector3(spawnX, 30, 0);
        Quaternion roation       = Quaternion.Euler(0, 0, 0);

        GameObject normalEnemySpawn = (GameObject)Instantiate(normalEnemy, spawnLocation, roation);

        normalEnemySpawn.GetComponent <enemy01Manager>().setSpawnLocation(spawnX, spawnY);
    }
Ejemplo n.º 2
0
    private void GenerateCone(int color)
    {
        for (int i = 0; i < 25; i++)
        {
            float minAngle = this.transform.rotation.eulerAngles.z - coneAngle;
            float maxAngle = this.transform.rotation.eulerAngles.z + coneAngle;
            //Debug.Log("Angulo: " + this.transform.rotation.eulerAngles + " Min: " + minAngle + " Max: " + maxAngle);

            float newAngle = RandomFromDistribution.RandomRangeNormalDistribution(minAngle, maxAngle, RandomFromDistribution.ConfidenceLevel_e._95);

            if (newAngle <= 360 && newAngle >= 275)
            {
                newAngle = 0;
            }
            else if (newAngle >= 180 && newAngle < 275)
            {
                newAngle = 180;
            }

            newAngle = newAngle * Mathf.Deg2Rad;

            float newDistance = RandomFromDistribution.RandomRangeExponential(0, distance, 1, RandomFromDistribution.Direction_e.Right);

            float catetoX = Mathf.Cos(newAngle) * newDistance;
            float catetoY = Mathf.Abs(Mathf.Sin(newAngle) * newDistance);
            //Debug.Log("NewAngle: " + newAngle + " NewDistance: " + newDistance + " CatetoX: " + catetoX + " CatetoY: " + catetoY);

            Vector3 newPoint = this.transform.position + new Vector3(catetoX, catetoY, 0);
            int     shift    = Random.Range(0, 2);
            Instantiate(stain[color * 2 + shift], newPoint, Quaternion.identity);
        }
    }
Ejemplo n.º 3
0
    public int CreateGraph(int repetitions, int min, int max, int playerbucket, GameObject videoObj)
    {
        int[] buckets = new int[max + 1 - min];
        for (int i = 0; i < buckets.Length; ++i)
        {
            buckets[i] = 0;
        }

        for (int i = 0; i < repetitions; ++i)
        {
            float bucket = RandomFromDistribution.RandomRangeExponential(min, max, exponent, direction);

            buckets[Mathf.RoundToInt(bucket) - min]++;
        }

        if (playerbucket > max)
        {
            playerbucket = max;
        }
        if (playerbucket < min)
        {
            playerbucket = min;
        }

        repetitions -= buckets[playerbucket];
        return(buckets[playerbucket]);
    }
Ejemplo n.º 4
0
    // Update is called once per frame
    void Update()
    {
        instantiationTimer -= Time.deltaTime;

        //controller.GetComponent<Controller>().getNumPlanesOfLvl(3) < 12
        if (instantiationTimer <= 0 && controller.GetComponent <Controller>().getFlyingPlanes() < 10)
        {
            createPlane();
            instantiationTimer = RandomFromDistribution.RandomRangeExponential(5, 8, 2, direction);
        }
    }
Ejemplo n.º 5
0
    // Update is called once per frame
    void Update()
    {
        if (player.transform.position.z < 0 & numTraversalsLocal != sp.numTraversals)
        {
            numTraversalsLocal++;

            if (numTraversalsLocal >= (numBaselineTrials + numTrainingTrials))
            {
                if (nextMorphTrial < 0)
                {
                    nextMorphTrial = numTraversalsLocal + (int)RandomFromDistribution.RandomRangeExponential(0f, 8f, morphExp, RandomFromDistribution.Direction_e.Right);
                }
                if (numTraversalsLocal == nextMorphTrial)
                {
                    nextMorphTrial = -1;
                    sp.morph       = morphTrials[morphCounter];
                    morphCounter++;
                }
                else
                {
                    sp.morph = NextTrial();
                    trialHistory.Add(sp.morph);
                }
            }
            else if (numTraversalsLocal >= numBaselineTrials)
            {
                sp.morph = NextTrial();
                trialHistory.Add(sp.morph);
            }
            else
            {
                sp.morph = baselineTrials[numTraversalsLocal];
            }

            if (UnityEngine.Random.value < .5)
            {
                sp.BlockWalls = true;
            }
            else
            {
                sp.BlockWalls = false;
            }

            if (trialHistory.Count > 40)
            {
                trialHistory.RemoveAt(0);
            }
        }
    }
Ejemplo n.º 6
0
 protected override float GetRandomNumber(float min, float max)
 {
     return(RandomFromDistribution.RandomRangeExponential(min, max, exponent, direction));
     //Debug.Log(RandomFromDistribution.RandomRangeExponential(min, max, exponent, direction));
 }
Ejemplo n.º 7
0
 // Start is called before the first frame update
 void Start()
 {
     instantiationTimer = RandomFromDistribution.RandomRangeExponential(5, 8, 2, direction);
 }
 public override float GetRandomNumber(float min, float max)
 {
     return(RandomFromDistribution.RandomRangeExponential(min, max, exponent, direction));
 }