private void moveUnder(ref CurrentBlock tmp) { tmp = current.Fall(); while (true) { if (!field.AreWallOrFix(tmp.MovePosition())) { current = tmp; tmp = current.Fall(); } else { tmp = current; return; } } }
void Update() { time += Time.deltaTime; if (time < 3) { return; } if (finish) { return; } if (Input.GetKeyDown(KeyCode.P)) { Debug.Log(field.GetPoint()); } // if(Application.isEditor){ // inputButton(ref tmp); // }else{ inputTouch(ref tmp); // } updateUi(); wait_time++; if (wait_time < Setting.Time) { return; } else { wait_time = 0; } if (field.IsFinishGame()) { Debug.Log("finish"); end(true); } int[][] next_pos = tmp.MovePosition(); if (!field.AreWallOrFix(next_pos)) { field.PreFix(next_pos); current = tmp; } else { if (!button_on) { field.Fix(current.MovePosition()); current = new CurrentBlock(5, 0); next_pos = current.MovePosition(); if (field.AreWallOrFix(next_pos)) { Debug.Log("game over"); end(false); } } } initSetting(); updateField(field.GetFields(), field_blocks); field.Reflash(); field.DeleteCompleteLine(); }