mirror of
https://github.com/godotengine/godot-demo-projects.git
synced 2025-12-16 05:20:06 +01:00
40 lines
891 B
GDScript
40 lines
891 B
GDScript
extends Test
|
|
|
|
|
|
@export var height: int = 10
|
|
@export var width: int = 1
|
|
@export var box_size := Vector2(40.0, 40.0)
|
|
@export var box_spacing := Vector2(0.0, 0.0)
|
|
|
|
|
|
func _ready() -> void:
|
|
_create_stack()
|
|
|
|
|
|
func _create_stack() -> void:
|
|
var root_node := $Stack
|
|
|
|
var template_body := create_rigidbody_box(box_size, true)
|
|
|
|
var pos_y := -0.5 * box_size.y - box_spacing.y
|
|
|
|
for level: int in height:
|
|
var row_node := Node2D.new()
|
|
row_node.position = Vector2(0.0, pos_y)
|
|
row_node.name = "Row%02d" % (level + 1)
|
|
root_node.add_child(row_node)
|
|
|
|
var pos_x := -0.5 * (width - 1) * (box_size.x + box_spacing.x)
|
|
|
|
for box_index in width:
|
|
var box := template_body.duplicate()
|
|
box.position = Vector2(pos_x, 0.0)
|
|
box.name = "Box%02d" % (box_index + 1)
|
|
row_node.add_child(box)
|
|
|
|
pos_x += box_size.x + box_spacing.x
|
|
|
|
pos_y -= box_size.y + box_spacing.y
|
|
|
|
template_body.queue_free()
|