public void InputDetected(TileBrain a, Vector2 dir) { //Debug.Log("ID: " + a + " in Direction " + dir); string number = a.name.Substring(4); int x = Convert.ToInt32(number[0].ToString()); int y = Convert.ToInt32(number[1].ToString()); int x2 = x - (int)dir.y; int y2 = y + (int)dir.x; GameObject b = AllTilesX[x2, y2]; //Debug.Log(b.name); AllTilesX[x, y] = b; AllTilesY[y, x] = b; AllTilesX[x2, y2] = a.gameObject; AllTilesY[y2, x2] = a.gameObject; Vector2 posa = a.gameObject.transform.position; a.gameObject.transform.position = b.transform.position; b.transform.position = posa; string aname = a.name; a.name = b.name; b.name = aname; //if (PerformCheck()) // InputDetected(a, -dir); Check(); }
public void CheckN() { n = new List<TileBrain>(); int oldLayer = gameObject.layer; gameObject.layer = LayerMask.NameToLayer("Ghost"); int layerToIgnore = 1 << gameObject.layer; layerToIgnore = ~layerToIgnore; Vector2 cast = new Vector2(transform.position.x, transform.position.y); RaycastHit2D hit = Physics2D.Raycast(cast, Vector2.down, 0.40f, layerToIgnore); if (hit.collider != null) { hit.transform.gameObject.SendMessage("Hello", new HelloMsg(this, "top")); } else if (botn != null) botn = null; cast = new Vector2(transform.position.x, transform.position.y); hit = Physics2D.Raycast(transform.position, Vector2.up, 0.40f, layerToIgnore); if (hit.collider != null) { hit.transform.gameObject.SendMessage("Hello", new HelloMsg(this, "bot")); } else if (topn != null) topn = null; cast = new Vector2(transform.position.x, transform.position.y); hit = Physics2D.Raycast(transform.position, Vector2.left, 0.40f, layerToIgnore); if (hit.collider != null) { hit.transform.gameObject.SendMessage("Hello", new HelloMsg(this, "right")); } else if (leftn != null) leftn = null; cast = new Vector2(transform.position.x, transform.position.y); hit = Physics2D.Raycast(transform.position, Vector2.right, 0.40f, layerToIgnore); if (hit.collider != null) { hit.transform.gameObject.SendMessage("Hello", new HelloMsg(this, "left")); } else if (rightn != null) rightn = null; //if(pbotn != botn) //{ // MoveOneDown(); //} if (botn != pbotn) pbotn = botn; gameObject.layer = oldLayer; }
public HelloMsg(TileBrain n, string p) { neighbor = n; pos = p; }
//private void Destroy(List wh) //{ // if (wh.chain >= 0) // { // this.gameObject.SetActive(false); // wh.chain--; // EndChain(wh); // } //} public void Hello(HelloMsg msg) { switch(msg.pos) { case "top": topn = msg.neighbor; topn.change += CheckN; break; case "bot": botn = msg.neighbor; botn.change += CheckN; break; case "left": leftn = msg.neighbor; leftn.change += CheckN; break; case "right": rightn = msg.neighbor; rightn.change += CheckN; break; } }