cocos2d-x抽奖轮盘代码


看到网上有相关抽奖轮盘的实现,刚好自己也在做相关功能,就写了一个,能实现任意个数的抽奖圆盘,上传的GIF帧数有点少(只有10帧),博客不允许大图片没办法,cocos2d-x版本3.3,需要源码资源的可以给我发信息

204631_ubDX_2000810.gif


LuckyRound = class("LuckyRound", function ()

return cc.Layer:create()

end)

function LuckyRound:ctor()

self.bg = cc.Sprite:create("res/luck001.png")

self.bg:setPosition(cc.p(480,320))

self.bg:setAnchorPoint(cc.p(0.5,0.5))

self:addChild(self.bg)

local bgSize = self.bg:getContentSize()



self.pointsBg = cc.Sprite:create("res/luck002.png")

self.pointsBg:setPosition(cc.p(bgSize.width/2,bgSize.height/2))

self.bg:addChild(self.pointsBg)

self.pointsBg:setGlobalZOrder(2)


local centerMarkImg = cc.Sprite:create("res/luck011.png")

centerMarkImg:setPosition(cc.p(bgSize.width/2,bgSize.height/2))

self.bg:addChild(centerMarkImg)


    local selectImg = cc.Sprite:create("res/luck012.png")

    selectImg:setPosition(cc.p(bgSize.width/2,bgSize.height/2+50))

    self.bg:addChild(selectImg)


local actionRotate1 = cc.RotateBy:create(1, 90)

local actionRotate2 = cc.RotateBy:create(1, 360)

local selectedItemNum = 1

local actionRotate3 = cc.RotateBy:create(2, 720)

local actionRotate4 = cc.RotateBy:create(3, 180+20-(selectedItemNum*45))

    local seq = cc.Sequence:create(actionRotate1,actionRotate2,actionRotate3,actionRotate4)

    self.pointsBg:runAction(seq)

    local posList = self:getItemsPos(7,120)

    for i=1,7 do

    local imgSrc = string.format("res/luck0%02d.png", i+2)


    local sprite = cc.Sprite:create(imgSrc)

    sprite:setAnchorPoint(0.5,0.5)

    sprite:setPosition(posList[i].x+166,posList[i].y+166)

    self.pointsBg:addChild(sprite)

    local updateRotate = function ()

    sprite:setRotation(-(self.pointsBg:getRotation()))

    end

    schedule(sprite,updateRotate,0.1)

    end

end

--获取个数,半径为radis 的各个顶点的位置

function LuckyRound:getItemsPos(itemNum,radis)

local e_rot= 2*math.pi/itemNum;

local posList = {}

for i=1,itemNum do

posList[i] = {}

local rot = i*e_rot + 0.5*e_rot;

posList[i].x=radis*math.sin(rot);

posList[i].y=radis*math.cos(rot);

end

return posList

end

return LuckyRound

GIF好像没办法播放!!!!

转载于:https://my.oschina.net/u/2000810/blog/511538

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值