Cocos2d-x 3,阿里后台开发

EaseSineOut:动作由慢变快

EaseSineInOut:精灵由慢至快再由快至慢

**EaseElasticIn:让目标动作赋予弹性 ,且以目标动作起点位子赋予弹性

**

**EaseElasticOut:让目标动作赋予弹性 ,且以目标动作终点位子赋予弹性

**

**EaseElasticInOut:让目标动作赋予弹性 ,且以目标动作起点和终点位子赋予弹性

**

**EaseBounceIn:让目标动作缓慢开始

**

EaseBounceOut:让目标动作赋予反弹力,且以目标动作结束位子开始反弹

**EaseBounceInOut:让目标动作赋予反弹力,且以目标动作起始与结束位子开始反弹

**

**EaseBackIn:让目标动作赋予回力 , 且以目标动作起点位置作为回力点

**

**EaseBackOut:让目标动作赋予回力 , 且以目标动作终点位置作为回力点

**

EaseBackInOut:让目标动作赋予回力 , 且以目标动作起点和终点位置作为回力点

JumpBy/JumpTo:跳的动作

**RotateBy/RotateTo:旋转的动作

**

**Spawn:让多个动作同时执行

**

Speed:让目标运行速度加倍

实现代码如下:

local kTagAction1 = 1

local kTagAction2 = 2

local kTagSlider = 1

– 获取屏幕大小

local s = cc.Director:getInstance():getWinSize()

– 获取与Directorg关联的调度器

local scheduler = cc.Director:getInstance():getScheduler()

– 创建简单的移动,持续3秒

local function createSimpleMoveBy()

return cc.MoveBy:create(3, cc.p(s.width - 130, 0))

end

– 创建简单的延迟,0.25秒

local function createSimpleDelayTime()

return cc.DelayTime:create(0.25)

end

– 设置两个精灵的位置

local function positionForTwo()

grossini:setPosition(cc.p(60, s.height * 1 / 5))

tamara:setPosition(cc.p(60, s.height * 4 / 5))

kathia:setVisible(false)

end

– 获取基础层

local function getBaseLayer()

local layer = cc.Layer:create()

– 三个丑陋的精灵

grossini = cc.Sprite:create(s_pPathGrossini)

tamara = cc.Sprite:create(s_pPathSister1)

kathia = cc.Sprite:create(s_pPathSister2)

– 添加三个精灵到层当中

layer:addChild(grossini, 3)

layer:addChild(kathia, 2)

layer:addChild(tamara, 1)

– 设置三个精灵的位置

grossini:setPosition(cc.p(60, s.height * 1 / 5))

kathia:setPosition(cc.p(60, s.height * 2.5 / 5))

tamara:setPosition(cc.p(60, s.height * 4 / 5))

– 初始化层

Helper.initWithLayer(layer)

return layer

end


– SpriteEase


local SpriteEase_entry = nil

– 测试停止动作

local function testStopAction(dt)

– 取消调度脚本

scheduler:unscheduleScriptEntry(SpriteEase_entry)

tamara:stopActionByTag(1)

kathia:stopActionByTag(1)

grossini:stopActionByTag(1)

end

– 进入或退出

local function SpriteEase_onEnterOrExit(tag)

– 如果是进入

if tag == “enter” then

– 执行脚本方法

SpriteEase_entry = scheduler:scheduleScriptFunc(testStopAction, 6.25, false)

elseif tag == “exit” then

– 注销循环

scheduler:unscheduleScriptEntry(SpriteEase_entry)

end

end

local function SpriteEase()

local layer = getBaseLayer()

local move = createSimpleMoveBy()

local move_back = move:reverse() – 原地返回

– 动作由慢变快

local move_ease_in = cc.EaseIn:create(createSimpleMoveBy(), 2.5)

– 原路返回

local move_ease_in_back = move_ease_in:reverse()

– 动作有块变慢

local move_ease_out = cc.EaseOut:create(createSimpleMoveBy(), 2.5)

– 原路返回

