最終更新 1734057676

修正履歴 296a2588ad5939853c18efd77139f8859035fbcf

tabulacrum_test.gd Raw Playground
1extends Node2D
2var world = Tabulacrum.new()
3
4@onready var window_title = get_window().title
5func _ready() -> void:
6 for _i in range(1000):
7 world.conjure_entity() \
8 .it_is_a(["circle"]) \
9 .give_it(
10 { position = Vector2(randi_range(100, 500), randi_range(100, 500))
11 , speed = randf_range(0, 5)
12 , time = randf() * 2 * PI
13 , size = randf_range(2,5)
14 }
15 ) \
16 .seal()
17
18func _draw() -> void:
19
20 for id in world.grab_tome("circle"):
21 var entity = world.summon_entity(id)
22 var orbit = Vector2 \
23 ( cos(entity.time) * 10 + entity.position.x
24 , sin(entity.time) * 10 + entity.position.y
25 )
26 draw_circle(orbit, entity.size, Color.WHITE)
27
28func _process(delta: float) -> void:
29 for id in world.grab_tome("time"):
30 var entity = world.summon_entity(id)
31 entity.time += delta * entity.speed
32 get_window().title = "%s - %s fps" % [window_title, Engine.get_frames_per_second()]
33 queue_redraw()
34