在Spine中翻转骨骼动画播放 AS3 与 Cocos2dx

之前一直在用 cocos2dx 的 cocosStudio 自带的骨骼动画
但是为了由于Spine支持网格动画,于是手头的项目都转到支持Spine的骨骼的说。

最近想做一个动画倒播的功能,在之前的 cocosStudio 中,可以通过 API, gotoAndStop(frame) 来实现倒播
到了 Spine 里,貌似就没有这个功能啦

嘛~研究了一下,貌似改起来难度不高。。 自己的本本没装各种编程软件。。。(游戏本嘛) 只有Flash Profession CC, 于是就拿 AS3版本来改改先啦。

话说Spine也是蛮搞的,C++ 版本要合并 Spine C 和 Spine cocos2dx. 而 Flash版本要合并 Spine flash 和 Spine Starling. 而且还没有完整API,丰富的范例(就2个。。还没体现所有功能)

就拿AS3的版本举例好了,最后说下C++中对应的关系就行了
继续阅读“在Spine中翻转骨骼动画播放 AS3 与 Cocos2dx”

cocos2d-x-2.x APK 打包问题汇总

很久没有发全技术文章了。。。
今天折腾了几个小时,终于编译成功一个复杂的cocos2d-x-2.x 项目了。。其中遇到的坑数都数不过来。

1.资源目录中不能包含中文路径,否则打包失败

2.XML配置表中不能包含全角符号,否则加载失败

3.在部分低端手机上,SpriteSheet 的大小达不到 2048 * 2048 会导致闪退

由于项目使用了rapidxml, 而 rapidxml 又调用了 Boost 所以这里要编译boost的相关库
boost_system 和 boost_iostreams

Boost相关问题

4.Boost的HPP文件,不需要加入 Android.mk 中,这是一个类似于.h文件一样的东西,不需要填

5.Boost的库需要用NDK打包成库
1)下载最新的Boost 1.55 http://iweb.dl.sourceforge.net/project/boost/boost/1.55.0/boost_1_55_0.zip
2)使用cygwin 编译 bootstrap.sh 生成 b2.exe, bjam.exe
3)修改 /tools/build/v2/user-config.jam 内容如下

继续阅读“cocos2d-x-2.x APK 打包问题汇总”

The Legend of Heroes:Sen No Kiseki. stage all clear!

终于把闪之轨迹通关了~

话说闪轨的梗真的好多。

比如校舍第七层的最终BOSS场景,就是Fate Stay Night 中 Archer的无限剑制呀

kiseiki1

最终BOSS的高达战,又满满的 异度装甲 的即视感。。。十几年前的游戏了。。

闪轨

kiseiki2

异度装甲

最后的最后,今天想把 CCSpriteWithFilter 放到手机上测试的时候,发现不设置滤镜的话,默认根本不显示。。 然后是 GodRay滤镜会直接把程序弄崩溃了。。

GodRay的问题我在PC上测试本来是木有问题的,看来手机上的OpenglES 更加严格的说。。。 抱歉之前一直都没有真机测试的说了。

在实际过程中发现
手机上的OpenglES 是强类型的, 不同类型运算比如int / float 会崩溃。
uniform 设置初始值会崩溃
给float 赋值时末尾带f会崩溃
等等。。。
看来以后要多注意这方面的差别了。

好了,今天给修复了。
https://github.com/dreamfairy/cocos2dx-2.x-filters/
GodRay 在我的小霸王手机上测试大概20帧的样子,实际上可以通过修改采样数来提高帧数的说

真机截屏,华为荣耀3(前几天差点给摔碎了 :p )
godrayhw

GodRay APK (小米手机勿下,会闪退)
http://pan.baidu.com/s/1CPmuq

后会无期 and 在git上更新了水纹滤镜

周末去看了韩寒的 《后会无期》。。真TM文艺。。。 我心目中的大仁哥的形象完全毁了,变成蠢萌了。。。 不过还好票价靠谱,只有40元,不像邓超的《分手大师》那么坑爹的要80.
电影给我的感觉是 人们生活中的每一个过客,有一天也许就那么突然消失了,确实有许多伤感呀。。、
不过电影的结局也给人一样的感觉。。突然的结束了。

这周无所事事,顺便把之前捕鱼达人的扭曲shader移植到我的扩展类里了叫 CCWaveFilter.

