坦克大战,地图编辑
来源:互联网 发布:less 1.7.3.min.js 编辑:程序博客网 时间:2024/04/27 07:52
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System.Collections.Generic;
public class MapEditorUI : MonoBehaviour
{
public static MapEditorUI instance;
/// <summary>
/// 1 砖块 , 2 铁块 ,3 草 ,4 水
/// </summary>
public int curSelect;
public Image curImage;
public GameObject kuaiPre;
public Dictionary<Vector2, KuaiItem> PosKuaiDic = new Dictionary<Vector2, KuaiItem>();
public InputField levelInput;
public Text txtTip;
void Awake()
{
if (instance == null)
{
instance = this;
}
Close();
}
public void Show()
{
levelInput.text = (GameManager.instance.levels.Count + 1).ToString();
gameObject.SetActive(true);
PosKuaiDic.Clear();
}
public void Close()
{
gameObject.SetActive(false);
}
public void SelectKuai(int n)
{
Sprite sp = Resources.Load<Sprite>("walls/" + n);
curImage.sprite = sp;
curSelect = n;
}
public void InsKuai()
{
Vector2 ij = KuaiItem.GetIJ(kuaiPre.GetComponent<Image>(), Input.mousePosition);
if (curSelect == -1)
{
if (PosKuaiDic.ContainsKey(ij))
{
Destroy(PosKuaiDic[ij].gameObject);
PosKuaiDic.Remove(ij);
}
}
else if (ij.x >= 0 && ij.y >= 0 && ij.x < 26 && ij.y < 18 && !PosKuaiDic.ContainsKey(ij)
&& !(ij.x == 12 && ij.y == 0) && !(ij.x == 12 && ij.y == 1)
&& !(ij.x == 13 && ij.y == 0) && !(ij.x == 13 && ij.y == 1))
{
GameObject go = Instantiate(kuaiPre) as GameObject;
KuaiItem ki = go.GetComponent<KuaiItem>();
ki.SetInfo(ij, curSelect);
PosKuaiDic.Add(ij, ki);
}
}
public void SaveLevel()
{
int levelNum = int.Parse(levelInput.text);
if (GameManager.instance.levels.Count < levelNum - 1)
{
Debug.Log("输入的关卡数不合法");
return;
}
if (GameManager.instance.levels.Count < levelNum)
{
LevelData ld = new LevelData()
{
level = levelNum,
enemyNum = levelNum * 4 + 10,
mapData = new List<MapData>()
};
foreach (var kuai in FindObjectsOfType<KuaiItem>())
{
if (!kuai.isMapKuai)
{
continue;
}
MapData md = new MapData()
{
i = kuai.i,
j = kuai.j,
num = kuai.num
};
ld.mapData.Add(md);
}
GameManager.instance.levels.Add(ld);
}
else if (GameManager.instance.levels.Count >= levelNum)
{
LevelData ld = new LevelData()
{
level = levelNum,
enemyNum = levelNum * 4 + 10,
mapData = new List<MapData>()
};
foreach (var kuai in FindObjectsOfType<KuaiItem>())
{
if (!kuai.isMapKuai)
{
continue;
}
MapData md = new MapData()
{
i = kuai.i,
j = kuai.j,
num = kuai.num
};
ld.mapData.Add(md);
}
GameManager.instance.levels[levelNum - 1] = ld;
}
foreach (var kuai in FindObjectsOfType<KuaiItem>())
{
if (kuai.isMapKuai)
{
Destroy(kuai.gameObject);
}
}
GameManager.instance.SaveLevelData();
Close();
StartUI.instance.Show();
}
public void Back()
{
Close();
StartUI.instance.Show();
}
// Update is called once per frame
void Update()
{
int i;
bool res = int.TryParse(levelInput.text, out i);
if (res)
{
if (GameManager.instance.levels.Count < i - 1)
{
txtTip.text = "<color=red>输入的数字必须小于【" + (GameManager.instance.levels.Count + 1) + "】</color>";
}
else if (GameManager.instance.levels.Count == i - 1)
{
txtTip.text = "<color=green>如果保存将会新增关卡第【" + i + "关】</color>";
}
else if (GameManager.instance.levels.Count >= i)
{
txtTip.text = "<color=blue>如果保存将会覆盖关卡第【" + i + "关】</color>";
}
}
else
{
txtTip.text = "<color=red>必须输入数字</color>";
}
}
}
using System.Collections;
using UnityEngine.UI;
using System.Collections.Generic;
public class MapEditorUI : MonoBehaviour
{
public static MapEditorUI instance;
/// <summary>
/// 1 砖块 , 2 铁块 ,3 草 ,4 水
/// </summary>
public int curSelect;
public Image curImage;
public GameObject kuaiPre;
public Dictionary<Vector2, KuaiItem> PosKuaiDic = new Dictionary<Vector2, KuaiItem>();
public InputField levelInput;
public Text txtTip;
void Awake()
{
if (instance == null)
{
instance = this;
}
Close();
}
public void Show()
{
levelInput.text = (GameManager.instance.levels.Count + 1).ToString();
gameObject.SetActive(true);
PosKuaiDic.Clear();
}
public void Close()
{
gameObject.SetActive(false);
}
public void SelectKuai(int n)
{
Sprite sp = Resources.Load<Sprite>("walls/" + n);
curImage.sprite = sp;
curSelect = n;
}
public void InsKuai()
{
Vector2 ij = KuaiItem.GetIJ(kuaiPre.GetComponent<Image>(), Input.mousePosition);
if (curSelect == -1)
{
if (PosKuaiDic.ContainsKey(ij))
{
Destroy(PosKuaiDic[ij].gameObject);
PosKuaiDic.Remove(ij);
}
}
else if (ij.x >= 0 && ij.y >= 0 && ij.x < 26 && ij.y < 18 && !PosKuaiDic.ContainsKey(ij)
&& !(ij.x == 12 && ij.y == 0) && !(ij.x == 12 && ij.y == 1)
&& !(ij.x == 13 && ij.y == 0) && !(ij.x == 13 && ij.y == 1))
{
GameObject go = Instantiate(kuaiPre) as GameObject;
KuaiItem ki = go.GetComponent<KuaiItem>();
ki.SetInfo(ij, curSelect);
PosKuaiDic.Add(ij, ki);
}
}
public void SaveLevel()
{
int levelNum = int.Parse(levelInput.text);
if (GameManager.instance.levels.Count < levelNum - 1)
{
Debug.Log("输入的关卡数不合法");
return;
}
if (GameManager.instance.levels.Count < levelNum)
{
LevelData ld = new LevelData()
{
level = levelNum,
enemyNum = levelNum * 4 + 10,
mapData = new List<MapData>()
};
foreach (var kuai in FindObjectsOfType<KuaiItem>())
{
if (!kuai.isMapKuai)
{
continue;
}
MapData md = new MapData()
{
i = kuai.i,
j = kuai.j,
num = kuai.num
};
ld.mapData.Add(md);
}
GameManager.instance.levels.Add(ld);
}
else if (GameManager.instance.levels.Count >= levelNum)
{
LevelData ld = new LevelData()
{
level = levelNum,
enemyNum = levelNum * 4 + 10,
mapData = new List<MapData>()
};
foreach (var kuai in FindObjectsOfType<KuaiItem>())
{
if (!kuai.isMapKuai)
{
continue;
}
MapData md = new MapData()
{
i = kuai.i,
j = kuai.j,
num = kuai.num
};
ld.mapData.Add(md);
}
GameManager.instance.levels[levelNum - 1] = ld;
}
foreach (var kuai in FindObjectsOfType<KuaiItem>())
{
if (kuai.isMapKuai)
{
Destroy(kuai.gameObject);
}
}
GameManager.instance.SaveLevelData();
Close();
StartUI.instance.Show();
}
public void Back()
{
Close();
StartUI.instance.Show();
}
// Update is called once per frame
void Update()
{
int i;
bool res = int.TryParse(levelInput.text, out i);
if (res)
{
if (GameManager.instance.levels.Count < i - 1)
{
txtTip.text = "<color=red>输入的数字必须小于【" + (GameManager.instance.levels.Count + 1) + "】</color>";
}
else if (GameManager.instance.levels.Count == i - 1)
{
txtTip.text = "<color=green>如果保存将会新增关卡第【" + i + "关】</color>";
}
else if (GameManager.instance.levels.Count >= i)
{
txtTip.text = "<color=blue>如果保存将会覆盖关卡第【" + i + "关】</color>";
}
}
else
{
txtTip.text = "<color=red>必须输入数字</color>";
}
}
}
阅读全文
0 0
- 坦克大战,地图编辑
- 坦克大战
- 坦克大战
- 坦克大战
- 坦克大战
- 坦克大战
- 坦克大战
- 坦克大战
- 坦克大战
- 坦克大战
- 坦克大战
- 坦克大战
- 坦克大战
- 坦克大战
- 坦克大战
- 坦克大战
- 坦克大战
- 坦克大战
- UDP广播遇到的坑
- webpack打包vue2.0项目时必现问题。
- 数据提交及弹出框样式
- Touch_Java 10:输入、输出流
- leetcode 26|27|80. Remove Duplicates from Sorted Array 1|2 && 27.Remove Element
- 坦克大战,地图编辑
- 抽象数据类型-线性结构-先进先出:队列
- SpringCloud Zuul修改请求参数信息
- Django 自定义过滤器 笔记
- 十-1 检查和调试JavaScript 如何设置断点
- 整合企业Spring Cloud分布式微服务云架构构建
- U3D Invoke() IsInvoking CancelInvoke方法的调用
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
- 【推荐】查找一代用户出口Userexit