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));
        },
    
  • 相关阅读:
    ApiDoc 一键生成注释
    质量报告之我见
    一些 ssh 小技巧
    virtualenv简介以及一个比较折腾的scrapy安装方法
    用scrapy数据抓取实践
    linux rootfs制作
    ubuntu环境下android开发环境安装
    弱符号 与 强符号, 强引用 与 弱引用
    链接器和加载器
    wine的使用
  • 原文地址:https://www.cnblogs.com/shirln/p/10605412.html
Copyright © 2011-2022 走看看