From 49bc143a72bce85e84e717894c0dfd693a945691 Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Sat, 1 Jul 2023 11:17:49 +0800 Subject: [PATCH] =?UTF-8?q?test:=20components.Moving2D=20=E6=B5=8B?= =?UTF-8?q?=E8=AF=95=E7=94=A8=E4=BE=8B=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- component/components/moving2d_test.go | 65 ++++++++++++++++++++------- 1 file changed, 50 insertions(+), 15 deletions(-) diff --git a/component/components/moving2d_test.go b/component/components/moving2d_test.go index a9794fa..300aa5e 100644 --- a/component/components/moving2d_test.go +++ b/component/components/moving2d_test.go @@ -1,8 +1,9 @@ -package components +package components_test import ( "fmt" "github.com/kercylan98/minotaur/component" + "github.com/kercylan98/minotaur/component/components" "sync" "testing" "time" @@ -41,28 +42,62 @@ func NewEntity(guid int64, speed float64) *MoveEntity { } func TestMoving2D_MoveTo(t *testing.T) { - moving := NewMoving2D(WithMoving2DTimeUnit(time.Second)) var wait sync.WaitGroup + + moving := components.NewMoving2D(components.WithMoving2DTimeUnit(time.Second)) + defer func() { + moving.Release() + }() + + moving.RegPosition2DChangeEvent(func(moving component.Moving2D, entity component.Moving2DEntity, oldX, oldY float64) { + x, y := entity.GetPosition() + fmt.Println(fmt.Sprintf("%d : %d | %f, %f > %f, %f", entity.GetGuid(), time.Now().UnixMilli(), oldX, oldY, x, y)) + }) moving.RegPosition2DDestinationEvent(func(moving component.Moving2D, entity component.Moving2DEntity) { wait.Done() }) - var res []string - moving.RegPosition2DChangeEvent(func(moving component.Moving2D, entity component.Moving2DEntity, oldX, oldY float64) { - x, y := entity.GetPosition() - res = append(res, fmt.Sprintf("%d : %d | %f, %f > %f, %f", entity.GetGuid(), time.Now().UnixMilli(), oldX, oldY, x, y)) - }) - //moving.RegPosition2DChangeEvent(func(moving game.Moving2D, entity game.Moving2DEntity, oldX, oldY float64) { - // x, y := entity.GetPosition() - // fmt.Println("Moving", entity.GetGuid(), oldX, oldY, x, y) - //}) - for i := 0; i < 1; i++ { + + for i := 0; i < 10; i++ { wait.Add(1) entity := NewEntity(int64(i)+1, float64(10+i)) moving.MoveTo(entity, 50, 30) } wait.Wait() - for _, re := range res { - fmt.Println(re) - } +} + +func TestMoving2D_StopMove(t *testing.T) { + var wait sync.WaitGroup + + moving := components.NewMoving2D(components.WithMoving2DTimeUnit(time.Second)) + defer func() { + moving.Release() + }() + + moving.RegPosition2DChangeEvent(func(moving component.Moving2D, entity component.Moving2DEntity, oldX, oldY float64) { + x, y := entity.GetPosition() + fmt.Println(fmt.Sprintf("%d : %d | %f, %f > %f, %f", entity.GetGuid(), time.Now().UnixMilli(), oldX, oldY, x, y)) + }) + moving.RegPosition2DDestinationEvent(func(moving component.Moving2D, entity component.Moving2DEntity) { + fmt.Println(fmt.Sprintf("%d : %d | destination", entity.GetGuid(), time.Now().UnixMilli())) + wait.Done() + }) + moving.RegPosition2DStopMoveEvent(func(moving component.Moving2D, entity component.Moving2DEntity) { + fmt.Println(fmt.Sprintf("%d : %d | stop", entity.GetGuid(), time.Now().UnixMilli())) + wait.Done() + }) + + for i := 0; i < 10; i++ { + wait.Add(1) + entity := NewEntity(int64(i)+1, float64(10+i)) + moving.MoveTo(entity, 50, 30) + } + + time.Sleep(time.Second * 1) + + for i := 0; i < 10; i++ { + moving.StopMove(int64(i) + 1) + } + + wait.Wait() }