Topic was automatically imported from the old Question2Answer platform.
Asked By
Dmitriy
Я создал объект Node, в него пометил 3 объекта. Мне надо их переместить на рандомные x z координаты в диапазоне от 0 до 10, и сделать это из скрипта объекта Node.
я новичок в Godot
так что может мой код и не шибко оптимальный)
┖╴Node2D (Script)
┠╴Image001
┠╴Image002
┖╴Image003
extends Node2D
func _ready():
sprite_pos("Image001", randomize_position())
sprite_pos("Image002", randomize_position())
sprite_pos("Image003", randomize_position())
func sprite_pos(name,rand_pos):
var getnode = get_node(name)
getnode.position = rand_pos
func randomize_position():
randomize()
var x = rand_range(-100,100)
var y = rand_range(-100,100)
var vec = Vector2(x,y)
return vec
Поскольку вы сказали x z, я предполагаю, что вы имели в виду трехмерный пространственный узел
Script.gd
extends Spatial
func _ready():
randomize() #генератор случайных чисел
print_tree_pretty()
func _process(delta):
var x = randi() % 10 + 1 #генерировать случайное число от 1 до 10
var z = randi() % 10 + 1
#перемещает 3D Node с именем Sphere
$Sphere.global_transform.origin.x = x #Знак $ ссылается на дочерний узел
$Sphere.global_transform.origin.z = z
#перемещает 2D Node имена Cube
$Cube.rect_position.x = x
$Cube.rect_position.y = z
В будущем постарайтесь быть более конкретным, так как существует много типов Node, и простая фраза «Node» делает ваш вопрос расплывчатым и безответным.