【发布时间】:2021-11-14 08:00:47
【问题描述】:
所以我正在尝试在 godot 中制作纸牌游戏,并且我想使用 raycast 将纸牌拖放到游戏板上(刚体)。到目前为止它正在工作,但我的问题是:我怎样才能对齐卡片,这样它们就不会重叠或在游戏板之外产生。我发现我需要使用网格,但我真的不知道它是如何工作的。
我已附上我的代码和我的节点截图:
func place():
var rayOrigin = Vector3()
var rayEnd = Vector3()
var cardbase = preload("res://Cards/CardBase.tscn")
var card = preload("res://Cards/3dcard.tscn")
var cardscript = preload("res://Cards/3dcard.gd")
var camera = get_tree().get_root().find_node("Camera", true, false)
if Input.is_action_just_released("leftclick") && cardinhand == 1 :
var space_state = get_world().direct_space_state
var mouse_position = get_viewport().get_mouse_position()
rayOrigin = camera.project_ray_origin(mouse_position)
rayEnd = rayOrigin + camera.project_ray_normal(mouse_position) * 2000000000
var intersection = space_state.intersect_ray(rayOrigin, rayEnd)
if not intersection.empty():
board = 1
var addcard = card.instance()
addcard.Cardname = cardnm
add_child(addcard)
addcard.translation = Vector3(intersection.position.x*1.01,intersection.position.y,intersection.position.z)
cardinhand = 0
【问题讨论】: