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

各种各样,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. 多线程---静态同步函数的锁是class(转载)

    /** 如果同步函数被静态修饰,那么他的锁就是该方法所在类的字节码文件对象 类名.class 静态进内存时,内存中没有本类对象,但是一定有该类对应的字节码文件对象. 该对象就是:类名.class   ...

  2. Openjudge-计算概论(A)-奇数求和

    描述: 计算非负整数 m 到 n(包括m 和 n )之间的所有奇数的和,其中,m 不大于 n,且n 不大于300.例如 m=3, n=12, 其和则为:3+5+7+9+11=35. 输入两个数 m 和 ...

  3. ubuntu 12.04添加桌面启动器

    Ubuntu 12.04版本上,无法通过桌面右键菜单建立应用程序启动器:这里参考一个网上方法进行了建立: ubuntu 12.04中,每个应用程序启动器都对应 /user/share/applicat ...

  4. 使用SpringMVC时,配置DispatcherServlet注意的url-pattern的问题

    url-pattern配置时注意: <!--springMVC配置--><servlet> <servlet-name>springMVC</servlet- ...

  5. 域名、网站名、url的定义

    网址:http://jingyan.baidu.com/article/2c8c281df0afd00008252aa7.html

  6. 对方网络ping不通

    后台接口往往部署在其他服务器上如果ping不同 很大可能是因为对方开防火墙的原因 解决方法:控制面板-windows防火墙-打开或关闭windows防火墙

  7. struts2 result type的类型

    一共十种类型 1.dispatcher 默认的类型,相当于servlet的foward,服务器端跳转.客户端看到的是struts2中配置的地址,而不是真正页面的地址.一般用于跳转到jsp页面 2.re ...

  8. HTML+CSS D09 定位

    1.定位 (1)相对定位 如果对一个元素进行相对定位,它将出现在它所在的位置上.然后,可以通过设置垂直或水平位置,让这个元素“相对于”它的起点进行移动. #box_relative {  positi ...

  9. Base64技术:把对象转变成字符串

    需求:在安卓移动端和服务器进行数据交互的时候,有些时候需要上传,下载文件.如果所有的参数都变成字符串,会更加方便. 原理:Base64只是把byte[]数组进行了编码,然后再解码的过程,文档内容无法直 ...

  10. pur-ftpd在ubuntu上的安装2(数据库管理)

    1.安装mysql数据库支持的pure-ftpd apt-get install pure-ftpd-mysql 2.添加分组"ftpgroup",并且添加分组虚拟用户" ...