void UpdateCurDynamicBrick()
 {
     for (int i = 0; i < dynamicBricks.Count; i++)
     {
         DynamicBrick db = dynamicBricks [i];
         db.Update();
     }
 }
	DynamicBrick NewDynamicBrick ()
	{
		GameObject go = GameObject.Instantiate (CloneDynamicBrick) as GameObject;//  GameObject.CreatePrimitive (PrimitiveType.Cube);
		go.transform.parent = this.transform;
		go.SetActive (false);
		DynamicBrick db = new DynamicBrick (go);
		go.GetComponent<DynamicBrickController> ().DB = db;
		return db;
	}
Exemple #3
0
    void OnCollisionEnter(Collision collsion)
    {
        rb.velocity = v;
        jumpTimes   = 0;
        DynamicBrick db = collsion.gameObject.GetComponent <DynamicBrickController> ().DB;

        rd.material.color = db.BColor.C;
        PlayGameInstance_old.INSTANCE.PSC.BM.GetLeaveBricks(db);
    }
 void SetLeave(DynamicBrick db, int leaveCount)
 {
     db.IReset();
     db.Comming     = false;
     db.DelayTime   = leaveCount * delayTime_Cell * 5f;
     db.LeastFrame  = leaveCount;
     db.InitPot     = db.Go.transform.localPosition;
     db.TargetPot   = db.InitPot + leaveSpan;
     db.MaxMoveTime = ComputeMaxTime(leaveSpan);
 }
Exemple #5
0
 void InitPool(int size)
 {
     for (int i = 0; i < size; i++)
     {
         GameObject go = GameObject.CreatePrimitive(PrimitiveType.Cube);
         go.transform.parent = this.transform;
         go.SetActiveRecursively(false);
         DynamicBrick db = new DynamicBrick(go);
         pool.Add(db);
     }
 }
    DynamicBrick NewDynamicBrick()
    {
        GameObject go = GameObject.Instantiate(CloneDynamicBrick) as GameObject;         //  GameObject.CreatePrimitive (PrimitiveType.Cube);

        go.transform.parent = this.transform;
        go.SetActive(false);
        DynamicBrick db = new DynamicBrick(go);

        go.GetComponent <DynamicBrickController> ().DB = db;
        return(db);
    }
Exemple #7
0
 void UpdateSimulatorPot()
 {
     if ((time += Time.deltaTime) > 2f)
     {
         if (!start)
         {
             start = true;
             Init();
         }
     }
     if (start)
     {
         v.y -= 10f * Time.deltaTime;
         Vector3 pot = player.transform.localPosition;
         pot += v * Time.deltaTime;
         if (pot.y < 3)
         {
             v.y = 6;
             int          leaveCount = 0;
             DynamicBrick lastDB     = null;
             for (int i = 0; i < dynamicBricks.Count; i++)
             {
                 DynamicBrick db = dynamicBricks [i];
                 if (player.transform.localPosition.x > db.Go.transform.localPosition.x)
                 {
                     leaveCount++;
                     leaveDynamicBricks.Add(db);
                     SetLeave(db, leaveCount);
                     dynamicBricks.Remove(db);
                     i--;
                 }
                 if (db.Go.transform.localPosition.x - 0.5f < pot.x &&
                     pot.x < db.Go.transform.localPosition.x + 0.5f)
                 {
                     if (db.Go.transform.localPosition.y > 1.5f)
                     {
                         lastDB = db;
                     }
                 }
                 else
                 {
                     if (lastDB != null)
                     {
                         player.GetComponent <Renderer>().material.color = lastDB.Go.GetComponent <Renderer>().material.color;
                         lastDB = null;
                     }
                 }
             }
         }
         player.transform.localPosition = pot;
     }
 }
 void UpdateLeaveDynamicBrick()
 {
     for (int i = 0; i < leaveDynamicBricks.Count; i++)
     {
         DynamicBrick db = leaveDynamicBricks [i];
         db.Update();
         if (db.Over)
         {
             pool.Free(db);
             leaveDynamicBricks.Remove(db);
             i--;
         }
     }
 }
    float delayTime_Cell = 0.01f;    // 0.02f;

    void GenerateBlockBrick(Vector2 startPot, int xCount, int yCount, Vector3 spanPot, float delayTime_Cell, bool useConstantSpeed)
    {
        float xPot, yPot;
        int   count    = 0;
        int   tmpCount = 0;
        float maxTime  = ComputeMaxTime(spanPot);

        for (int i = 0; i < xCount; i++)
        {
            xPot = startPot.x + i * cellSizeX;

            for (int j = 0; j < yCount; j++)
            {
                yPot = startPot.y + j * cellSizeY;
//				if(spanPot.y>=0)
//				else {
//					yPot= startPot.y + (yCount-j-1) * cellSizeY;
//				}

                count++;
                tmpCount = count;
                if (spanPot.y < 0)
                {
                    tmpCount = count - (yCount - j - 1);
                }

                DynamicBrick db = pool.Obtain();
                db.Comming                    = true;
                db.DelayTime                  = tmpCount * delayTime_Cell;
                db.LeastFrame                 = tmpCount;
                db.UseConstantSpeed           = useConstantSpeed;
                db.MaxMoveTime                = maxTime;
                db.BColor                     = BrickColor.GetRandomColor();
                db.TargetPot                  = new Vector3(xPot, yPot, 0);
                db.InitPot                    = db.TargetPot + spanPot;
                db.Go.transform.localPosition = db.InitPot;
                db.Go.GetComponent <Renderer> ().material.color = db.BColor.C;               // new Color (Random.Range (0f, 1f), Random.Range (0f, 1f), Random.Range (0f, 1f));
                db.Go.SetActive(false);

                dynamicBricks.Add(db);
            }
        }

        endPot.x = startPot.x + xCount * cellSizeX;
        endPot.y = startPot.y + yCount * cellSizeY;

        useContanstSpeed = !useContanstSpeed;
    }
    public void GetLeaveBricks(DynamicBrick db_BelowPlayer)
    {
        int leaveCount = 0;

        for (int i = 0; i < dynamicBricks.Count; i++)
        {
            DynamicBrick db = dynamicBricks [i];
            if (db_BelowPlayer.Go.transform.localPosition.x >= db.Go.transform.localPosition.x)
            {
                leaveCount++;
                leaveDynamicBricks.Add(db);
                SetLeave(db, leaveCount);
                dynamicBricks.Remove(db);
                i--;
            }
        }
    }
