AutoTile 自动拼接(二) 学习与实践
开始代码前,我们要做点准备工作。
下面 跟着我做。
首先我 扣了一个 图。
这个是 做 水的资源,所以是动态的,我把其余两张也扣了出来。
看起来一样,不是,这样看肯定 看不出所以然,你们先放到u3d中。
然后可以在 右下角观看,这些我就不多说了,一般小白 都会。
接着,我们要切片,大家看到我已经把11 的图 切好了。
这个切图,我想 大家应该也会吧。按照上图这样切 正方形。
算了我还是说下吧,按照上图这样 。。。
这样做的目的就是把 图分成小块,老外用矩阵切图,咋工具高级,手动搞定。
下面我们要把 这些切好的图片,保存到 数组中。
之前我写过一个 保存代码。
using UnityEngine;
using System.Collections;
using UnityEngine.UI;
using System.Collections.Generic; public abstract class DirectionSprite : MonoBehaviour
{ public float Speed = 0.05f;
private Sprite m_Image;
private float m_delta = ;
[HideInInspector]
public int m_curFrame = ; [HideInInspector]
public bool open = true; //一个循环结束
public abstract void nextSprite();
private Sprite[,] dict; public void StartOpen(bool opens, string path)
{
open = opens;
if (open)
{
m_Image = gameObject.GetComponent<SpriteRenderer>().sprite; if (m_Image == null)
{
m_Image = gameObject.AddComponent<SpriteRenderer>().sprite;
} String_Int_Movie(path); show(m_curFrame); }
} public int row, col;
void String_Int_Movie(string path)
{
object[] objs = Resources.LoadAll(path); dict = new Sprite[row, col]; int i = ;
foreach (object obj in objs)
{
Sprite sp = obj as Sprite;
if (sp != null)
{
dict[i / col, i % col] = sp;
i++;
}
}
} public void UpdataSprite()
{
if (open)
{
m_delta += Time.deltaTime;
if (m_delta > Speed)
{
m_delta = ;
m_curFrame++;
show(m_curFrame);
}
}
}
//设置
public void angle_frame(int Angles, int m_curFrames)
{
Angle = Angles;
m_curFrame = m_curFrames;
} public int FrameCount
{
get
{
return dict.Length;
}
}
[HideInInspector]
public int Angle;
public void show(int frame)
{
if (frame >= col)
{
nextSprite();
frame = ;
m_curFrame = frame;
}
if (Angle < )
{
Angle = ;
}
if (Angle > row - )
{
Angle = row - ;
}
m_Image = dict[Angle, frame];
gameObject.GetComponent<SpriteRenderer>().sprite = m_Image;
}
}
using UnityEngine;
using System.Collections; public class DirectSprite : DirectionSprite { public int StartMovie;
public string path;
void Start()
{
open = true;
StartOpen(open, path);
} void Update()
{
if (StartMovie>)
{
UpdataSprite();
}
} //一个循环结束
public override void nextSprite()
{
StartMovie--;
open = true;
}
}
大致这么样子,回头我再 检查一下,有什么需要改动的地方。
做完以上,保存数据后,接下来的一章,我们开始 编写 核心的 代码。 下一篇再见
AutoTile 自动拼接(二) 学习与实践的更多相关文章
- AutoTile 自动拼接(一) 学习与实践
恩,大家好,这两天江苏冷空气袭击,下了今年 第一场第二场雪. 不过今天我要说的 ,和 上面的 屁关系都没有. 今天要说的是 2d无缝自动拼接.大家有没有玩过 RPG Maker VX Ace. 类似 ...
- AutoTile 自动拼接(五) 学习与实践
今天不讲 权值检索,考虑到后期 自动拼接 做出来 更好玩,操作更方便.所以 今天我 补充一节, 网格计算与操作. 具体就是这么个效果,和地图编辑器一样,不过图块还是没有自然的拼接,这个一定一定是 下一 ...
- AutoTile 自动拼接(六 大结局) 学习与实践
昨天在网上找了一些资源图片,这回就不用担心 背景资源不多的问题了,现在我一边 制作,一边发布文章. 各种各样,500多个,这里还是特别感谢 ,万恶的资本主义,不设密码就给我分享. 在制作前,大家看下这 ...
- AutoTile 自动拼接(四) 学习与实践
今天主要来说下,数据绑定. 之前第一章,我说到 把 资源图 画成格子,你们应该还有印象吧. 那么,当我 知道 格子数据,能否拿到 资源对应的图片呢? 大家先复习一下 第一章,发现很多格子数据 是相同的 ...
- AutoTile 自动拼接(三) 学习与实践
今天把 图像数据保存完善了一下.天冷,没打多少字,见谅. 接着昨天说的,首先我们打开u3d,做一个空物体gameobject,然后做几个sprite,如下图所示 上面的sprite 排成四个 正方形. ...
- AutoTile 自动拼接 番外篇(自动融合技术)
http://pan.baidu.com/s/1dDQyfSl 密码:ttud 先睹为快吧. 之后 还差一个 智能替换 技术.
- NLP+词法系列(二)︱中文分词技术简述、深度学习分词实践(CIPS2016、超多案例)
摘录自:CIPS2016 中文信息处理报告<第一章 词法和句法分析研究进展.现状及趋势>P4 CIPS2016 中文信息处理报告下载链接:http://cips-upload.bj.bce ...
- hadoop2.5.2学习及实践笔记(二)—— 编译源代码及导入源码至eclipse
生产环境中hadoop一般会选择64位版本,官方下载的hadoop安装包中的native库是32位的,因此运行64位版本时,需要自己编译64位的native库,并替换掉自带native库. 源码包下的 ...
- 2018-2019-2 20165215《网络对抗技术》Exp10 Final Windows本地内核提权+Exploit-Exercises Nebula学习与实践
目录 PART ONE :Windows本地内核提权 漏洞概述 漏洞原理 漏洞复现 windbg调试本地内核 查看SSDT表和SSDTShadow表 查看窗口站结构体信息 利用Poc验证漏洞 漏洞利用 ...
随机推荐
- 深入JVM锁机制2-Lock
前文(深入JVM锁机制-synchronized)分析了JVM中的synchronized实现,本文继续分析JVM中的另一种锁Lock的实现.与synchronized不同的是,Lock完全用Java ...
- 关于开启url的pathinfo模式
1.apache要开启pathinfo模式,需要在 <Directory /> Options +Indexes +FollowSymLinks +ExecCGI AllowOverrid ...
- 判断手机电脑微信 js
if ((navigator.userAgent.match(/(MicroMessenger)/i))) { //微信浏览器 //location.href=""; } else ...
- 使用Apache + mod_jk + tomcat来实现tomcat集群的负载均衡出现的无法加载mod_jk.conf文件的问题
用Apache + mod_jk + tomcat来实现tomcat集群的负载均衡的 如果出现了问题,可以用cmd cd到Apache安装文件的bin下,运行httpd文件,错误信息就会打印出来. ...
- urllib2 之info 学习
之前介绍了根据old_url获取真实url的geturl的方法,而根据urlopen返回的应答对象的info方法可以获取服务器发送头部headers的内容,并且通过字典形式反馈出来,同样测试代码如下: ...
- 在block函数中规避错误信息 "capturing self strongly in this block is likely to lead to a retain cycle”
以形如 _fontValueChangedBlock = ^(){ [self.fontSmallButton addTarget:self action:@selector(btnFontSmall ...
- 正则表达式 替换 <img > 标签
/** * 正则表达式过滤<img > 标签 * @param str * @return */ public static String cutOutImgPrefix(String s ...
- NSTimer 销毁问题 和 iOS中控制器的释放问题
俗话说的好,前人栽树后人乘凉,最近看了很多博文,不少博文提到了NSTimer的销毁问题, 之前我都没怎么注意,现在对照着文章一一实践发现坑还真不少.下面是我读到的几篇博文分享给大家 @啸笑天的NSTi ...
- while循环与i--
int i = 5; while(i-- > 0){ System.out.println("i="+i); } 打印 ...
- Android Studio 项目结构
在Android Studio中创建项目后,会出现 activity_main.xml 和 MainActivity.java 两个文件 其中 Java文件定义了一个Activity,当应用运行时, ...