local move_ease_out_back = move_ease_out:reverse()

– 延时

local delay = createSimpleDelayTime()

– 动作序列1

local seq1 = cc.Sequence:create(move, delay, move_back, createSimpleDelayTime())

– 动作序列2

local seq2 = cc.Sequence:create(move_ease_in,createSimpleDelayTime(),move_ease_in_back,createSimpleDelayTime())

– 动作序列3

local seq3 = cc.Sequence:create(move_ease_out,createSimpleDelayTime(),move_ease_out_back,createSimpleDelayTime())

– 执行一个无线循环的动作

local a2 = grossini:runAction(cc.RepeatForever:create(seq1))

a2:setTag(1)–改变这个用来更容易分辨节点的标记。

local a1 = tamara:runAction(cc.RepeatForever:create(seq2))

a1:setTag(1)

local a = kathia:runAction(cc.RepeatForever:create(seq3))

a:setTag(1)

– 注册监听脚本

layer:registerScriptHandler(SpriteEase_onEnterOrExit)

Helper.titleLabel:setString(“EaseIn - EaseOut - Stop”)

return layer

end


– SpriteEaseInOut 精灵由慢至快再由快至慢


local function SpriteEaseInOut()

– 获取基础层

local layer = getBaseLayer()

– 创建移动动作

local move = createSimpleMoveBy()

– 创建由慢变快再由快变慢的动作,第一个参数表示动作,第二个参数表示频率

local move_ease_inout1 = cc.EaseInOut:create(createSimpleMoveBy(), 0.65)

– 返回执行与本Action对象相反操作的新Action对象

local move_ease_inout_back1 = move_ease_inout1:reverse()

– 创建频率为1.35的easeInOut动作

local move_ease_inout2 = cc.EaseInOut:create(createSimpleMoveBy(), 1.35)

– 返回执行与本Action对象相反操作的新Action对象

local move_ease_inout_back2 = move_ease_inout2:reverse()

– 创建频率为1.0的easeInOut动作

local move_ease_inout3 = cc.EaseInOut:create(createSimpleMoveBy(), 1.0)

– 返回执行与本Action对象相反操作的新Action对象

local move_ease_inout_back3 = move_ease_inout3:reverse()

– 延时动作

local delay = createSimpleDelayTime()

local seq1 = cc.Sequence:create(move_ease_inout1,delay,move_ease_inout_back1,createSimpleDelayTime())

local seq2 = cc.Sequence:create(move_ease_inout2,createSimpleDelayTime(),move_ease_inout_back2,createSimpleDelayTime())

local seq3 = cc.Sequence:create(move_ease_inout3, createSimpleDelayTime(), move_ease_inout_back3, createSimpleDelayTime() )

tamara:runAction(cc.RepeatForever:create(seq1))

kathia:runAction(cc.RepeatForever:create(seq2))

grossini:runAction(cc.RepeatForever:create(seq3))

Helper.titleLabel:setString(“EaseInOut and rates”)

return layer

end


– SpriteEaseExponential 精灵由慢至极快,由极快到慢


local function SpriteEaseExponential()

– 得到基础层

local layer = getBaseLayer()

– 创建移动动作

local move = createSimpleMoveBy()

– 反操作

local move_back = move:reverse()

– 创建由慢到极快的动作

local move_ease_in = cc.EaseExponentialIn:create(createSimpleMoveBy())

local move_ease_in_back = move_ease_in:reverse()

– 创建有极快到慢的动作

local move_ease_out = cc.EaseExponentialOut:create(createSimpleMoveBy())

local move_ease_out_back = move_ease_out:reverse()

– 创建延时动作

local delay = createSimpleDelayTime()

local seq1 = cc.Sequence:create(move, delay, move_back, createSimpleDelayTime())

local seq2 = cc.Sequence:create(move_ease_in, createSimpleDelayTime(), move_ease_in_back, createSimpleDelayTime())

local seq3 = cc.Sequence:create(move_ease_out, createSimpleDelayTime(), move_ease_out_back, createSimpleDelayTime())

