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移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
最后
代码真的是重质不重量,质量高的代码,是当前代码界提倡的,当然写出高质量的代码肯定需要一个相当高的专业素养,这需要在日常的代码书写中逐渐去吸收掌握,谁不是每天都在学习呀,目的还不是为了一个,为实现某个功能写出高质量的代码。
所以,长征路还长,大家还是好好地做个务实的程序员吧。
最后,小编这里有一系列Android提升学习资料,有兴趣的小伙伴们可以来看下哦~
能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!**
因此收集整理了一份《2024年最新Android移动开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-Sa8PRo5k-1711385834603)]
[外链图片转存中…(img-fwaNlD4e-1711385834604)]
[外链图片转存中…(img-hbRHBRhw-1711385834604)]
[外链图片转存中…(img-Y3sk9TCn-1711385834605)]
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频
如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Android)
[外链图片转存中…(img-ElnfKZVF-1711385834605)]
最后
代码真的是重质不重量,质量高的代码,是当前代码界提倡的,当然写出高质量的代码肯定需要一个相当高的专业素养,这需要在日常的代码书写中逐渐去吸收掌握,谁不是每天都在学习呀,目的还不是为了一个,为实现某个功能写出高质量的代码。
所以,长征路还长,大家还是好好地做个务实的程序员吧。
最后,小编这里有一系列Android提升学习资料,有兴趣的小伙伴们可以来看下哦~