您当前的位置: 首页 >  unity

十幺卜入

暂无认证

  • 2浏览

    0关注

    119博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Unity3d制作一个简单粗暴的五子棋项目工程源码

十幺卜入 发布时间:2021-03-11 11:40:28 ,浏览量:2

Unity3d制作一个简单粗暴的五子棋
  • 最终效果
  • 项目源码
  • 绘制棋盘
    • 绘制构思
    • 绘制代码
    • 效果图
  • 放置棋子
    • 功能和效果
      • 功能
      • 效果
    • 制作棋子
    • 定义类和类型
      • 棋子类型
      • 棋盘格类
    • 实现功能
      • 初始棋盘格数据
      • 创建棋子
      • 实时同步棋子位置
      • 放置棋子
  • 结束判定
    • 判定分析
    • 结束判定实现
  • 完善工程
    • 新增UI
      • 开始UI
      • 结束UI
    • 完善代码
      • 点击函数
      • 结束操作
  • 总结

最终效果

效果是这样的gif动图展示

在这里插入图片描述

项目源码

先把源码贴这 https://download.csdn.net/download/qq_33789001/15743651

绘制棋盘 绘制构思

先定一个白色背景,然后盘由黑色的线绘制,

15*15的棋盘 就需要15条横着的线,和15条竖着的线构成。 预制两条横竖的线,那么这两条线的两边分别画7条线。 一个7次的for循环就搞定了。

还有五个点,这个就预制好改一下位置就完成。

绘制代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class QiPanCreateor : MonoBehaviour
{
    public GameObject LineMH,LineMV;
    public GameObject Pnt1, Pnt2, Pnt3, Pnt4;

    float width = 40;

    void Start()
    {
        CreatorQiPan();
    }

    void CreatorQiPan() {
        Pnt1.transform.localPosition = new Vector3(-width * 4, -width * 4, 0);
        Pnt2.transform.localPosition = new Vector3(width * 4, -width * 4, 0);
        Pnt3.transform.localPosition = new Vector3(-width * 4, width * 4, 0);
        Pnt4.transform.localPosition = new Vector3(width * 4, width * 4, 0);
        for (int i = 0; i = 0; i--)
        {
            if (QiPanArray[posx, posy].QiTp == QiPanArray[i, posy].QiTp)
            {
                if (++count >= 5)
                    return true;
            }
            else
                break;
        }

        
        count = 1;
        //右上方向检测
        for (int i = posx + 1, j = posy + 1; i = 0 && j >= 0; i--,j--)
        {
            if (QiPanArray[posx, posy].QiTp == QiPanArray[i, j].QiTp)
            {
                if (++count >= 5)
                    return true;
            }
            else
                break;
        }


        count = 1;
        //右下方向检测
        for (int i = posx + 1, j = posy - 1; i = 0; i++, j--)
        {
            if (QiPanArray[posx, posy].QiTp == QiPanArray[i, j].QiTp)
            {
                if (++count >= 5)
                    return true;
            }
            else
                break;
        }
        //左上方向检测
        for (int i = posx - 1, j = posy + 1; i >= 0 && j = 5)
                    return true;
            }
            else
                break;
        }

        return false;
    }

这里的两个参数即int posx,int posy,是最后落下棋子所在的格子的下标。

完善工程 新增UI

这里新增的两个UI分别是开始UI和结束UI,都是自带的按钮组件和图片组件构成。

开始UI

在这里插入图片描述

结束UI

在这里插入图片描述

完善代码

这里主要实现几个按钮的点击功能,已经场景的切换。

点击函数

自己看代码吧:
//开始游戏
    public void Play()
    {
        StartPanel.SetActive(false);
        BackBtn.SetActive(true);
        isGaming = true;
    }


    //重新开始
    public void RePlay()
    {
        StartPanel.SetActive(false);
        OverPanel.SetActive(false);
        BackBtn.SetActive(true);
        for (int i = 0; i             
关注
打赏
1663314737
查看更多评论
0.1142s