基于COCOS2D-X的lua版打怪减血特效
2014-02-21 18:40
549 查看
打怪减血特效是游戏最常见的一种,我看了http://www.cnblogs.com/zisou/p/cocos2d-x-demo1.html的BOLG,也写了个LUA版。
简单地贴个效果图吧
咦这里所见非所得 图不见了
function createbleed( num ) local ori_bleed_png = CCTextureCache:sharedTextureCache():addImage("bleed.png");--内容为-0123456789 local X = ori_bleed_png:getContentSize().width;--得到图的总宽 local Y = ori_bleed_png:getContentSize().height; local x = X/11; local stack ={} ;--哈哈 这里像数组一样用它 local len = 0;--num的位数啦 while true do if num < 1 then--当num=0时 各位数都存在stack了 break; end local i = num%10; num = (num-i) / 10;--它奶奶的 lua /这个运算不像c++ 159/10=15.9 len = len + 1; stack[len] = i; end local rect = CCRectMake(0,0,x,Y); local frame0 = CCSpriteFrame:createWithTexture(ori_bleed_png,rect);--得到第一个符号 local shownum = CCSprite:createWithSpriteFrame(frame0)--应该是到这里才变成精灵 shownum:setPosition(115,115) for j=1,len do i = stack[j]; rect = CCRectMake(x*(1+i),0,x,Y); frame0 = CCSpriteFrame:createWithTexture(ori_bleed_png,rect); local lonenum = CCSprite:createWithSpriteFrame(frame0); lonenum:setPosition(shownum:getContentSize().width*(len-j+1),shownum:getContentSize().height*0.5);--这里要注意了 你add在谁哪里这个位置就是相对谁的(0,0) lonenum:setTag(1000+j);--一般的动作会跟着父结点除了淡出 下面for用到 shownum:addChild(lonenum,j);--把新的数字加到原图 end local action1 = CCFadeIn:create(1) local action2 = CCFadeOut:create(2)--下面的for循环不能省这句,否则只是最后一次循环有响应此动作 一个动作只能用一次?! local actionBy = CCMoveBy:create(2, ccp(0, 50)) shownum:runAction(CCSequence:createWithTwoActions(action1,actionBy))--子结点也可以移动 shownum:runAction(action2) for i=1,len do action2 = CCFadeOut:create(2)--这里不能省的 折腾我好久 shownum:getChildByTag(1000+i):runAction(action2)--所有结点都淡出 end return shownum; end哈哈 直接在hellolua代码里调用 就是
local bgMusicPath = CCFileUtils:sharedFileUtils():fullPathForFilename("background.mp3") SimpleAudioEngine:sharedEngine():playBackgroundMusic(bgMusicPath, true) local effectPath = CCFileUtils:sharedFileUtils():fullPathForFilename("effect1.wav") SimpleAudioEngine:sharedEngine():preloadEffect(effectPath) -- run local sceneGame = CCScene:create() sceneGame:addChild(createLayerFarm()) sceneGame:addChild(createLayerMenu()) sceneGame:addChild(createbleed(15948615670))--这一句才是调用特效的 CCDirector:sharedDirector():runWithScene(sceneGame)
简单地贴个效果图吧
咦这里所见非所得 图不见了
相关文章推荐
- Lua 中调用 cocos2d-x 的24种简单特效
- Cocos2d-X lua 学习笔记之划屏拖尾特效
- Cocos2d-x Lua中实例:特效演示
- 基于cocos2d-lua的shader入门玩转
- 基于 Cocos2d-x-lua 的游戏开发框架 Dorothy 简介
- Cocos2d-x 2.20及以上版本如何创建基于Lua的项目
- 基于cocos2d-x的游戏可以完全使用lua开发吗?
- Cocos2d-x Lua中实例:特效演示
- Cocos2d-x Lua中实例:特效演示
- 《Cocos2d-x-3.2 Lua-tests》文件详解 之 特效Effects
- Cocos2d-x 2.20及以上版本如何创建基于Lua的项目
- 使用BabeLua在cocos2d-x中调试Lua
- quick-cocos2d-x基于源码加密打包功能的更新策略(3)
- Cocos2d-x下Lua调用自定义C++类和函数的最佳实践
- cocos2d-x lua BMFont中文问题解决
- Cocos2d-x Lua中多场景切换生命周期
- 基于HTML5手机上下滑动翻页特效
- cocos2d-x+lua开发,如何重载scene的事件
- 【cocos2d-x 3.5】简单Lua 热更新
- cocos2d-x lua 使用http(下载图片, POST JSON)