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以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。