之前的索引地址:
http://www.dreamfairy.cn/blog/index.php/2013/08/26/migration-apply-wave-filter-in-cocos2d-x-from-agal.html

git地址 : https://github.com/dreamfairy/cocos2dx-2.x-filters/tree/master/class

再丢个预览图吧~
jdfw

每周都想喷一次触控。 shader 的 uniform 拜托您别一直该了行吗。。。当年2.1.3您改了一次,现在2.2.4 您又改。。
顺便吐槽下。做 CCS版的大爷,劳烦您提前退休吧,别做死了。

弹幕系统基本完成啦~

原本计划2周的,没想到一周就基本搞定了。
发几张截图的说

全屏转风车
danmu1

黑洞 吸引视界内的弹幕
danmu2

激光
danmu3

可编程的弹幕系统,可以生成各种弹幕花纹图案等….

btw,前几天入了闪轨。。300大洋,又败家了。。。

QQ20140712224340

end
看完邓超的 《分手大师》后我觉得。。画面太美,我根本不敢看,尤其是你洗澡的时候丢肥皂的那个眼神…

在Cocos2dx中,自由的更换滤镜

cocso2dxgodray

可以通过网盘下载gif看看动态效果
http://pan.baidu.com/s/1jGoRER0

也可以看看移植前的stage3D版本的效果
http://www.dreamfairy.cn/blog/index.php/2014/05/10/create-a-god-ray-effect-in-stage3d.html

又一个月没写博客了,先吐槽下,怎么广告这么多。。。 每天都要删,插件都顶不住了。
然后再吐槽下之前某网友好像是叫as3er的看了我的god ray教程,然后自己在away3d中实现了但是缺少了遮挡这个god ray中最体现效果的功能。 这先不说,这位同学看就看了,理解了就好了嘛,反而不满我不发源码~ 我也不知道该说啥 摊手. 国内的开源社区条件是一直很恶劣的,以前我也完整开源,现在只能有选择的开源了,我还没有那么伟大到不用考虑薪水问题,而无私贡献。之前廖成在 Particle 做的 幻影和热流效果就不开源,我做了详细的讲解但也不开源,没有必要跟他人起矛盾,但我觉得对于有经验的程序员这些讲解已经足够了。

回归正题,cocos2dx纯粹的代码堆积,毫无美感,这是用了一段时间的体会,API的不稳定也是大忌,有点赞同云风大叔的想法了。 最近要在 CCSprite 上做各种效果,以网络上的教程来说,只能创建多个 自定义CCSprite, 每个特定滤镜,最后不断切换。。。 对于从AS毕业的我来说,太坑了。

于是打算实现带滤镜接口的CCSprite,我没有一部分程序员的毛病,比如重复造轮子,触控的程序员估计大部分都有这毛病,看看cocos2dx中大量的重复功能函数库。 于是找到了 zrong 同学写的 CCFilteredSprite github 上在这里
https://github.com/zrong/cocos2d-x-filters 而且这货在 quick 和 cocos2dx 3.x 中貌似继承了。 由于我不想装win8, 所以用不了 3.x , 因为是开发弹幕游戏,担心lua顶不住,不能用quick. 又因为项目是用 cocos2dx 2.2.4 搞的,这个库不完全兼容,所以只能做修改或者重写了。

我试着重现AS3 的 多个滤镜,但是 cocos2dx 在 2.x 版本对于 renderTexture 的封装。。。无力吐槽, 要实现仅能大改了,于是放弃了这个想法,还是单个滤镜吧。

接下来上代码
继续阅读“在Cocos2dx中,自由的更换滤镜”

使用 Cosos2dX-Lua 制作一个横版过关游戏 (3)

总之,运行后就是这样
p4

1.创建Robot类
2.添加 Hero 和 Robot 受伤 和 死亡 动作
3.添加 Robot 的AI 使之会跟踪玩家并攻击
4.添加音效

在 ActionSprite.lua 中添加方法

function ActionSprite:createBoundingBoxWithOrigin(origin,size)
local boundingBox = {}
boundingBox.original = CCRect()
boundingBox.actual = CCRect()

boundingBox.original.origin = origin
boundingBox.original.size = size
boundingBox.actual.origin = ccpAdd(ccp(self:getPositionX(),self:getPositionY()),ccp(boundingBox.original.origin.x,boundingBox.original.origin.y))
boundingBox.actual.size = size

