From f26feb8bcdc4bc0c75481388dea7182091abdc14 Mon Sep 17 00:00:00 2001 From: kercylan98 Date: Fri, 22 Dec 2023 11:08:54 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E5=B0=86=20moving=E3=80=81aoi?= =?UTF-8?q?=E3=80=81leaderboard=20=E5=8C=85=E4=BB=8E=20game=20=E5=8C=85?= =?UTF-8?q?=E4=B8=AD=E7=A7=BB=E5=8A=A8=E8=87=B3=20utils=20=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- game/moving/2d_example_test.go | 71 ------------------- {game => utils}/aoi/2d.go | 0 {game => utils}/aoi/2d_entity.go | 0 {game => utils}/aoi/2d_events.go | 0 {game => utils}/aoi/2d_test.go | 2 +- {game => utils}/leaderboard/binary_search.go | 0 .../leaderboard/binary_search_events.go | 0 .../leaderboard/binary_search_example_test.go | 10 +-- .../leaderboard/binary_search_options.go | 0 {game => utils}/leaderboard/errors.go | 0 {game => utils}/moving/2d.go | 0 {game => utils}/moving/2d_entity.go | 0 {game => utils}/moving/2d_events.go | 0 utils/moving/2d_example_test.go | 71 +++++++++++++++++++ {game => utils}/moving/2d_options.go | 0 {game => utils}/moving/2d_test.go | 12 ++-- 16 files changed, 83 insertions(+), 83 deletions(-) delete mode 100644 game/moving/2d_example_test.go rename {game => utils}/aoi/2d.go (100%) rename {game => utils}/aoi/2d_entity.go (100%) rename {game => utils}/aoi/2d_events.go (100%) rename {game => utils}/aoi/2d_test.go (96%) rename {game => utils}/leaderboard/binary_search.go (100%) rename {game => utils}/leaderboard/binary_search_events.go (100%) rename {game => utils}/leaderboard/binary_search_example_test.go (76%) rename {game => utils}/leaderboard/binary_search_options.go (100%) rename {game => utils}/leaderboard/errors.go (100%) rename {game => utils}/moving/2d.go (100%) rename {game => utils}/moving/2d_entity.go (100%) rename {game => utils}/moving/2d_events.go (100%) create mode 100644 utils/moving/2d_example_test.go rename {game => utils}/moving/2d_options.go (100%) rename {game => utils}/moving/2d_test.go (69%) diff --git a/game/moving/2d_example_test.go b/game/moving/2d_example_test.go deleted file mode 100644 index a7e632e..0000000 --- a/game/moving/2d_example_test.go +++ /dev/null @@ -1,71 +0,0 @@ -package moving_test - -import ( - "fmt" - "github.com/kercylan98/minotaur/game/moving" - "sync" - "time" -) - -func ExampleNewTwoDimensional() { - m := moving.NewTwoDimensional[int64, float64]() - defer func() { - m.Release() - }() - fmt.Println(m != nil) - - // Output: - // true -} - -func ExampleTwoDimensional_MoveTo() { - m := moving.NewTwoDimensional(moving.WithTwoDimensionalTimeUnit[int64, float64](time.Second)) - defer func() { - m.Release() - }() - - var wait sync.WaitGroup - m.RegPosition2DDestinationEvent(func(moving *moving.TwoDimensional[int64, float64], entity moving.TwoDimensionalEntity[int64, float64]) { - fmt.Println("done") - wait.Done() - }) - - wait.Add(1) - entity := NewEntity(1, 100) - m.MoveTo(entity, 50, 30) - - wait.Wait() - - // Output: - // done -} - -func ExampleTwoDimensional_StopMove() { - m := moving.NewTwoDimensional(moving.WithTwoDimensionalTimeUnit[int64, float64](time.Second)) - defer func() { - m.Release() - }() - - var wait sync.WaitGroup - m.RegPosition2DChangeEvent(func(moving *moving.TwoDimensional[int64, float64], entity moving.TwoDimensionalEntity[int64, float64], oldX, oldY float64) { - fmt.Println("move") - }) - m.RegPosition2DStopMoveEvent(func(moving *moving.TwoDimensional[int64, float64], entity moving.TwoDimensionalEntity[int64, float64]) { - fmt.Println("stop") - wait.Done() - }) - m.RegPosition2DDestinationEvent(func(moving *moving.TwoDimensional[int64, float64], entity moving.TwoDimensionalEntity[int64, float64]) { - fmt.Println("done") - wait.Done() - }) - - wait.Add(1) - entity := NewEntity(1, 100) - m.MoveTo(entity, 50, 300) - m.StopMove(1) - - wait.Wait() - - // Output: - // stop -} diff --git a/game/aoi/2d.go b/utils/aoi/2d.go similarity index 100% rename from game/aoi/2d.go rename to utils/aoi/2d.go diff --git a/game/aoi/2d_entity.go b/utils/aoi/2d_entity.go similarity index 100% rename from game/aoi/2d_entity.go rename to utils/aoi/2d_entity.go diff --git a/game/aoi/2d_events.go b/utils/aoi/2d_events.go similarity index 100% rename from game/aoi/2d_events.go rename to utils/aoi/2d_events.go diff --git a/game/aoi/2d_test.go b/utils/aoi/2d_test.go similarity index 96% rename from game/aoi/2d_test.go rename to utils/aoi/2d_test.go index 2ea6557..44f4a5a 100644 --- a/game/aoi/2d_test.go +++ b/utils/aoi/2d_test.go @@ -2,7 +2,7 @@ package aoi_test import ( "fmt" - "github.com/kercylan98/minotaur/game/aoi" + "github.com/kercylan98/minotaur/utils/aoi" "github.com/kercylan98/minotaur/utils/geometry" "github.com/kercylan98/minotaur/utils/random" "testing" diff --git a/game/leaderboard/binary_search.go b/utils/leaderboard/binary_search.go similarity index 100% rename from game/leaderboard/binary_search.go rename to utils/leaderboard/binary_search.go diff --git a/game/leaderboard/binary_search_events.go b/utils/leaderboard/binary_search_events.go similarity index 100% rename from game/leaderboard/binary_search_events.go rename to utils/leaderboard/binary_search_events.go diff --git a/game/leaderboard/binary_search_example_test.go b/utils/leaderboard/binary_search_example_test.go similarity index 76% rename from game/leaderboard/binary_search_example_test.go rename to utils/leaderboard/binary_search_example_test.go index df8c0be..1ea7d7f 100644 --- a/game/leaderboard/binary_search_example_test.go +++ b/utils/leaderboard/binary_search_example_test.go @@ -2,11 +2,11 @@ package leaderboard_test import ( "fmt" - "github.com/kercylan98/minotaur/game/leaderboard" + leaderboard2 "github.com/kercylan98/minotaur/utils/leaderboard" ) func ExampleNewBinarySearch() { - bs := leaderboard.NewBinarySearch[string, int](leaderboard.WithBinarySearchCount[string, int](10)) + bs := leaderboard2.NewBinarySearch[string, int](leaderboard2.WithBinarySearchCount[string, int](10)) fmt.Println(bs != nil) // Output: @@ -14,7 +14,7 @@ func ExampleNewBinarySearch() { } func ExampleBinarySearch_Competitor() { - bs := leaderboard.NewBinarySearch[string, int](leaderboard.WithBinarySearchCount[string, int](10)) + bs := leaderboard2.NewBinarySearch[string, int](leaderboard2.WithBinarySearchCount[string, int](10)) scores := []int{6131, 132, 5133, 134, 135, 136, 137, 138, 139, 140, 222, 333, 444, 555, 666} for i := 1; i <= 15; i++ { @@ -39,7 +39,7 @@ func ExampleBinarySearch_Competitor() { } func ExampleBinarySearch_RemoveCompetitor() { - bs := leaderboard.NewBinarySearch[string, int](leaderboard.WithBinarySearchCount[string, int](10)) + bs := leaderboard2.NewBinarySearch[string, int](leaderboard2.WithBinarySearchCount[string, int](10)) scores := []int{6131, 132, 5133, 134, 135, 136, 137, 138, 139, 140, 222, 333, 444, 555, 666} for i := 1; i <= 15; i++ { @@ -63,7 +63,7 @@ func ExampleBinarySearch_RemoveCompetitor() { } func ExampleBinarySearch_GetRank() { - bs := leaderboard.NewBinarySearch[string, int](leaderboard.WithBinarySearchCount[string, int](10)) + bs := leaderboard2.NewBinarySearch[string, int](leaderboard2.WithBinarySearchCount[string, int](10)) scores := []int{6131, 132, 5133, 134, 135, 136, 137, 138, 139, 140, 222, 333, 444, 555, 666} for i := 1; i <= 15; i++ { diff --git a/game/leaderboard/binary_search_options.go b/utils/leaderboard/binary_search_options.go similarity index 100% rename from game/leaderboard/binary_search_options.go rename to utils/leaderboard/binary_search_options.go diff --git a/game/leaderboard/errors.go b/utils/leaderboard/errors.go similarity index 100% rename from game/leaderboard/errors.go rename to utils/leaderboard/errors.go diff --git a/game/moving/2d.go b/utils/moving/2d.go similarity index 100% rename from game/moving/2d.go rename to utils/moving/2d.go diff --git a/game/moving/2d_entity.go b/utils/moving/2d_entity.go similarity index 100% rename from game/moving/2d_entity.go rename to utils/moving/2d_entity.go diff --git a/game/moving/2d_events.go b/utils/moving/2d_events.go similarity index 100% rename from game/moving/2d_events.go rename to utils/moving/2d_events.go diff --git a/utils/moving/2d_example_test.go b/utils/moving/2d_example_test.go new file mode 100644 index 0000000..f8f79f9 --- /dev/null +++ b/utils/moving/2d_example_test.go @@ -0,0 +1,71 @@ +package moving_test + +import ( + "fmt" + moving2 "github.com/kercylan98/minotaur/utils/moving" + "sync" + "time" +) + +func ExampleNewTwoDimensional() { + m := moving2.NewTwoDimensional[int64, float64]() + defer func() { + m.Release() + }() + fmt.Println(m != nil) + + // Output: + // true +} + +func ExampleTwoDimensional_MoveTo() { + m := moving2.NewTwoDimensional(moving2.WithTwoDimensionalTimeUnit[int64, float64](time.Second)) + defer func() { + m.Release() + }() + + var wait sync.WaitGroup + m.RegPosition2DDestinationEvent(func(moving *moving2.TwoDimensional[int64, float64], entity moving2.TwoDimensionalEntity[int64, float64]) { + fmt.Println("done") + wait.Done() + }) + + wait.Add(1) + entity := NewEntity(1, 100) + m.MoveTo(entity, 50, 30) + + wait.Wait() + + // Output: + // done +} + +func ExampleTwoDimensional_StopMove() { + m := moving2.NewTwoDimensional(moving2.WithTwoDimensionalTimeUnit[int64, float64](time.Second)) + defer func() { + m.Release() + }() + + var wait sync.WaitGroup + m.RegPosition2DChangeEvent(func(moving *moving2.TwoDimensional[int64, float64], entity moving2.TwoDimensionalEntity[int64, float64], oldX, oldY float64) { + fmt.Println("move") + }) + m.RegPosition2DStopMoveEvent(func(moving *moving2.TwoDimensional[int64, float64], entity moving2.TwoDimensionalEntity[int64, float64]) { + fmt.Println("stop") + wait.Done() + }) + m.RegPosition2DDestinationEvent(func(moving *moving2.TwoDimensional[int64, float64], entity moving2.TwoDimensionalEntity[int64, float64]) { + fmt.Println("done") + wait.Done() + }) + + wait.Add(1) + entity := NewEntity(1, 100) + m.MoveTo(entity, 50, 300) + m.StopMove(1) + + wait.Wait() + + // Output: + // stop +} diff --git a/game/moving/2d_options.go b/utils/moving/2d_options.go similarity index 100% rename from game/moving/2d_options.go rename to utils/moving/2d_options.go diff --git a/game/moving/2d_test.go b/utils/moving/2d_test.go similarity index 69% rename from game/moving/2d_test.go rename to utils/moving/2d_test.go index 0efa981..9902f40 100644 --- a/game/moving/2d_test.go +++ b/utils/moving/2d_test.go @@ -2,8 +2,8 @@ package moving_test import ( "fmt" - "github.com/kercylan98/minotaur/game/moving" "github.com/kercylan98/minotaur/utils/geometry" + moving2 "github.com/kercylan98/minotaur/utils/moving" "sync" "testing" "time" @@ -39,7 +39,7 @@ func NewEntity(guid int64, speed float64) *MoveEntity { } func TestNewTwoDimensional(t *testing.T) { - m := moving.NewTwoDimensional[int64, float64]() + m := moving2.NewTwoDimensional[int64, float64]() defer func() { m.Release() }() @@ -48,20 +48,20 @@ func TestNewTwoDimensional(t *testing.T) { func TestTwoDimensional_StopMove(t *testing.T) { var wait sync.WaitGroup - m := moving.NewTwoDimensional(moving.WithTwoDimensionalTimeUnit[int64, float64](time.Second)) + m := moving2.NewTwoDimensional(moving2.WithTwoDimensionalTimeUnit[int64, float64](time.Second)) defer func() { m.Release() }() - m.RegPosition2DChangeEvent(func(moving *moving.TwoDimensional[int64, float64], entity moving.TwoDimensionalEntity[int64, float64], oldX, oldY float64) { + m.RegPosition2DChangeEvent(func(moving *moving2.TwoDimensional[int64, float64], entity moving2.TwoDimensionalEntity[int64, float64], oldX, oldY float64) { x, y := entity.GetPosition().GetXY() fmt.Println(fmt.Sprintf("%d : %d | %f, %f > %f, %f", entity.GetTwoDimensionalEntityID(), time.Now().UnixMilli(), oldX, oldY, x, y)) }) - m.RegPosition2DDestinationEvent(func(moving *moving.TwoDimensional[int64, float64], entity moving.TwoDimensionalEntity[int64, float64]) { + m.RegPosition2DDestinationEvent(func(moving *moving2.TwoDimensional[int64, float64], entity moving2.TwoDimensionalEntity[int64, float64]) { fmt.Println(fmt.Sprintf("%d : %d | destination", entity.GetTwoDimensionalEntityID(), time.Now().UnixMilli())) wait.Done() }) - m.RegPosition2DStopMoveEvent(func(moving *moving.TwoDimensional[int64, float64], entity moving.TwoDimensionalEntity[int64, float64]) { + m.RegPosition2DStopMoveEvent(func(moving *moving2.TwoDimensional[int64, float64], entity moving2.TwoDimensionalEntity[int64, float64]) { fmt.Println(fmt.Sprintf("%d : %d | stop", entity.GetTwoDimensionalEntityID(), time.Now().UnixMilli())) wait.Done() })