大转盘(CocosCreator)

举报
爱上游戏开发 发表于 2022/07/03 00:34:55 2022/07/03
【摘要】 推荐阅读:  我的CSDN 我的博客园 QQ群:704621321 1.在场景中搭建大转盘场景,假设 奖项有n项,对应的每项旋转角度如下: 第...

推荐阅读:

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;

  
 
  • 1

其中,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));
    },

  
 
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12

文章来源: unity3d.blog.csdn.net,作者:爱上游戏开发,版权归原作者所有,如需转载,请联系作者。

原文链接:unity3d.blog.csdn.net/article/details/88639873

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。