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; }
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); }
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); }
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--; } } }
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); } }
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); }
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); }
void ResetDynamicBrick(DynamicBrick db) { db.Reset (); pool.Add (db); }
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--; } } }
void ResetDynamicBrick(DynamicBrick db) { db.Reset(); pool.Add(db); }