前言
中山大学数据科学与计算机学院3D游戏课程学习记录博客。
游戏代码:gitee
游戏视频:bilibili
游戏要求
- 游戏内容:井字棋
- 技术限制:仅使用IMGUI构建UI
- 作业目的:
- 了解 OnGUI() 事件,提升 debug 能力
- 提升阅读 API 文档能力
规则分析
- 每个位置只能有一个棋子
- 两人交替下棋,每次下一枚棋子
- 当三个同种棋子连成一线,游戏结束
- 棋盘大小为3x3
游戏实现
游戏实现大概分为两步:制作UI和规则代码化。
制作UI:
- 先选取合适的位置,合适的大小画出棋盘:
int w=Screen.width/2;
GUI.Box(new Rect(w-150,50,300,400),"井字棋");
- 再画出目前的游戏状态,比如play(游戏中),O win(玩家1胜利)等:
GUI.Box(new Rect(w-50,80,100,35),"Play!");
- 然后画出重置按钮,便于重新开始游戏:
if(GUI.Button(new Rect(w-50,415,100,35),"Reset"))
reset();
当reset被点击时需要重新开始游戏,所以需要判断是否被点击。
- 最后用border来表示各个位置的值,画出棋盘上的每个位置:
private int[][] border=new int[3][]{
new int[3],new int[3],new int[3]};
for(int i=0;i<3;