Exemple #11
0
    void DynamicEffect()
    {
        bool leave = player.transform.localPosition.x > curValidateX + 2f;


        for (int i = 0; i < dynamicBricks.Count; i++)
        {
            DynamicBrick db = dynamicBricks [i];
            db.Update();

//			if (player.transform.localPosition.x > db.Go.transform.localPosition.x) {
//				leaveCount++;
//				leaveDynamicBricks.Add (db);
//				SetLeave (db, leaveCount);
//				dynamicBricks.Remove (db);
//				i--;
//			}
        }

        UpdateLeaveDynamicBrick();
        UpdateSimulatorPot();
        leave = true;
        if (leave && dynamicBricks.Count < 20)
        {
            curValidateX = player.transform.localPosition.x;
            int x, y;
            int r = Random.Range(0, 10);
            if (r < 3)
            {
                x = Random.Range(10, 15);
                y = Random.Range(-5, 5);
            }
            else if (r < 6)
            {
                x = Random.Range(3, 8);
                y = Random.Range(-15, -10);
            }
            else
            {
                x = Random.Range(3, 8);
                y = Random.Range(10, 15);
            }
            GenerateBlockBrick(new Vector2(endPot.x, 0), 3, 3, new Vector3(x, y, x), delayTime_Cell * 5, false);
        }
    }
Exemple #12
0
    DynamicBrick ObtainDynamicBrick()
    {
        if (pool.Count < 1)
        {
            InitPool(addSize);
        }

        if (pool.Count == 0)
        {
            Debug.Log("The pool size null");
            return(null);
        }

        DynamicBrick db = pool [0];

        pool.RemoveAt(0);

        db.Reset();

        return(db);
    }
Exemple #13
0
 void SetLeave(DynamicBrick db, int leaveCount)
 {
     db.Reset ();
     db.Comming = false;
     db.DelayTime = leaveCount * delayTime_Cell * 5f;
     db.LeastFrame = leaveCount;
     db.InitPot = db.Go.transform.localPosition;
     db.TargetPot = db.InitPot + leaveSpan;
     db.MaxMoveTime = ComputeMaxTime (leaveSpan);
 }
Exemple #14
0
 void ResetDynamicBrick(DynamicBrick db)
 {
     db.Reset ();
     pool.Add (db);
 }
Exemple #15
0
 void InitPool(int size)
 {
     for (int i=0; i<size; i++) {
         GameObject go = GameObject.CreatePrimitive (PrimitiveType.Cube);
         go.transform.parent = this.transform;
         go.SetActiveRecursively (false);
         DynamicBrick db = new DynamicBrick (go);
         pool.Add (db);
     }
 }
	public void GetLeaveBricks (DynamicBrick db_BelowPlayer)
	{
		int leaveCount = 0;
		for (int i=0; i<dynamicBricks.Count; i++) {
			DynamicBrick db = dynamicBricks [i];
			if (db_BelowPlayer.Go.transform.localPosition.x >= db.Go.transform.localPosition.x) {
				leaveCount++;
				leaveDynamicBricks.Add (db);
				SetLeave (db, leaveCount);
				dynamicBricks.Remove (db);
				i--;
			} 
		}
	}
Exemple #17
0
 void ResetDynamicBrick(DynamicBrick db)
 {
     db.Reset();
     pool.Add(db);
 }