在checkstate函数的编写中经过了许多次调试,最后实现了效果,具体请看博客
把cs文件和三个图片文件,拖到Unity处理窗口中,创建一个新的空对象,再把三个图片分别拖到该对象的icon1(sunflower),icon2(peashooter),background()background中即可
(详细实现写在博客里了,以下是复制的博客的文字内容,代码没来得及搞在readme里,建议看博客) 用Unity实现井字棋
要求做到实体(数据),部件(逻辑),系统(交互与呈现)三者分离
首先定义数据 依次是:
表示棋盘的一个二维数组
表示下棋顺序的turn
定义主菜单界面和每个棋格大小的参数
表示游戏模式,0表示主菜单,1表示游戏进行中,2表示游戏已结束
三种字体,应用于菜单界面和最后显示获胜者提示
Ongui函数,就是它决定游戏每一帧应该怎么画,这里用switch来分别实现三种模式的交互模式。
我把mode1和mode2基本上写在一起了,但是中间试了很多种情况才最后实现了想要的效果。
上面四行实现的是背景图片,后面实现两个文本,一个是label的,一个是button的start,label不能点击,button的可以点击,点击start开始游戏,进入模式1
第一个checkresult函数检查游戏结果,用了两个变量来确定游戏的状态,这里主要是与游戏逻辑相关的,不在赘述,最后返回几个不同的值交给下一步中的函数做判断。
最开始四行画出背景不说了,其他主要是用PlayerMove函数实现玩家的落子,并在该函数中运行checkstate检查游戏状态,这里花了点时间,调试,mode=1,mode=2这两个状态的位置,最后终于实现了想要的效果,即当出现胜方或平?趾螅俚慊鱞utton无变化,且屏幕上始终显示“甲赢了”或“平局”的结果,要求玩家必须点击“Reset”或者“back to menu”才可以。