GamePiece.cs
unknown
csharp
2 years ago
3.7 kB
9
Indexable
using UnityEngine;
using System.Collections;
// This script is attached to each game piece or actual board position (game object). Together, each game piece makes up the tic tack toe board
// see gameboard in GameBoard script.
public class GamePiece : MonoBehaviour {
// Sets boundary for game board.
public const float BOUND_MIN_X= -12;
public const float BOUND_MAX_X= 15;
public const float BOUND_MIN_Z= -15;
public const float BOUND_MAX_Z= 10;
public float spaceBetween = 1;
public GameBoard.PLAYERS_ID PlayerID
{
get
{
return playerID;
}
set
{
playerID = value;
}
}
public int Row
{
get
{
return row;
}
set
{
row = value;
}
}
public int Column
{
get
{
return column;
}
set
{
column = value;
}
}
public bool Occupied
{
get
{
return isOccupied;
}
set
{
isOccupied = value;
}
}
public void SetStartPosition( Vector3 startPos )
{
startPosition = startPos;
}
public void SetEndPosition( Vector3 endPos )
{
endPosition = endPos;
}
public void SetParameters(int boardRow, int boardColumn )
{
row = boardRow;
column = boardColumn;
}
public void SetColor(Color newColor)
{
GetComponent<Renderer>().material.color = newColor;
}
// Assigns the square to be occupied by playerNum.
public void AddPlayerToSquare(GameBoard.PLAYERS_ID playerNum, int boardRow, int boardColumn)
{
isOccupied = true;
playerID = playerNum;
row = boardRow;
column = boardColumn;
}
// Initialize the "square" for game board
public void InitPlayerSquare(int boardRow, int boardColumn)
{
isOccupied = false;
playerID = GameBoard.PLAYERS_ID.PLAYER_NONE;
row = boardRow;
column = boardColumn;
SetGamePiecePositions();
SetParameters(boardRow, boardColumn);
GetComponent<Renderer>().material.color = new Color(255, 255, 0);
}
#region Private Members
private const float YPos = 2.0f;
private GameBoard.PLAYERS_ID playerID; // Stores the player ID of that occupies game piece/spot
private bool isOccupied = false; // True if player chooses a this spot
private Vector3 startPosition = Vector3.zero; // Allows for movement of board pieces if required
private Vector3 endPosition = Vector3.zero; // Allows for movement of board pieces if required
private int row; // Specifies the row and column position on board grid
private int column;
void Awake()
{
spaceBetween = 4;
row = -1;
column = -1;
isOccupied = false;
}
// Use this for initialization
void Start () {
}
// Update is called once per frame
void Update () {
transform.position = endPosition;
}
private void OnMouseDown()
{
print("game piece " + " row " + row + " column " + column );
GameBoard.BoardClicked( row, column, isOccupied, GameBoard.PLAYERS_ID.PLAYER_ONE );
}
// Uses the column, row data to set positions for game piece.
private void SetGamePiecePositions()
{
float startX = GamePiece.BOUND_MIN_X + (column * spaceBetween);
float endX = GamePiece.BOUND_MIN_X + (column * spaceBetween);
float startZ = GamePiece.BOUND_MAX_Z;
float endZ = GamePiece.BOUND_MAX_Z - row * spaceBetween;
SetStartPosition(new Vector3(startX,YPos,startZ));
SetEndPosition(new Vector3(endX,YPos,endZ));
}
#endregion
}
Editor is loading...