Cocos2d-x 3,android设计模式pdf

这篇博客详细介绍了如何在Cocos2d-x 3.x中创建和实现各种进度条动画效果,包括条形的横向、纵向进度动画,以及围绕中点旋转的进度动画。通过示例代码展示了如何设置进度条的类型、起点、方向和动画控制器,帮助读者理解如何在移动开发中应用这些技巧。
摘要由CSDN通过智能技术生成

layer:addChild(right)

– 设置标题

Helper.subtitleLabel:setString(“ProgressTo Radial”)

return layer

end


– SpriteProgressToHorizontal 条形的横向进度动画演示


local function SpriteProgressToHorizontal()

– 创建层

local layer = cc.Layer:create()

– 初始化层

Helper.initWithLayer(layer)

– 创建进度条

local to1 = cc.ProgressTo:create(2, 100)

local to2 = cc.ProgressTo:create(2, 100)

– 创建进度条的动画渲染器

local left = cc.ProgressTimer:create(cc.Sprite:create(s_pPathSister1))

– 设置进度条类型,这里是条形进度类型

left:setType(cc.PROGRESS_TIMER_TYPE_BAR)

– 设置圆心位置为左下角

left:setMidpoint(cc.p(0, 0))

– 设置横向进度条变化率,y=0意味着没有竖向的变化

left:setBarChangeRate(cc.p(1, 0))

– 设置在x=100,y为屏幕宽度一半的位置

left:setPosition(cc.p(100, s.height / 2))

– 执行动作

left:runAction(cc.RepeatForever:create(to1))

– 添加到层中

layer:addChild(left)

– 进度条渲染器,这是右边演示的进度条

local right = cc.ProgressTimer:create(cc.Sprite:create(s_pPathSister2))

– 设置渲染类型

right:setType(cc.PROGRESS_TIMER_TYPE_BAR)

– Setup for a bar starting from the left since the midpoint is 1 for the x

– 用来设定进度条横向前进的方向从左向右或是从右向左,这里是从右往左

right:setMidpoint(cc.p(1, 0))

– Setup for a horizontal bar since the bar change rate is 0 for y meaning no vertical change

– 用来设置进度条增长按横向或是按纵向增长,这里是横向增长

right:setBarChangeRate(cc.p(1, 0))

– 设置渲染器到右边

right:setPosition(cc.p(s.width - 100, s.height / 2))

– 让它运行一个无限循环的进度动画,进度变化由控制器2来控制

right:runAction(cc.RepeatForever:create(to2))

layer:addChild(right)

– 标题

Helper.subtitleLabel:setString(“ProgressTo Horizontal”)

return layer

end


– SpriteProgressToVertical 纵向的条形进度动画演示


local function SpriteProgressToVertical()

– 创建层

local layer = cc.Layer:create()

– 初始化层

Helper.initWithLayer(layer)

– 创建两个进度动画的控制器.2秒进度值变化到100

local to1 = cc.ProgressTo:create(2, 100)

local to2 = cc.ProgressTo:create(2, 100)

– 创建进度条渲染器

local left = cc.ProgressTimer:create(cc.Sprite:create(s_pPathSister1))

– 设置渲染器进度条类型

left:setType(cc.PROGRESS_TIMER_TYPE_BAR)

– 设置进度起点在左下角

left:setMidpoint(cc.p(0,0))

– 设置进度条横向无变化,纵向变化

left:setBarChangeRate(cc.p(0, 1))

– 设置渲染器的位置

left:setPosition(cc.p(100, s.height / 2))

– 无限循环第一个动画控制器

left:runAction(cc.RepeatForever:create(to1))

– 添加渲染器到层中

layer:addChild(left)

– 创建右边的进度条渲染器

local right = cc.ProgressTimer:create(cc.Sprite:create(s_pPathSister2))

– 设置渲染类型

right:setType(cc.PROGRESS_TIMER_TYPE_BAR)

– 设置中心点在左上角

right:setMidpoint(cc.p(0, 1))

– 设置进度条纵方向变化,横方向不变化

right:setBarChangeRate(cc.p(0, 1))

– 设置显示位置

right:setPosition(cc.p(s.width - 100, s.height / 2))

– 让它运行一个无限循环的进度动画,进度变化由控制器2来控制

right:runActio

《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》

【docs.qq.com/doc/DSkNLaERkbnFoS0ZF】 完整内容开源分享

n(cc.RepeatForever:create(to2))

layer:addChild(right)

– 设置子标题

Helper.subtitleLabel:setString(“ProgressTo Vertical”)

return layer

end


– SpriteProgressToRadialMidpointChanged

– 中点可改变的绕中点旋转的进度动画


local function SpriteProgressToRadialMidpointChanged()

– 创建层

local layer = cc.Layer:create()

– 初始化层

Helper.initWithLayer(layer)

