zoukankan      html  css  js  c++  java
  • 大转盘(CocosCreator)

    推荐阅读:

    1.在场景中搭建大转盘场景,假设
    奖项有n项,对应的每项旋转角度如下:

    第几项 需要旋转的角度
    0 360/n/2
    1 360/n+第0项角度
    2 360/n+第1项角度
    ... ...

    例如:奖项一共6项

    第几项 需要旋转的角度
    0 360/n/2=30
    1 360/n+第一项角度 =30+60=90
    2 90+60=150
    3 210
    4 270
    5 330
    ... ...

    2.代码控制大转盘的转动
    大转盘的思想:预先给定一个本轮大转盘的奖项的下标,然后再随机一个该奖项的角度,核心代码:

    var angle = app.random((idx + 1) * (-60) + 10 + 360, (idx + 0) * (-60) - 10 + 360, false) + 1800;
    

    其中,60代表360/n,上面可以当成一个公式使用。
    旋转函数代码:

        /// 转动大转盘,idx表示奖项的下标
        rollPanel(idx, call) {
            var self = this;
            self.uiRoot.close.active = false;
            self.uiRoot.begin.enabled = false;
            var angle = app.random((idx + 1) * (-60) + 10 + 360, (idx + 0) * (-60) - 10 + 360, false) + 1800;
            var rot1 = cc.rotateTo(5, angle).easing(cc.easeExponentialInOut(10.0));
            var call1 = app.callFunc(function (adt) { self.uiRoot.close.active = true; self.uiRoot.begin.enabled = true; if (call) { call(); } });
            this.uiRoot.panel.root.stopAllActions();
            this.uiRoot.panel.root.rotation %= 360;
            this.uiRoot.panel.root.runAction(cc.sequence(rot1, call1));
        },
    
  • 相关阅读:
    C. Tesla (模拟 + 思维)
    E
    E. Ehab's REAL Number Theory Problem (bfs + 思维)
    uva 12307
    P4249 [WC2007]剪刀石头布
    luoguP4003 无限之环
    luoguP4068 [SDOI2016]数字配对
    有源汇有上下界最小流
    有源汇有上下界最大流
    无源汇有上下界可行流
  • 原文地址:https://www.cnblogs.com/shirln/p/10605412.html
Copyright © 2011-2022 走看看