昨天在网上找了一些资源图片,这回就不用担心 背景资源不多的问题了,现在我一边 制作,一边发布文章。

各种各样,500多个,这里还是特别感谢 ,万恶的资本主义,不设密码就给我分享。

在制作前,大家看下这里的图片,和我之前的图片规格,有点不一样,他们大了一号。

细心的朋友,可以拿这张 ,和我 之前的图比较下。

哎,为了这500多张的 图,我也只能稍微改改 切图了,但做法都是一样的。

里面有一些 动画图,需要切一下,我推荐

这个软件,360会认为木马,其实没什么事情的,看你自己了。

很方便吧,其实 不用切,改下程序也可以,不过我懒。。。。。。

u3d中也是按16*16格子切,当然最后就有48张图了。

好了,前期准备先说到这里,下面 开始 编写代码

using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using LitJson;
using System; public class myDown : MonoBehaviour
{
public Transform trs;
public Transform go;
int _x, _y;
void Start()
{
_x = go.GetComponent<ResourcesSprite>().Widths - ;
_y = go.GetComponent<ResourcesSprite>().Heights - ;
} void Update()
{ } void OnFingerDown(FingerDownEvent e)
{ /* your code here */
RaycastHitGet(e.Position);
}
void OnDrag(DragGesture gesture)
{
DragGesture dragGesture = (gesture.State == GestureRecognitionState.Ended) ? null : gesture;
if (dragGesture)
{
RaycastHitGet(gesture.Position);
}
}
void RaycastHitGet(Vector3 e)
{
RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(e), Vector2.zero);
if (hit)
{
if (hit.collider.tag == "sence")
{
int type = ; for (int i = ; i < trs.childCount; i++)
{
if (trs.GetChild(i).GetComponent<Toggle>().isOn)
{
type = i;
}
}
switch (type)
{
case : OnOneFourthFind(hit.collider.transform, "play0");
break;
case : OnOneFourthFind(hit.collider.transform, "play1");
break;
case : OnOneFourthFind(hit.collider.transform, "play2");
break;
case : OnOneFourthFind(hit.collider.transform, "play3");
break;
case : OnOneFourthFind(hit.collider.transform, "play4");
break;
case : OnOneFourthFind(hit.collider.transform, "play5");
break;
case : OnOneFourthFind(hit.collider.transform, "play6");
break;
case : OnOneFourthFind(hit.collider.transform, "play7");
break;
case : OnOneFourthFind(hit.collider.transform, "play8");
break;
case : OnOneFourthFind(hit.collider.transform, "play9");
break;
case : OnOneFourthFind(hit.collider.transform, "play10");
break;
case : OnOneFourthFind(hit.collider.transform, "play11");
break;
case : OnOneFourthFind(hit.collider.transform, "play12");
break;
case : OnOneFourthFind(hit.collider.transform, "play13");
break;
case : OnOneFourthFind(hit.collider.transform, "play14");
break;
case : OnOneFourthFind(hit.collider.transform, "play15");
break;
case : OnOneFourthFind(hit.collider.transform, "play16");
break;
case : OnOneFourthFind(hit.collider.transform, "play17");
break;
case : OnOneFourthFind(hit.collider.transform, "play18");
break;
case : OnOneFourthFind(hit.collider.transform, "play19");
break;
case : OnOneFourthFind(hit.collider.transform, "play20");
break;
case : OnOneFourthFind(hit.collider.transform, "play21");
break;
case : OnOneFourthFind(hit.collider.transform, "play22");
break;
case : OnOneFourthFind(hit.collider.transform, "play23");
break;
case : OnOneFourthFind(hit.collider.transform, "play24");
break;
case : OnOneFourthFind(hit.collider.transform, "play25");
break;
case : OnOneFourthFind(hit.collider.transform, "play26");
break;
case : OnOneFourthFind(hit.collider.transform, "play27");
break;
case : OnOneFourthFind(hit.collider.transform, "play28");
break;
case : OnOneFourthFind(hit.collider.transform, "play29");
break;
case : OnOneFourthFind(hit.collider.transform, "play30");
break;
case : OnOneFourthFind(hit.collider.transform, "play31");
break;
case : OnOneFourthFind(hit.collider.transform, "play32");
break; default: break;
}
}
}
} //一对四 查找坐标
void OnOneFourthFind(Transform tr, string keys)
{
int[] st = new int[];
st[] = ;
st[] = ;
st[] = ;
st[] = ;
for (int i = ; i < ; i++)
{
AutoTileShow autoTileShow1 = tr.GetChild(i).GetComponent<AutoTileShow>();
autoTileShow1.keys = keys;
autoTileShow1.Weight = st[i];
}
tr.GetComponent<keyRoot>().keys = keys;
string[] bit = OnWeightRange(tr);
ArrayList arr = OnWeightRangeTr(bit, tr);
arr.Add(tr);
for (int ii = ; ii < arr.Count; ii++)
{
Transform aa = arr[ii] as Transform;
OnWeightNumberFind(aa, aa.GetComponent<keyRoot>().keys);
}
}
//八方向对象获得
ArrayList OnWeightRangeTr(string[] bit, Transform tts)
{
uint[] bbt = new uint[];
ArrayList arr = new ArrayList();
for (int i = ; i < ; i++)
{
if (bit[i] != "")
{
arr.Add(tts.parent.Find(bit[i]));
}
}
return arr;
} //八方向范围获得
string[] OnWeightRange(Transform tts)
{
string[] tt = tts.name.Split(',');
int xx = int.Parse(tt[].ToString());
int yy = int.Parse(tt[].ToString());
string[] bit = new string[]; bit[] = (xx - ) + "," + (yy + );
bit[] = xx + "," + (yy + );
bit[] = (xx + ) + "," + (yy + );
bit[] = (xx + ) + "," + (yy);
bit[] = (xx + ) + "," + (yy - );
bit[] = xx + "," + (yy - );
bit[] = (xx - ) + "," + (yy - );
bit[] = (xx - ) + "," + yy; if (xx == )
{
bit[] = "";
bit[] = "";
bit[] = "";
}
if (xx == _x)
{
bit[] = "";
bit[] = "";
bit[] = "";
}
if (yy == )
{
bit[] = "";
bit[] = "";
bit[] = "";
}
if (yy == _y)
{
bit[] = "";
bit[] = "";
bit[] = "";
}
return bit;
}
//权值检索
void OnWeightNumberFind(Transform tts, string keys)
{
string[] bit = OnWeightRange(tts);
uint[] bbt = new uint[];
for (int i = ; i < ; i++)
{
if (bit[i] != "")
{
if (tts.parent.Find(bit[i]).GetComponent<keyRoot>().keys == keys)
{
bbt[i] = OnConvert(i);
}
else
{
bbt[i] = ;
}
}
else
{
bbt[i] = ;
}
} uint tb = ;
for (int i = ; i < ; i++)
{
tb |= bbt[i];
}
for (int k = ; k < ; k++)
{
tts.GetChild(k).GetComponent<AutoTileShow>().Weight = (int)(GameModel.getInstance().weightSprite[tb][k]);
tts.GetChild(k).GetComponent<AutoTileShow>().open = true;
}
}
//转换
uint OnConvert(int i)
{
uint ty = ;
switch (i)
{
case : ty = ;
break;
case : ty = ;
break;
case : ty = ;
break;
case : ty = ;
break;
case : ty = ;
break;
case : ty = ;
break;
case : ty = ;
break;
case : ty = ;
break;
}
return ty;
}
}
using UnityEngine;
using System.Collections; public class AutoTileShow : MonoBehaviour
{
int i = ;
private Sprite m_Image;
public bool open = true;
Sprite[] sp; void Start()
{
if (!gameObject.GetComponent<SpriteRenderer>())
{
m_Image = gameObject.AddComponent<SpriteRenderer>().sprite;
} sp = new Sprite[];//图片数据临时存放
} float timebattle;
public string keys;
public int Weight;
int maxTotal = ;
void Update()
{ timebattle -= Time.deltaTime;
if (timebattle <= )
{
timebattle = .2f;//闪烁频率 if (open)
{
switch (keys)
{
case "play0":
case "play2":
case "play3":
case "play4":
case "play5":
case "play6":
case "play7":
case "play8":
case "play9":
case "play10":
case "play11":
case "play12":
case "play13":
case "play14":
case "play15":
case "play16":
case "play17":
case "play18":
case "play19":
case "play20":
case "play21":
case "play22":
case "play23": maxTotal = ;
break;
case "play24":
case "play25": maxTotal = ;
break; case "play26":
case "play27":
case "play28":
case "play29":
case "play30":
case "play31":
case "play32": maxTotal = ;
break;
default: break;
}
sp = OnDirectionAutoTile(keys, Weight); open = false;
}
if (i > maxTotal - )
{
i = ;
}
m_Image = sp[i];
gameObject.GetComponent<SpriteRenderer>().sprite = m_Image;
i++;
}
} public Sprite[] OnDirectionAutoTile(string key, int number)
{
Sprite[] mapTile = new Sprite[];
mapTile = GameModel.getInstance()._TileSprite[number + "," + key];
return mapTile;
}
}