return boundingBox
end

这里创建一个包围盒,其中 original 为 角色原始矩形
actual 为真实矩形,它会根据角色的坐标,不断修改该矩形的 x,y, 这个函数只在初始化时调用
继续阅读“使用 Cosos2dX-Lua 制作一个横版过关游戏 (3)”

使用 Cosos2dX-Lua 制作一个横版过关游戏 (2)

之前已经实现了在场景上添加英雄,并使英雄播放待机动作,接下来让英雄在场景动起来

本游戏的代码已开源,包含游戏资源
git地址
https://github.com/dreamfairy/PrompaLua

首先我们创建用户控制层 HudLayer.lua 包位置为 scenes.layers.HudLayer.lua

HudLayer.lua 的内容为

local HudLayer  = class("HudLayer", function()
    return display.newLayer()
end)

local DPad
function HudLayer:ctor()

end

function HudLayer:getDPad()
    return DPad
end

return HudLayer

可以看到我们实现了一个 getDPad()方法,但是DPad目前还是nil, 接下来开始创建 DPad 用户操控面板
创建 SimpleDPad.lua 包位置为 scenes.Controller.SimpleDPad.lua

继续阅读“使用 Cosos2dX-Lua 制作一个横版过关游戏 (2)”

使用 Cosos2dX-Lua 制作一个横版过关游戏 (1)

=。= 很久没更新博客,偷懒了好久。 受某损友的影响接触到 quick-cocos2dx. 一个使用lua来编写游戏的框架,我使用的内核版本是 cocos2dx 2.1.5。 嘛~ DreamFairy 又是初次接触Lua, 于是决定边查Lua API手册边写一个横版过关游戏。

游戏的原型是 Allen Tan 的文章 http://www.raywenderlich.com/24155/how-to-make-a-side-scrolling-beat-em-up-game-like-scott-pilgrim-with-cocos2d-part-1原游戏是使用 objective-c 编写的IOS游戏教程

国内也有同学写了一篇C++ 的教程
http://blog.csdn.net/akof1314/article/details/8549150

so~ 我来搞一个lua版本的教程

本游戏的代码已开源,包含游戏资源
git地址
https://github.com/dreamfairy/PrompaLua

1.进入 quick-cocos2dxbin 目录,使用CMD打开create_project.bat 输入 cn.dreamfairy.prompalua 该包名创建项目
2.删除Demo项目文件MainScene.lua
3.修改 Config.lua 添加一些游戏的资源信息
Config.lua 内容:

-- 0 - disable debug info, 1 - less debug info, 2 - verbose debug info
DEBUG = 2
DEBUG_FPS = true

-- design resolution
CONFIG_SCREEN_WIDTH  = 640
CONFIG_SCREEN_HEIGHT = 960

--资源
CONFIG_ROLE_SHEET_IMAGE = "pd_sprites.pvr.ccz"
CONFIG_ROLE_SHEET_FILE = "pd_sprites.plist"

--地图
CONFIG_TILEMAP_FILE = "pd_tilemap.tmx"

-- auto scale mode
CONFIG_SCREEN_AUTOSCALE = "FIXED_WIDTH"

继续阅读“使用 Cosos2dX-Lua 制作一个横版过关游戏 (1)”

移植:在Cocos2d-X中实现水波滤镜

因为工作原因,开始转向cocos2d-x开发方向了。
自然的,凭着之前引擎的经验偏向底层渲染研究。

在此期间看了两本书
《cocos2d-x 权威指南》
《cocos2d-x 高级开发教程》
不得不说,第一本书完全是API介绍,也许适合新手入门,但是于我,只是烂书一本。
第二本书还是不错的,最后的项目有全套源码,教程的风格也很有我的风格,哈哈,就是文章中不一定贴全代码,只贴核心,后期还要自己领会补全。

言归正传,在 《高级开发教程》 中有一篇是实现海底水纹效果的文章,里面代码不全,且代码和Shader并没有对应起来,于是我决定按照自己思路来将其补全,并贴上完整源码。

先上效果图:
waveCover
动态GIF图地址: http://pan.baidu.com/share/link?shareid=1858640040&uk=3221530571

继续阅读“移植:在Cocos2d-X中实现水波滤镜”