【100个Cocos实例】看完这个,我再也不要当赌狗了...

在这里插入图片描述

引言

探索游戏开发中抽奖转盘的奥秘。

抽奖转盘是一种常见的互动元素,通常用于游戏、营销活动等场景。

本文将介绍一下抽奖转盘原理实现

本文源工程可在文末阅读原文获取,小伙伴们自行前往。

1.抽奖转盘的组成

看看你想要哪个

抽奖转盘的实现涉及多个组成部分,以下是一般抽奖转盘的主要组成:

  1. 转盘界面: 转盘通常是一个圆形或扇形的图形,分为多个奖项区域。
  2. 奖项定义: 定义转盘上的各个奖项,每个奖项包含奖品名称、图标等信息。
  3. 随机数生成器: 抽奖的核心是生成一个随机数,该随机数用于确定用户最终停留在转盘上的位置。
  4. 角度计算: 根据生成的随机数,计算用户最终停留的角度。这涉及将随机数映射到转盘上的角度范围。
  5. 旋转动画: 实现转盘旋转的动画效果,使其在一段时间内以一定的速度旋转。

下面一起来看看抽奖转盘的原理。

2.抽奖转盘的原理

首先我们来看一下抽奖的流程图:

大道从简

其中核心一是后端的抽奖核心算法

概率并不是我们直观看到的均等的1/8(相信大家都是知道的,但是明知山有虎,偏向虎山行)。

事实上会根据不同的奖品设定不同的权重,便宜的物品权重极高(接近90%),贵重的物品权重极低(少于1%,甚至为0)。

从下图可以看到,288金币的权重为33005000金币的权重为200,总权重为10000。所以288金币的概率为33%5000金币的概率为2%

权重虽低,信念要有

核心二则是角度的计算

旋转的角度=当前转盘的角度-当前转盘的角度%360 - 360 / 8 * i - 1080

其中

  • -当前转盘的角度%360是为了让转盘复位,可以从当前旋转继续旋转。
  • -360 / 8 * i则是转盘应该旋转到的角度。
  • -1080 则是为了转盘效果让转盘多转3圈。

套公式即可

下面一起来实现一个抽奖转盘。

3.抽奖转盘的实现

1.环境

引擎版本:Cocos Creator 3.8.1

编程语言:TypeScript

2.资源准备

首先根据抽奖转盘的组成,准备一些图片,其中包括:

  • 一个8等分的转盘。
  • 一个指针。
  • 一些奖励的图片(金币和钻石)。

精美素材

然后简单编辑一下UI界面。

拼UI专业户

其中要注意的是如果图片的中心不是转盘的中心,需要稍微调整一下锚点,否者转起来奇奇怪怪

不忘初心

其次是奖励的子项,可以只拼一个,但是中心也要移动到转盘中心,然后通过克隆和旋转生成其他的。

能用代码别动手

3.编写代码

首先创建一个Turntable组件。

import {
    _decorator, Component, find, Input, input, instantiate, KeyCode, Label, Node, Sprite, SpriteFrame, tween } from 'cc';
const {
    ccclass, property } = _decorator;

type ItemNode = {
    icon: Sprite, count: Label 
  • 11
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

亿元程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值