实现抽奖功能
UI拆解
分为装饰性以及功能性UI两种,都是比较容易绘制的
直接截图并对其进行临摹,这里就不展示具体的绘制过程了,下面主要讲解功能性代码的实现
功能实现
大概流程如下:
-
转盘包含8个内容,这种奖励都是固定的,可以直接固定
-
点击开始抽奖按钮
-
播放转盘转动动画
-
使用一个随机函数确定最终奖励位置
-
获得奖励并且提示
extends Node2D
@onready var board: AnimatedSprite2D = $board
var curr_frame = -1
func _ready() -> void:
pass
func _process(delta: float) -> void:
if curr_frame == -1 or not board.is_playing():
return
if board.frame == curr_frame:
print("抽奖完成")
curr_frame = -1
board.pause()
func _on_draw_pressed() -> void:
board.frame = 0
board.play("default")
await get_tree().create_timer(1.5).timeout
curr_frame = randi_range(0, 7)
