- 博客(12)
- 资源 (2)
- 收藏
- 关注
原创 【unity】12.点击数字自动开启周围格子
我们发现真正的扫雷在游玩的时候可以做到点击数字自动开启附近的格子。参考下图:在数字“4”附近的格子任意放下4个旗子,然后点击数字“4”的格子,会自动开启附近的格子并出现雷。而在下图例子中,在数字“2”附近的格子放下2个旗子后,点击数字“1”的格子,会自动开启附近的格子并出现数字“3”在正确地点放下旗子,点击附近数字“1”后开出数字“3”在错误地点放下旗子后点击数字格,开出雷导致游戏失败。
2024-02-17 18:50:50
485
原创 【unity】11.胜利失败界面
注意unity的Canvas中,越靠下的组件在显示的时候越靠前,会遮挡住靠后的组件。因此当我们在最下面添加两张图片作为结算界面时,图片会挡住后面的格子,使得我们无法再用鼠标点击到格子。将其添加到WinResult和LoseResult组件中,并修改图片尺寸,然后将其设为隐藏(即默认隐藏,等我们需要的时候再显示)上一篇中我们虽然判定了胜负,但是只是将结果打印在console中,并没有在游戏界面上显示。首先在canvas中新建一个空组件命名为Buttons,用来存放所有生成的格子。用PS画两张图作为结算界面。
2024-02-15 17:37:23
1430
原创 【unity】10.胜利判定
在上一节中我们添加了右键点击增加旗子功能,测试发现右键单击已经开过的格子也会将其变为有旗子的样子,猜想按钮上的listener并不会判断按钮是否处于enable状态,因此对。我们规定未开格子剩余数量小于等于雷数量时判定胜利。注意到开过的格子enable都为false,因此计算enable为true的格子数量。同时测试发现DFS在遇到旗子时会显示旗子底下的数字,对DFS函数也做对应修改,遇到旗子直接return。
2024-01-29 22:10:28
604
原创 【unity】9.右键单击添加旗子(Button Right Click事件)
flag图标自己画了一张,存放在Image文件夹下,UISprite直接使用unity自带的即可。来标记该格子中是否标记过旗子,然后把左右键的事件监听都放在按钮身上,在点击后调用。是有雷和没有雷的图像,在unity中选中GameLogic进行修改。在之前的代码中,我们将给每个按钮设置监听事件写在了。为了让已经标了旗子的格子无法再使用左键点击,在。中初始化按钮的地方,现在把这一段注释掉。函数在游戏里寻找了这个类型。的函数,这里在初始化时使用。
2024-01-28 14:02:43
673
原创 【unity】8.深度优先搜索
发现上一篇的自适应尺寸在数目是偶数的情况下,生成出来的格子会偏向一边,对偶数的情况进行了额外处理,修改。为了方便判断row和col是否合法,写了一个新函数。在GameLogic.cs中新增函数。
2023-09-03 20:14:36
179
原创 【unity】7.自适应按钮大小
找到生成按钮的地方,修改按钮尺寸和字号(第一行是之前代码中生成按钮的地方)在代码中将格子数修改为30*16,运行结果如下。并删除我们之前在生成按钮时取按钮尺寸的代码。
2023-09-03 02:19:45
703
原创 【unity】6.点击格子后显示附近雷的数量
选中这个Number对象,修改它的字体、字号、居中、字色等内容,文本内容删掉。,为了方便查询周围的格子,首先我们要新建一个List来存储格子列表,然后在每次创建button之后将其塞进List,并设置它的HasBomb值。函数,在点击格子时判断如果附近雷数量>0,则显示雷,如果附近没有雷,则将格子颜色变灰。,新增一个变量和对应函数表示这个格子里是否有雷,初始化为false表示没有雷。新建一个函数用来取附近8个格子中的雷的数量。,表示这个格子里显示的数字。
2023-09-03 01:52:01
127
原创 【unity】5.随机生成地雷并点击后变红
这样我们就得到一段不重复的序列,通过将这个序列映射到棋盘的行和列中,就可以得到每个雷的位置。在之前的代码中,我们定义了如下内容,分别代表扫雷棋盘的行、列和最大雷数。这样就可以在点击有雷的格子后将该格子变红。中随机生成maxBomb个不重复随机数,算法来自。接下来需要随机生成每个雷所在的行和列,可以先从。接下来修改每个格子的Click事件,修改。
2023-09-03 00:24:28
135
原创 【unity】4.生成button并添加事件
其中buttonPrefab是上一节中我们创建并拖到GameLogic中的prefab,parentButtonPrefab是Canvas。Canvas应该也可以通过find方法来在代码中指定,不过这里直接在GameLogic中定义了。后半部分遍历行和列,计算每个按钮应在的位置,然后生成出来。顺便发现上次为vscode安装的unity扩展没生效,重新参考。
2023-09-02 23:28:32
2400
原创 【unity】3.创建prefab和编写第一个script
把Button重命名为MinesweeperButton,拖进Prefabs文件夹中保存为prefab,然后在Hierarchy中把它删掉。在Scripts文件夹中右键新建一个C# Scripts,命名为MinesweeperButton,双击打开。选中Button,点击Add Component,搜索MinesweeperButton添加。新建Empty命名为GameLogic,并新建Script命名为GameLogic.cs。安装完成后,打开 VSCode,并按下。
2023-09-02 21:33:31
645
原创 【unity】2.基础准备:创建Canvas
在Canvas下新建UI-Raw Image,重命名为Background,作为扫雷游戏的背景。宽高调为1920*1080。用PS画一张背景图,存放在Images文件夹下。选中刚才创建的Background,将其Texture设为这张图片。选中Scenes中的SampleScene,将其修改为MineSweeper。在Hierarchy窗口右键,新建一个Canvas窗口。将Game的比例设为16:9,即可看到完整的背景图。
2023-08-05 23:24:51
1922
原创 【unity】1.安装软件和新建项目
登录自己的账号,然后打开unity hub登录,再选择一个路径安装unity。这里使用的是2022.3.3f1c1版本。点击右上角New Project新建一个项目。打算做一个扫雷练手,所以是2D版本。选择文件夹起一个名字创建项目。vscode可以用来编写代码,从上方链接下载后安装即可。下载unity hub后,先在。
2023-07-29 00:14:14
272
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人