Cocos2d-x 3,跳槽薪资翻倍

local m_nSoundId = 0

– 测试菜单项

local testItems = {

“play background music”,

“stop background music”,

“pause background music”,

“resume background music”,

“rewind background music”,

“is background music playing”,

“play effect”,

“play effect repeatly”,

“stop effect”,

“unload effect”,

“add background music volume”,

“sub background music volume”,

“add effects volume”,

“sub effects volume”,

“pause effect”,

“resume effect”,

“pause all effects”,

“resume all effects”,

“stop all effects”

}

– 菜单回调方法

local function menuCallback(tag, pMenuItem)

local nIdx = pMenuItem:getLocalZOrder() - 10000

– play background music

if nIdx == 0 then

AudioEngine.playMusic(MUSIC_FILE, true) – 播放音乐

elseif nIdx == 1 then

– stop background music

AudioEngine.stopMusic() – 停止背景音乐

elseif nIdx == 2 then

– pause background music

AudioEngine.pauseMusic() – 暂停音乐

elseif nIdx == 3 then

– resume background music

AudioEngine.resumeMusic() – 继续播放音乐

– rewind background music

elseif nIdx == 4 then

AudioEngine.rewindMusic() – 循环播放

elseif nIdx == 5 then

– is background music playing

if AudioEngine.isMusicPlaying () then – 音乐正在播放

cclog(“background music is playing”)

else

cclog(“background music is not playing”)

end

elseif nIdx == 6 then

– play effect

m_nSoundId = AudioEngine.playEffect(EFFECT_FILE) – 播放音效

elseif nIdx == 7 then

– play effect

m_nSoundId = AudioEngine.playEffect(EFFECT_FILE, true) – 播放音效,第二个参数表示是否循环,true表示循环

elseif nIdx == 8 then

– stop effect

AudioEngine.stopEffect(m_nSoundId) – 停止音效

elseif nIdx == 9 then

– unload effect

AudioEngine.unloadEffect(EFFECT_FILE) – 不加载音效

elseif nIdx == 10 then

– add bakcground music volume

AudioEngine.setMusicVolume(AudioEngine.getMusicVolume() + 0.1) – 增加音量

elseif nIdx == 11 then

– sub backgroud music volume

AudioEngine.setMusicVolume(AudioEngine.getMusicVolume() - 0.1) – 减小音量

elseif nIdx == 12 then

– add effects volume

AudioEngine.setEffectsVolume(AudioEngine.getEffectsVolume() + 0.1) – 增加音效音量

elseif nIdx == 13 then

– sub effects volume

AudioEngine.setEffectsVolume(AudioEngine.getEffectsVolume() - 0.1) – 减少音效音量

elseif nIdx == 14 then

AudioEngine.pauseEffect(m_nSoundId) – 暂停音效

elseif nIdx == 15 then

AudioEngine.resumeEffect(m_nSoundId) – 恢复音效

elseif nIdx == 16 then

AudioEngine.pauseAllEffects() – 暂停所有音效

elseif nIdx == 17 then

AudioEngine.resumeAllEffects() – 恢复所有音效

elseif nIdx == 18 then

AudioEngine.stopAllEffects() – 停止所有音效

end

end

– add menu items for tests

m_pItmeMenu = cc.Menu:create() – 创建菜单

m_nTestCount = table.getn(testItems)

local i = 1

for i = 1, m_nTestCount do

local label = cc.Label:createWithTTF(testItems[i], s_arialPath, 24)

label:setAnchorPoint(cc.p(0.5, 0.5))

local pMenuItem = cc.MenuItemLabel:create(label) – 菜单标签

pMenuItem:registerScriptTapHandler(menuCallback) – 注册菜单回调方法

m_pItmeMenu:addChild(pMenuItem, i + 10000 -1)

pMenuItem:setPosition( cc.p( VisibleRect:center().x, (VisibleRect:top().y - i * LINE_SPACE) ))

end

– 设置菜单内容大小

m_pItmeMenu:setContentSize(cc.size(VisibleRect:getVisibleRect().width, (m_nTestCount + 1) * LINE_SPACE))

m_pItmeMenu:setPosition(cc.p(0, 0))

ret:addChild(m_pItmeMenu)

– preload background music and effect

AudioEngine.preloadMusic( MUSIC_FILE ) – 预加载音乐

AudioEngine.preloadEffect( EFFECT_FILE ) – 预加载音效

– set default volume

AudioEngine.setEffectsVolume(0.5) – 设置音效音量

AudioEngine.setMusicVolume(0.5) – 设置音乐音量

local function onNodeEvent(event)

if event == “enter” then – 进来时

elseif event == “exit” then – 退出时

AudioEngine.destroyInstance() – 销毁对象

end

end

– 注册层的结点事件

ret:registerScriptHandler(onNodeEvent)

local prev = {x = 0, y = 0}

local function onTouchEvent(eventType, x, y)

if eventType == “began” then – 开始点击

prev.x = x

prev.y = y

m_tBeginPos = cc.p(x, y) – 开始点击位置

return true

elseif eventType == “moved” then – 移动事件

local touchLocation = cc.p(x, y) – 获取触摸的位置

local nMoveY = touchLocation.y - m_tBeginPos.y – 触摸位置减去开始位置等于移动的距离

local curPosX, curPosY = m_pItmeMenu:getPosition() – 获取当前菜单的位置

local curPos = cc.p(curPosX, curPosY) – 当前位置

local nextPos = cc.p(curPos.x, curPos.y + nMoveY) – 下一个位置

if nextPos.y < 0.0 then

m_pItmeMenu:setPosition(cc.p(0, 0))

end

if nextPos.y > ((m_nTestCount + 1)* LINE_SPACE - VisibleRect:getVisibleRect().height) then

m_pItmeMenu:setPosition(cc.p(0, ((m_nTestCount + 1)* LINE_SPACE - VisibleRect:getVisibleRect().height)))

end

m_pItmeMenu:setPosition(nextPos)

m_tBeginPos.x = touchLocation.x – 重新记录开始位置

m_tBeginPos.y = touchLocation.y

prev.x = x

prev.y = y

end

end

– 触摸开始回调方法

local function onTouchBegan(touch, event)

local location = touch:getLocation()

prev.x = location.x

prev.y = location.y

m_tBeginPos = location

return true

end

– 触摸移动的回调方法

local function onTouchMoved(touch, event)

local location = touch:getL

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

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

ocation()

local touchLocation = location

local nMoveY = touchLocation.y - m_tBeginPos.y

local curPosX, curPosY = m_pItmeMenu:getPosition()

local curPos = cc.p(curPosX, curPosY)

local nextPos = cc.p(curPos.x, curPos.y + nMoveY)

if nextPos.y < 0.0 then

m_pItmeMenu:setPosition(cc.p(0, 0))

end

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值