challenge-editor/scene/card_state_machine/card_machine.gd

45 lines
1.1 KiB
GDScript3
Raw Normal View History

2024-09-24 17:26:44 +08:00
extends Control
class_name CardMachine
const CARD = preload("res://scene/card.tscn")
2024-09-25 11:52:36 +08:00
var rand_release:float=20
@export var release_card_pos:Control
2024-09-24 17:26:44 +08:00
var distance:float=100
var card_arr:Array[Card]=[]
2024-09-25 11:52:36 +08:00
var queue_card:Array[Card]=[]
2024-09-24 17:26:44 +08:00
func get_index_position(index:int)->Vector2:
var center=size/2
var left=center-Vector2(distance*card_arr.size()/2,0)
var rand_y=randf_range(-10,10)
return left+Vector2(distance*index,rand_y)
func _ready() -> void:
add_card("xxx",4)
func get_put_pos():
return size/2
func add_card(card_id:String,num:int):
for i in num:
2024-09-25 11:52:36 +08:00
var new_card=CARD.instantiate() as Card
2024-09-24 17:26:44 +08:00
add_child(new_card)
2024-09-25 11:52:36 +08:00
new_card.set_data(card_id)
2024-09-24 17:26:44 +08:00
card_arr.append(new_card)
for j in card_arr:
j.request_resize()
2024-09-25 11:52:36 +08:00
2024-09-24 17:26:44 +08:00
pass
2024-09-25 11:52:36 +08:00
#获取释放位置
func get_release_pos()->Vector2:
var pos:Vector2
if release_card_pos!=null:
pos=release_card_pos.position
else:
pos=Vector2.ZERO
var rand:Vector2=Vector2(randf_range(-rand_release,rand_release),randf_range(-rand_release,rand_release))
return pos+rand
func add_to_queue(card:Card):
if queue_card.size()==0:
queue_card.append(card)
card.send("your_turn")