Files
Grovewright/game/tests/test_figures.gd
T
Steven Wroblewski d2a7973022 Spielfeld über Art zeichnen
Karte, Figuren und Zielmarke zeichnet jetzt Art. Die Karte zeichnet in
Blöcken von 16 mal 16 Kacheln und nach einem Treffer nur die Blöcke um
die Kachel neu; jede Kachel kennt ihre Nachbarn. Figuren stehen
aufrecht in ihrer Kachel, schreiten und schauen in die Richtung, in die
sie gehen. Der eigene Schlag zeigt seine Splitter sofort, auch als Gast,
und die Namen über fremden Figuren werden in Bildschirmgröße gezeichnet
und bleiben scharf.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-10-02 11:49:18 +02:00

45 lines
1.5 KiB
GDScript

extends TestCase
func test_a_figure_appears_where_it_is_first_placed() -> void:
var figures := Figures.new()
check_eq(figures.shown_at(2), Vector2.INF, "nobody is shown at first")
figures.place(2, Vector2(10.0, 20.0))
check_eq(figures.shown_at(2), Vector2(10.0, 20.0), "at once at its first position")
figures.free()
func test_a_figure_glides_toward_its_latest_position() -> void:
var figures := Figures.new()
figures.place(1, Vector2.ZERO)
figures.place(1, Vector2(100.0, 0.0))
figures._process(0.02)
var halfway := figures.shown_at(1).x
check(halfway > 0.0 and halfway < 100.0, "part of the way after a frame: %s" % halfway)
for frame in 60:
figures._process(0.02)
check(figures.shown_at(1).distance_to(Vector2(100.0, 0.0)) < 0.01, "there after a second")
figures.free()
func test_figures_can_be_forgotten() -> void:
var figures := Figures.new()
figures.place(1, Vector2.ZERO)
figures.place(3, Vector2.ONE)
figures.forget(1)
check_eq(figures.shown_at(1), Vector2.INF, "one is gone")
check_eq(figures.shown_at(3), Vector2.ONE, "the other stays")
figures.clear()
check_eq(figures.shown_at(3), Vector2.INF, "all are gone")
figures.free()
func test_a_figure_faces_the_way_it_glides() -> void:
var figures := Figures.new()
figures.place(1, Vector2(100.0, 0.0))
check_eq(figures.facing_of(1), 1.0, "facing right at first")
figures.place(1, Vector2.ZERO)
figures._process(0.02)
check_eq(figures.facing_of(1), -1.0, "facing left while it glides to the left")
figures.free()