private void NewGame(PegGameType gameType) { gameBoard = GameBoards[gameType].Clone() as PegBoard; controller = PegControllerFactory.CreateForGameType(gameType, gameBoard); controller.LoadView(MainView); }
void Update() { if (boardManager != null) { if (boardManager.state != GameState.Playing) { return; } } if (boardManagerSquare != null) { if (boardManagerSquare.state != GameState.Playing) { return; } } if (Input.GetMouseButtonDown(0)) // if left button pressed... // and some object is under the mouse pointer... { if (Physics.Raycast(cam.ScreenPointToRay(Input.mousePosition), out hit, 500)) { // and it has the right tag... if (hit.transform.tag == "peg") { heldPeg = hit.transform.GetComponent <PegController>(); // raise the peg above the board if not already done if (!lifted) { objTr = hit.transform; Vector3 newPos = originalPosition = objTr.position; newPos += objTr.up * 3.0f; objTr.position = newPos; AudioSource.PlayClipAtPoint(pickUp, objTr.position); lifted = true; } // starts dragging it StartCoroutine("DragObject"); } } } }
bool CheckValidMoves(GameObject peg) { PegController pegCont = peg.GetComponent <PegController>(); HoleController hole = pegCont.originalHole; HoleController nextRow = getNextRow(hole); HoleController prevRow = getPrevRow(hole); HoleController nextCol = getNextCol(hole); HoleController prevCol = getPrevCol(hole); if (nextRow && nextRow.currentPeg) { HoleController nextNextRow = getNextRow(nextRow); if (nextNextRow && !nextNextRow.currentPeg) { return(true); } } if (prevRow && prevRow.currentPeg) { HoleController prevPrevRow = getPrevRow(prevRow); if (prevPrevRow && !prevPrevRow.currentPeg) { return(true); } } if (nextCol && nextCol.currentPeg) { HoleController nextNextCol = getNextCol(nextCol); if (nextNextCol && !nextNextCol.currentPeg) { return(true); } } if (prevCol && prevCol.currentPeg) { HoleController prevPrevCol = getPrevCol(prevCol); if (prevPrevCol && !prevPrevCol.currentPeg) { return(true); } } return(false); }
bool CheckValidMoves(GameObject peg) { PegController pegCont = peg.GetComponent <PegController>(); HoleController hole = pegCont.originalHole; HoleController leftHole = getLeft(hole); HoleController rightHole = getRight(hole); HoleController nextRow = getNextRow(hole); HoleController prevRow = getPrevRow(hole); HoleController nextCol = getNextCol(hole); HoleController prevCol = getPrevCol(hole); if (leftHole && leftHole.currentPeg) { HoleController leftLeft = getLeft(leftHole); if (leftLeft && !leftLeft.currentPeg) { return(true); } } if (rightHole && rightHole.currentPeg) { HoleController rightRight = getRight(rightHole); if (rightRight && !rightRight.currentPeg) { return(true); } } if (nextRow && nextRow.currentPeg) { HoleController nextNextRow = getNextRow(nextRow); if (nextNextRow && !nextNextRow.currentPeg) { return(true); } } if (prevRow && prevRow.currentPeg) { HoleController prevPrevRow = getPrevRow(prevRow); if (prevPrevRow && !prevPrevRow.currentPeg) { return(true); } } if (nextCol && nextCol.currentPeg) { HoleController nextNextCol = getNextCol(nextCol); if (nextNextCol && !nextNextCol.currentPeg) { return(true); } } if (prevCol && prevCol.currentPeg) { HoleController prevPrevCol = getPrevCol(prevCol); if (prevPrevCol && !prevPrevCol.currentPeg) { return(true); } } return(false); }