这么一贴,估计没几个朋友有兴趣继续看下去了。

好吧。上demo

链接:http://pan.baidu.com/s/1hrdKyHm 密码:h6wl

有什么不懂的,可以在 年后10天,提问

AutoTile 自动拼接(六 大结局) 学习与实践的更多相关文章

  1. AutoTile 自动拼接(一) 学习与实践

    恩,大家好,这两天江苏冷空气袭击,下了今年 第一场第二场雪. 不过今天我要说的 ,和 上面的 屁关系都没有. 今天要说的是 2d无缝自动拼接.大家有没有玩过  RPG Maker VX Ace. 类似 ...

  2. AutoTile 自动拼接(五) 学习与实践

    今天不讲 权值检索,考虑到后期 自动拼接 做出来 更好玩,操作更方便.所以 今天我 补充一节, 网格计算与操作. 具体就是这么个效果,和地图编辑器一样,不过图块还是没有自然的拼接,这个一定一定是 下一 ...

  3. AutoTile 自动拼接(四) 学习与实践

    今天主要来说下,数据绑定. 之前第一章,我说到 把 资源图 画成格子,你们应该还有印象吧. 那么,当我 知道 格子数据,能否拿到 资源对应的图片呢? 大家先复习一下 第一章,发现很多格子数据 是相同的 ...

  4. AutoTile 自动拼接(三) 学习与实践

    今天把 图像数据保存完善了一下.天冷,没打多少字,见谅. 接着昨天说的,首先我们打开u3d,做一个空物体gameobject,然后做几个sprite,如下图所示 上面的sprite 排成四个 正方形. ...

  5. AutoTile 自动拼接(二) 学习与实践

    开始代码前,我们要做点准备工作. 下面 跟着我做. 首先我 扣了一个 图. 这个是 做 水的资源,所以是动态的,我把其余两张也扣了出来. 看起来一样,不是,这样看肯定 看不出所以然,你们先放到u3d中 ...

  6. 孤荷凌寒自学python第六十九天学习并实践beautifulsoup对象用法2

    孤荷凌寒自学python第六十九天学习并实践beautifulsoup对象用法2 (完整学习过程屏幕记录视频地址在文末) 今天继续学习beautifulsoup对象的属性与方法等内容. 一.今天进一步 ...

  7. u-boot分析(十一)----MMU简单分析|u-boot分析大结局|学习规划

    u-boot分析(十一) 通过前面十篇博文,我们已经完成了对BL1阶段的分析,通过这些分析相信我们对u-boot已经有了一个比较深入的认识,在BL2阶段大部分是对外设的初始化,并且有的我们已经分析过, ...

  8. AutoTile 自动拼接 番外篇(自动融合技术)

    http://pan.baidu.com/s/1dDQyfSl 密码:ttud 先睹为快吧. 之后 还差一个 智能替换 技术.

  9. 11种常用css样式学习大结局滚动条与显示隐藏

    滚动条展示 overflow-x: hidden;/*是否对内容的左/右边缘进行裁剪*/overflow-y: hidden;/*是否对内容的上/下边缘进行裁剪*/overflow:scroll;/* ...

随机推荐

  1. JVM基础(6)-常用参数总结

    参考文章: 并发编程网:http://ifeve.com/useful-jvm-flags-part-4-heap-tuning/ 一.参数分类 HotSpot JVM 提供了三类参数. 第一类包括了 ...

  2. Date Math SimpleDateFormat 类

    Date  和 SimpleDateFormat /* Date 日期类 许多方法都被Calendar取代了 Date() 获取当前时间 使用概率最高 Calendar 类用常量获取当前时间 一般很少 ...

  3. 【Machine Learning in Action --4】朴素贝叶斯过滤网站的恶意留言

    背景:以在线社区的留言板为例,为了不影响社区的发展,我们需要屏蔽侮辱性的言论,所以要构建一个快速过滤器,如果某条留言使用了负面或者侮辱性的语言,那么就将该留言标识为内容不当.过滤这类内容是一个很常见的 ...

  4. hosts文件失效,配置的域名不能成功访问

    在windows7系统 hosts文件中配置域名 出现hosts文件失效  并不能正常访问域名 可能并不适用所有的这样的情况  但是我自己修改了dns的服务器的状态  就可以正常访问 如下图所示

  5. linux nfs开启

    nfs设置: NFS的配置过程很简单.在服务器端中编辑/etc/exports文件,添加如下内容:     /home/cotton/data/cotton/zghy 192.168.2.*(rw,s ...

  6. 3. Shell 基本运算符

    1. 概述 1.1 Shell 支持多种运算符,包括以下几种 算数运算符 关系运算符 布尔运算符 字符串运算符 文件测试运算符 1.2 原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例 ...

  7. IOS应用的国际化

    IOS应用的国际化,主要分为3个部分: Info.plist 文件的国际化 .xib文件的国际化 .m文件的国际化 下面我就来一一说明. Info.plist 文件的国际化我们使用Xcode 4.5 ...

  8. 远程桌面协议浅析(VNC/SPICE/RDP)

    由于最近项目涉及到虚拟桌面,就花了点时间找了点资料看了一下,目前常用的协议有VNC/SPICE/RDP三种,就在这里做一个简单的介绍. 三种协议的对比 SPICE VNC RDP BIOS屏幕显示 能 ...

  9. 在自学php的路上不知道怎么走!!

    在自学php的路上不知道怎么走!! 真希望有人给我指点一二!!!

  10. Heap Operations(模拟题)

     Heap Operations time limit per test 1 second memory limit per test 256 megabytes input standard inp ...