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这里主要实现几个按钮的点击功能,已经场景的切换。
点击函数
自己看代码吧:
//开始游戏
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
关注
打赏
热门博文
- Unity3d 插件着色器(Shader)报错Too many texture interpolators...和‘vert‘: output parameter ‘o‘ not ...修复记录
- Unity3d C# 网址url未转义问题(https%3A%2F%2F => https://)网址无法打开问题 URL is missing a protocol e.g. http://...
- Unity3d C# 使用Universal Media Player(ump)插件播放视频的众坑之无法播放视频和VLC播放器依赖的问题
- 软考高级软件架构风格定义以及分类
- Unity 使用NVIDIA FleX for Unity插件实现制作软体、水流流体、布料等效果学习教程
- Unity3d 使用统一可寻址资产系统(Addressables)实现服务器资源热更新和资源版本管理等功能(含源码)
- Unity3d minigame-unity-webgl-transform插件转换微信小游戏报错To use dlopen, you need to use Emscripten‘s...问题
- Unity 利用Skybox Panoramic着色器制作全景图预览有条缝隙问题解决办法
- Unity3d C# 开发微信小游戏分享图片、朋友圈等功能实现(含源码)
- Unity3d Windows播放视频(视频流)功能组/插件支持对比