Unity3D实现简易五子棋源码
本文实例为大家分享了Unity3d简易五子棋源码,供大家参考,具体内容如下
Unity3d部分
对C#源码进行了改写简化:
usingUnityEngine;
usingSystem.Collections;
publicclasschess:MonoBehaviour
{
//四个锚点位置,用于计算棋子落点
publicGameObjectLeftTop;
publicGameObjectRightTop;
publicGameObjectLeftBottom;
publicGameObjectRightBottom;
//主摄像机
publicCameracam;
//锚点在屏幕上的映射位置
Vector3LTPos;
Vector3RTPos;
Vector3LBPos;
Vector3RBPos;
Vector3PointPos;//当前点选的位置
floatgridWidth=1;//棋盘网格宽度
floatgridHeight=1;//棋盘网格高度
floatminGridDis;//网格宽和高中较小的一个
Vector2[,]chessPos;//存储棋盘上所有可以落子的位置
int[,]chessState;//存储棋盘位置上的落子状态
enumturn{black,white};
turnchessTurn;//落子顺序
publicTexture2Dwhite;//白棋子
publicTexture2Dblack;//黑棋子
publicTexture2DblackWin;//白子获胜提示图
publicTexture2DwhiteWin;//黑子获胜提示图
intwinner=0;//获胜方,1为黑子,-1为白子
boolisPlaying=true;//是否处于对弈状态
voidStart()
{
chessPos=newVector2[15,15];
chessState=newint[17,16];/*原来定义是newint[15,15],这里将原来数组chessState上、下和右边各加一排数据,
也就相当于在棋盘的上、下和右边各填加一排隐形的棋道。原因后面解释*/
chessTurn=turn.black;
//计算锚点位置
LTPos=cam.WorldToScreenPoint(LeftTop.transform.position);
RTPos=cam.WorldToScreenPoint(RightTop.transform.position);
LBPos=cam.WorldToScreenPoint(LeftBottom.transform.position);
RBPos=cam.WorldToScreenPoint(RightBottom.transform.position);
//计算网格宽度
gridWidth=(RTPos.x-LTPos.x)/14;
gridHeight=(LTPos.y-LBPos.y)/14;
minGridDis=gridWidth
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。