扫雷 unity版

以前看没想过扫雷的实现,昨天看到一个帖子发的扫雷,写的很恶心,所以自己就尝试了一下,直接新建一个cs脚本复制以下代码就可以了。

先看看效果

代码:


using System.Collections.Generic;
using UnityEngine;

public class MineSweeper : MonoBehaviour
{
    public static MineSweeper instance;
    private GameObject prefab;
    private List<MineCube> objects; 

    public int Row = 5;
    public int Col = 5;
    public int Mine = 10;
    private int totalCount;

    void Start()
    {
        instance = this;
        CreatePrefab();
        objects = new List<MineCube>();
    }

    void Create()
    {
        //mine总数小于格子数
        if(Mine > Row*Col) {Debug.LogError("Mine's count canot more than grid's count!");return;}
        totalCount = Row*Col;
        //清除所有旧物体
        int count = objects.Count;
        for (int i = count-1; i >=0 ; i--)
        {
            objects[i].DoDestroy();
        }
        objects.Clear();
        //创建物体
        for (int i = 0; i < Row; i++)
        {
            for (int j = 0; j < Col; j++)
            {
                CreateObject(i, j);
            }
        }
        //创建mine
        CreateMines();
        //更新数据
        UpdateMines();
    }

    void OnGUI()
    {
        GUI.Label(new Rect(Screen.width * 0.5f - 100, 0, 200, 30),  "TotalBlock: " + Row * Col + " Mine: " + Mine);
        GUI.Label(new Rect(0,0,50,30),"Row" );
        string row = GUI.TextField(new Rect(50, 0, 50, 30), Row.ToString());
        if (!int.T
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值