– 三个丑八怪执行动作

grossini:runAction(cc.RepeatForever:create(seq1))

tamara:runAction(cc.RepeatForever:create(seq2))

kathia:runAction(cc.RepeatForever:create(seq3))

– 设置层标题

Helper.titleLabel:setString(“ExpIn - ExpOut actions”)

return layer

end


– SpriteEaseExponentialInOut 精灵由慢至极快再由极快至慢


local function SpriteEaseExponentialInOut()

– 得到基础层

local layer = getBaseLayer()

– 创建简单移动动作

local move = createSimpleMoveBy()

– 反向操作

local move_back = move:reverse()

– 创建由慢至极快再由极快至慢的动作

local move_ease = cc.EaseExponentialInOut:create(createSimpleMoveBy())

local move_ease_back = move_ease:reverse()

local delay = createSimpleDelayTime()

local seq1 = cc.Sequence:create(move, delay, move_back, createSimpleDelayTime())

local seq2 = cc.Sequence:create(move_ease, createSimpleDelayTime(), move_ease_back, createSimpleDelayTime() )

– 设置两个丑八怪的位置

positionForTwo()

grossini:runAction(cc.RepeatForever:create(seq1))

tamara:runAction(cc.RepeatForever:create(seq2))

– 设置层标题

Helper.titleLabel:setString(“EaseExponentialInOut action”)

return layer

end


– SpriteEaseSine 由快至慢、由慢至快


local function SpriteEaseSine()

– 得到基础层

local layer = getBaseLayer()

– 创建简单移动动作

local move = createSimpleMoveBy()

– 反向操作

local move_back = move:reverse()

– 创建由快至慢的动作

local move_ease_in = cc.EaseSineIn:create(createSimpleMoveBy())

local move_ease_in_back = move_ease_in:reverse()

– 创建有慢至快的动作

local move_ease_out = cc.EaseSineOut:create(createSimpleMoveBy())

local move_ease_out_back = move_ease_out:reverse()

local delay = createSimpleDelayTime()

local seq1 = cc.Sequence:create(move, delay, move_back, createSimpleDelayTime() )

local seq2 = cc.Sequence:create(move_ease_in, createSimpleDelayTime(), move_ease_in_back, createSimpleDelayTime())

local seq3 = cc.Sequence:create(move_ease_out, createSimpleDelayTime(), move_ease_out_back,createSimpleDelayTime())

– 运动了喂

grossini:runAction(cc.RepeatForever:create(seq1))

tamara:runAction(cc.RepeatForever:create(seq2))

kathia:runAction(cc.RepeatForever:create(seq3))

– 设置标题

Helper.titleLabel:setString(“EaseSineIn - EaseSineOut”)

return layer

end


– SpriteEaseSineInOut 精灵由慢至快再由快至慢


local function SpriteEaseSineInOut()

– 得到基础层

local layer = getBaseLayer()

– 创建简单移动动作

local move = createSimpleMoveBy()

local move_back = move:reverse()

– 由慢至快再由快至慢

local move_ease = cc.EaseSineInOut:create(createSimpleMoveBy())

local move_ease_back = move_ease:reverse()

local delay = createSimpleDelayTime()

local seq1 = cc.Sequence:create(move, delay, move_back, createSimpleDelayTime())

local seq2 = cc.Sequence:create(move_ease, createSimpleDelayTime(), move_ease_back, createSimpleDelayTime())

– 设置两个丑八怪的位置

positionForTwo()

– 丑八怪运动啦

grossini:runAction(cc.RepeatForever:create(seq1))

tamara:runAction(cc.RepeatForever:create(seq2))

Helper.titleLabel:setString(“EaseSineInOut action”)

return layer

end


– SpriteEaseElastic


local function SpriteEaseElastic()

– 得到基础层

local layer = getBaseLayer()

– 创建简单移动动作

local move = createSimpleMoveBy()

local move_back = move:reverse()