– 创建进度动画控制器,2秒完成100进度值

local action = cc.ProgressTo:create(2, 100)

– 创建一个进度动画的渲染器.使用块色图精灵来渲染

local left = cc.ProgressTimer:create(cc.Sprite:create(s_pPathBlock))

– 设置表现为绕圆心旋转的进度动画。

left:setType(cc.PROGRESS_TIMER_TYPE_RADIAL)

– 设置旋转的中心点在横向靠左1/4位置,纵向靠上3/4位置

left:setMidpoint(cc.p(0.25, 0.75))

– 设置渲染器的位置在屏幕左边

left:setPosition(cc.p(100, s.height / 2))

– 让它运行一个无限循环的进度动画,进度变化由action来控制

left:runAction(cc.RepeatForever:create(action))

layer:addChild(left)

– 创建一个进度动画的渲染器.使用块色图精灵来渲染

local right = cc.ProgressTimer:create(cc.Sprite:create(s_pPathBlock))

– 设置表现为绕圆心旋转的进度动画。

right:setType(cc.PROGRESS_TIMER_TYPE_RADIAL)

– 设置旋转的中心点在横向靠右3/4位置,纵向靠上1/4位置

right:setMidpoint(cc.p(0.75, 0.25))

–[[

Note the reverse property (default=NO) is only added to the right image. That’s how

we get a counter clockwise progress.

]]

right:setPosition(cc.p(s.width - 100, s.height / 2))

right:runAction(cc.RepeatForever:create(action))

layer:addChild(right)

– 设置子标题

Helper.subtitleLabel:setString(“Radial w/ Different Midpoints”)

return layer

end


– SpriteProgressBarVarious


local function SpriteProgressBarVarious()

– 创建层

local layer = cc.Layer:create()

– 初始化层

Helper.initWithLayer(layer)

– 创建进度动画控制器,2秒完成100进度值

local to = cc.ProgressTo:create(2, 100)

– 创建进度动画渲染器,使用女演员精灵来渲染

local left = cc.ProgressTimer:create(cc.Sprite:create(s_pPathSister1))

– 设置表现为条形的进度动画

left:setType(cc.PROGRESS_TIMER_TYPE_BAR)

– 设置起始位置在中间

left:setMidpoint(cc.p(0.5, 0.5))

– 设置进度条横向变化,纵向不变化

left:setBarChangeRate(cc.p(1, 0))

– 设置到屏幕左边

left:setPosition(cc.p(100, s.height / 2))

– 让它运行一个无限循环的进度动画

left:runAction(cc.RepeatForever:create(cc.ProgressTo:create(2, 100)))

layer:addChild(left)

local middle = cc.ProgressTimer:create(cc.Sprite:create(s_pPathSister2))

middle:setType(cc.PROGRESS_TIMER_TYPE_BAR)

– 设置起始位置在中间

middle:setMidpoint(cc.p(0.5, 0.5))

– 设置进度变化横纵方向都有变化

middle:setBarChangeRate(cc.p(1, 1))

– 设置精灵显示在中间

middle:setPosition(cc.p(s.width/2, s.height/2))

– 让它运行一个无限循环的进度动画

middle:runAction(cc.RepeatForever:create(cc.ProgressTo:create(2, 100)))

layer:addChild(middle)

local right = cc.ProgressTimer:create(cc.Sprite:create(s_pPathSister2))

– 设置表现为条形的进度动画

right:setType(cc.PROGRESS_TIMER_TYPE_BAR)

– 设置起始位置在中间

right:setMidpoint(cc.p(0.5, 0.5))

– 设置进度条横方向不变化,纵方向变化

right:setBarChangeRate(cc.p(0, 1))

– 设置精灵的位置在右边

right:setPosition(cc.p(s.width-100, s.height/2))

right:runAction(cc.RepeatForever:create(cc.ProgressTo:create(2, 100)))

layer:addChild(right)

– 设置子标题

Helper.subtitleLabel:setString(“ProgressTo Bar Mid”)

return layer

end


– SpriteProgressBarTintAndFade

– 进度动画之颜色,透明度的变化


local function SpriteProgressBarTintAndFade()

– 创建层

local layer = cc.Layer:create()

– 初始化层

Helper.initWithLayer(layer)

– 创建进度动画控制器,6秒完成100进度值

local to = cc.ProgressTo:create(6, 100)

– 创建一个动画序列,先是1秒内变化到红色,再经1秒变化到绿色,最后1秒变化到蓝色。

local tint = cc.Sequence:create(cc.TintTo:create(1, 255, 0, 0), cc.TintTo:create(1, 0, 255, 0), cc.TintTo:create(1, 0, 0, 255))

– 创建一个动画序列,先是1秒内透明度变化到0而消失,再经1秒变化到255显现

local fade = cc.Sequence:create(cc.FadeTo:create(1.0, 0),cc.FadeTo:create(1.0, 255))

