Aseprite+Cocos:打包像素画图,导入到cocos里并动起来
前言:Aseprite入门教程
1、制作像素画:
按照上一次的小球跳动制作过程,先制作一个像素画动画:
若是导出gif动态图,效果如下:
但是在保存图片时,不要导出gif格式,选择save as...:
选择好路径后,选择png格式输出:
会提示自动把每一帧的图片按照1、2、3···等数字的顺序保存:
保存如下:
2、使用TexturePackerGUI工具进行处理:
打开软件,看到界面:
这里要注意,使用试用版的话,打包的图片会出现乱码文字!我一开始就是因为这个,卡了半天。
点击Add Sprites:
在弹出的选择文件框里按住Ctrl把要添加的图片全部点选:
选择格式:
点击Publish生成:
生成的图片和plist文件如下:
3、建立cocos项目:
4、在vs里编辑代码:
将plist和png文件复制到新建的test项目下的Resources资源文件夹下:
用.sln打开项目:
编辑HelloWorldScene.cpp里的init方法:
bool HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if ( !Layer::init() )
{
return false;
}
auto* background = LayerColor::create(ccc4(, , , ));
addChild(background);
auto* sprite = Sprite::create("1.png");
sprite->setPosition(, );
addChild(sprite); auto* m_frameCache = SpriteFrameCache::getInstance();
m_frameCache->addSpriteFramesWithFile("qiu1.plist", "qiu1.png");
Vector<SpriteFrame*> frameArray;
for (int i = ; i < ; i++)
{
auto* frame = m_frameCache->getSpriteFrameByName(String::createWithFormat("%d.png", i)->getCString());
frameArray.pushBack(frame);
}
Animation* animation = Animation::createWithSpriteFrames(frameArray);
//表示无限循环播放
animation->setLoops(-);
//每两张图片的时间隔,图片数目越少,间隔最小就越小
animation->setDelayPerUnit(0.1f); //将动画包装成一个动作
auto* action = Animate::create(animation);
sprite->runAction(action);
return true;
}
运行如下:
里面的图片是动态的,这里直接放的截图。
5、打包apk:
在pro.android文件夹下:
按住shift并右击鼠标,调出管理员的命令行窗口:
使用python2.7(python3.6的版本太高,语法差异大,可能会编译失败)运行build_native.py文件:
将apk在手机上安装,运行结果如图:
6、错误实例:
使用试用版TexturePacker打包出的图片:
这个软件是可以免费注册的,不过需要一两天处理时间,不是试用版就不会出现乱码问题,这个估计也是软件作者故意设置的,还是要多支持正版。
Aseprite+Cocos:打包像素画图,导入到cocos里并动起来的更多相关文章
- eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法
eclipse项目中关于导入的项目里提示HttpServletRequest 不能引用的解决办法 当使用eclipse导入外部的web工程时,有时会提示HttpServletRequest, Serv ...
- 怎么从svn服务器上把工程导入到MyEclipse里
怎么从svn服务器上把工程导入到MyEclipse里,步骤如下:
- cocos打包出现错误,执行命令出错,返回值:2。 Traceback (most recent call last): File "E:\cocos_workspace\MyGameOne\proj.android\build_native.py", line 43, in <module> build(opts.build_mode) File "E:\cocos_workspace\MyGa
先看看NDK的版本,如果不行,就删除\proj.android\obj\local\armeabi下的文件.
- cocos打包到ios与android上音频推荐
首先贴一张官方对于ios与android上音频格式的推荐: 这里只给出了推荐格式,一般我们在实际运用中会使用如下方式: 一.IOS与安卓各一套:音乐:都使用MP3 音效:ios用caf Andr ...
- 在Eclipse中导入SVN库里的Maven项目
长期使用Intellij 对于Eclipse的东西都生疏了... 做了个小教程说明Eclipse下导入Maven工程的步骤以备不时之需 1. 安装maven插件 a) 下载maven http://m ...
- Net.Core导入EXCel文件里的数据
1.前台的表单: <form enctype="multipart/form-data" method="post" id="inportFil ...
- excel表里的数据导入到数据库里
采用的是jxl,所以需要导jxl-2.4.2.jar的jar包.(前提知道excel表的目录): //用log记录异常信息 private static final Logger log = Logg ...
- 下载个jquery-easyui-1.3.0使用,把他导入到myeclipse10里,jquery-1.7.2.min.js报错。 错误如下, Syntax error on token "Invalid Regular Expression Options", no accurate correc
1.选中报错的jquery文件“jquery-1.2.6.min.js”.2.右键选择 MyEclipse-->Exclude From Validation .3.再右键选择 MyEclips ...
- 导入到eclipse里的工程挺大的,然后就一直报: An internal error occurred during: "Building workspace". GC overhead limit exceeded 这个错误。
解决方法: 原因是Eclipse默认配置内存太小需要更改Eclipse安装文件夹下的eclipse.ini文件. Eclipse.ini默认文件如下: 修改如下: -Xms1024m -Xmx2048 ...
随机推荐
- java常用集合浅层解析-面试必备
ArrayList 1.动态数组 2.线程不安全 3.存储空间连续 4.查询快,添加删除慢 构造方法 /** + Shared empty array instance used for defaul ...
- Spring Boot 启动(二) 配置详解
Spring Boot 启动(二) 配置详解 Spring 系列目录(https://www.cnblogs.com/binarylei/p/10198698.html) Spring Boot 配置 ...
- cardlayout
import javax.swing.*;import java.awt.*;import java.awt.event.*;public class demo_9{ public static ...
- 解决Ubuntu 16.04 上Android Studio2.3上面运行APP时提示DELETE_FAILED_INTERNAL_ERROR Error while Installing APKs的问题
本人工作环境:Ubuntu 16.04 LTS + Android Studio 2.3 AVD启动之后,运行APP,报错提示: DELETE_FAILED_INTERNAL_ERROR Error ...
- System.Web.Caching.Cache缓存帮助类
/// <summary> /// 缓存帮助类 /// </summary> public class CacheHelper { /// <summary> // ...
- Ramnit 蠕虫分析
0x00前言 Ramnit 蠕虫是一种通过可移动驱动器传播的蠕虫.该蠕虫还可以作为后门,允许远程攻击者访问受感染的计算机,通常会寄生在用户的浏览器中,难以察觉,因此每天都有数以万计的用户受其困扰. 分 ...
- free mybtis plugin
dao接口与mapper.xml的互相跳转
- (PMP)第2章-----项目运行环境
1.事业环境因素:(客观存在,可能有帮助或阻碍,项目经理必须遵守) 内部:文化,结构,治理:设施和资源的地理分布,基础设施,信息技术软件,资源可用性,员工能力 外部:市场条件,社会和文化,法律限制,商 ...
- python 递归实现汉诺塔算法
def move(n,a,b,c): if (n == 1): print ( "第 ", n ," 步: 将盘子由 " ,a ," 移动到 &quo ...
- const_cast的用法与测试
在C++里,把常量指针(即指向长脸的指针)赋值给非常量指针时,会提示错误,这时候就需要用到const_cast,看下面的两个转换情形: int j = 0; const int i = j; int ...