– 让目标动作赋予弹性 ,且以目标动作起点位子赋予弹性

local move_ease_in = cc.EaseElasticIn:create(createSimpleMoveBy())

local move_ease_in_back = move_ease_in:reverse()

– 让目标动作赋予弹性 ,且以目标动作终点位子赋予弹性

local move_ease_out = cc.EaseElasticOut:create(createSimpleMoveBy())

local move_ease_out_back = move_ease_out:reverse()

– 延迟动作

local delay = createSimpleDelayTime()

– 创建动作序列

local seq1 = cc.Sequence:create(move, delay, move_back, createSimpleDelayTime() )

local seq2 = cc.Sequence:create(move_ease_in, createSimpleDelayTime(), move_ease_in_back, createSimpleDelayTime())

local seq3 = cc.Sequence:create(move_ease_out, createSimpleDelayTime(), move_ease_out_back, createSimpleDelayTime())

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级安卓工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
img

最后

代码真的是重质不重量,质量高的代码,是当前代码界提倡的,当然写出高质量的代码肯定需要一个相当高的专业素养,这需要在日常的代码书写中逐渐去吸收掌握,谁不是每天都在学习呀,目的还不是为了一个,为实现某个功能写出高质量的代码。

所以,长征路还长,大家还是好好地做个务实的程序员吧。

最后,小编这里有一系列Android提升学习资料,有兴趣的小伙伴们可以来看下哦~

我的 Android 学习,面试文档,视频收集大整理

能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**

因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-Sa8PRo5k-1711385834603)]
[外链图片转存中…(img-fwaNlD4e-1711385834604)]
[外链图片转存中…(img-hbRHBRhw-1711385834604)]
[外链图片转存中…(img-Y3sk9TCn-1711385834605)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
[外链图片转存中…(img-ElnfKZVF-1711385834605)]

最后

代码真的是重质不重量,质量高的代码,是当前代码界提倡的,当然写出高质量的代码肯定需要一个相当高的专业素养,这需要在日常的代码书写中逐渐去吸收掌握,谁不是每天都在学习呀,目的还不是为了一个,为实现某个功能写出高质量的代码。

所以,长征路还长,大家还是好好地做个务实的程序员吧。

最后,小编这里有一系列Android提升学习资料,有兴趣的小伙伴们可以来看下哦~

我的 Android 学习,面试文档,视频收集大整理

  • 17
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Cocos2d-x是一款非常流行的移动跨平台游戏引擎。它提供了丰富的功能和工具,方便开发者进行游戏开发。有多本与Cocos2d-x移动游戏开发相关的书籍被出版,这些书籍提供了全面的教程和实战经验。 其中,《捕鱼达人游戏开发》是一本全面的、比较实用的Cocos2d-x游戏开发教程。这本书汇集了热门手机游戏《捕鱼达人》开发的实战经验,作者从基础内容开始介绍Cocos2d-x引擎,并逐步深入地介绍了相关的开发技术和经验。 还有一本《Cocos2d-x高级开发教程》,该书作者曾参与Cocos2d-x for Windows Phone 7引擎的开发,并负责《捕鱼达人》系列游戏Windows Phone版本的移植工作。作者也参与了多个移动游戏项目的开发,拥有丰富的游戏开发经验。 除了这些书籍,还有《Cocos2D-X游戏开发技术精解》。这本书详细介绍了如何使用Cocos2D-X引擎开发移动平台游戏,包括引擎的简介以及其他相关内容。 总结来说,Cocos2d-x是一款流行的移动跨平台游戏引擎,有多本相关的书籍提供了全面的教程和实战经验,适合想要进行Cocos2d-x移动游戏开发开发者参考和学习。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [Cocos2d-x高级开发教程](https://download.csdn.net/download/surport_t/9776900)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [Cocos2d-x高级开发教程制作自己的《捕鱼达人》](https://download.csdn.net/download/qq461787436/10872674)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [Cocos2D-X游戏开发技术精解](https://download.csdn.net/download/weixin_39840588/11417620)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值