– 创建进度动画渲染器,使用女演员精灵来渲染

local left = cc.ProgressTimer:create(cc.Sprite:create(s_pPathSister1))

– 设置表现为条形的进度动画

left:setType(cc.PROGRESS_TIMER_TYPE_BAR)

– 设置起始位置在中间

left:setMidpoint(cc.p(0.5, 0.5))

– 设置进度条横方向不变化,纵方向变化

left:setBarChangeRate(cc.p(1, 0))

– 设置在左边

left:setPosition(cc.p(100, s.height / 2))

– 执行动作,6秒完成100进度值

left:runAction(cc.RepeatForever:create(cc.ProgressTo:create(6, 100)))

– 执行动作,先是1秒内变化到红色,再经1秒变化到绿色,最后1秒变化到蓝色

left:runAction(cc.RepeatForever:create(cc.Sequence:create(cc.TintTo:create(1, 255, 0, 0), cc.TintTo:create(1, 0, 255, 0), cc.TintTo:create(1, 0, 0, 255))))

layer:addChild(left)

– 添加标签

left:addChild(cc.Label:createWithTTF(“Tint”, “fonts/Marker Felt.ttf”, 20.0))

– 创建进度动画渲染器,使用女演员精灵来渲染

local middle = cc.ProgressTimer:create(cc.Sprite:create(s_pPathSister2))

– 设置表现为条形的进度动画

middle:setType(cc.PROGRESS_TIMER_TYPE_BAR)

– 设置起始位置在中间

middle:setMidpoint(cc.p(0.5, 0.5))

– 设置进度条横方向不变化,纵方向变化

middle:setBarChangeRate(cc.p(1, 1))

– 设置显示位置到中间

middle:setPosition(cc.p(s.width / 2, s.height / 2))

– 执行动作,6秒完成100进度值

middle:runAction(cc.RepeatForever:create(cc.ProgressTo:create(6, 100)))

– 创建淡入淡出的动画

local fade2 = cc.Sequence:create(cc.FadeTo:create(1.0, 0), cc.FadeTo:create(1.0, 255))

middle:runAction(cc.RepeatForever:create(fade2))

layer:addChild(middle)

– 添加标签

middle:addChild(cc.Label:createWithTTF(“Fade”, “fonts/Marker Felt.ttf”, 20.0))

– 创建进度动画渲染器,使用女演员精灵来渲染

local right = cc.ProgressTimer:create(cc.Sprite:create(s_pPathSister2))

– 设置表现为条形的进度动画

right:setType(cc.PROGRESS_TIMER_TYPE_BAR)

– 设置起始位置在中间

right:setMidPoint(cc.p(0.5, 0.5))

– 设置进度条横方向不变化,纵方向变化

right:setBarChangeRate(cc.p(1, 1))

– 设置位置在右边

right:setPosition(cc.p(s.width - 100, s.height / 2))

–执行动作,6秒完成100进度值

right:runAction(cc.RepeatForever:create(cc.ProgressTo:create(6, 100)))

– 先是1秒内变化到红色,再经1秒变化到绿色,最后1秒变化到蓝色

right:runAction(cc.RepeatForever:create(cc.Sequence:create(cc.TintTo:create(1, 255,0,0), cc.TintTo:create(1, 0,255,0), cc.TintTo:create(1, 0,0,255))))

– 创建淡入淡出的动画

right:runAction(cc.RepeatForever:create(cc.Sequence:create(cc.FadeTo:create(1.0, 0), cc.FadeTo:create(1.0, 255))))

layer:addChild(right)

– 添加标签

right:addChild(cc.Label:createWithTTF(“Tint and Fade”, “fonts/Marker Felt.ttf”, 20.0))

– 设置子标签

Helper.subtitleLabel:setString(“ProgressTo Bar Mid”)

return layer

end


– SpriteProgressWithSpriteFrame

– 进度动画之使用序列帧中的单帧精灵来演示


local function SpriteProgressWithSpriteFrame()

– 创建层

local layer = cc.Layer:create()

– 初始化层

Helper.initWithLayer(layer)

local to = cc.ProgressTo:create(6, 100)

– 创建进度动画的控制器.6秒进度值变化到100

cc.SpriteFrameCache:getInstance():addSpriteFrames(“zwoptex/grossini.plist”)

– 创建一个进度动画渲染器,使用序列帧中的grossini_dance_01.png图像来进行动画的渲染

local left = cc.ProgressTimer:create(cc.Sprite:createWithSpriteFrameName(“grossini_dance_01.png”))

– 设置表现为条形的进度动画

left:setType(cc.PROGRESS_TIMER_TYPE_BAR)

– 设置起始位置为中点

left:setMidpoint(cc.p(0.5, 0.5))

– 设置进度条横方向变化,纵方向不变化

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值