幸运转盘图

在游戏内,转到几倍数值基本都是有服务器发给客户端的,然后再根据服务器下发的数值进行随机到相应的倍数上,在面板中展示对应的倍数。
实现比较简单,直接上代码,思路可看代码的注释
--旋转指针
function LuckyWheel:RotatePointer()
local todayBetGold = Data_Wheel.Gold --抽到的金币
local times = Data_Wheel.betTime --当前抽的次数
local curGold = 0
if times> 0 then
curGold = self:ReturnNeedGold(times-1,1) --根据抽奖次数返回抽奖需要的金币,默认100
else
curGold = 100
end
local multi = (todayBetGold) / curGold
local angle = 0 --旋转角度
local circle = 0 --转的圈数
local addAngle = 0 --根据倍数增加的角度 <360°
local multi = 1
if curGold~=0 then
multi = Data_Wheel.betGold/curGold
else
return
end
circle = math.random(3, 4) --随机圈数
--根据倍数随机倍数里的角度值,为了不压线,因此1-45°就随机15-30°里面的角度值,以此类推
if multi == 1 then
addAngle = math.random(15, 30)
elseif multi == 1.2 then
addAngle = math.random(60, 75)
elseif multi == 1.5 then
addAngle = math.random(105, 120)
elseif multi == 2 then
addAngle = math.random(150, 165)
elseif multi == 3 then
addAngle = math.random(195, 210)
elseif multi == 5 then
addAngle = math.random(240, 255)
elseif multi == 10 then
addAngle = math.random(285, 300)
elseif multi == 20 then
addAngle = math.random(330, 345)
else
addAngle = 0
end
angle = circle * 360 + addAngle
self.pointerAnim = self.pointer.transform:DOLocalRotate(Vector3(0,0,-angle),2,DG.Tweening.RotateMode.FastBeyond360):SetAutoKill(false):SetEase(Ease.OutSine) --设置指针转动效果
----等待1秒后告诉玩家抽奖结果
self.waitSecondsTimer = TimerManager.AddCount(1, 3);
self.waitSecondsTimer:OnUpdate(function(timer)
self:OpenRedPackage()
end);
end
网友评论