refactor: 将 moving、aoi、leaderboard 包从 game 包中移动至 utils 包
This commit is contained in:
parent
4ce6043c72
commit
f26feb8bcd
|
@ -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
|
|
||||||
}
|
|
|
@ -2,7 +2,7 @@ package aoi_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/kercylan98/minotaur/game/aoi"
|
"github.com/kercylan98/minotaur/utils/aoi"
|
||||||
"github.com/kercylan98/minotaur/utils/geometry"
|
"github.com/kercylan98/minotaur/utils/geometry"
|
||||||
"github.com/kercylan98/minotaur/utils/random"
|
"github.com/kercylan98/minotaur/utils/random"
|
||||||
"testing"
|
"testing"
|
|
@ -2,11 +2,11 @@ package leaderboard_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/kercylan98/minotaur/game/leaderboard"
|
leaderboard2 "github.com/kercylan98/minotaur/utils/leaderboard"
|
||||||
)
|
)
|
||||||
|
|
||||||
func ExampleNewBinarySearch() {
|
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)
|
fmt.Println(bs != nil)
|
||||||
// Output:
|
// Output:
|
||||||
|
@ -14,7 +14,7 @@ func ExampleNewBinarySearch() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func ExampleBinarySearch_Competitor() {
|
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}
|
scores := []int{6131, 132, 5133, 134, 135, 136, 137, 138, 139, 140, 222, 333, 444, 555, 666}
|
||||||
for i := 1; i <= 15; i++ {
|
for i := 1; i <= 15; i++ {
|
||||||
|
@ -39,7 +39,7 @@ func ExampleBinarySearch_Competitor() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func ExampleBinarySearch_RemoveCompetitor() {
|
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}
|
scores := []int{6131, 132, 5133, 134, 135, 136, 137, 138, 139, 140, 222, 333, 444, 555, 666}
|
||||||
for i := 1; i <= 15; i++ {
|
for i := 1; i <= 15; i++ {
|
||||||
|
@ -63,7 +63,7 @@ func ExampleBinarySearch_RemoveCompetitor() {
|
||||||
}
|
}
|
||||||
|
|
||||||
func ExampleBinarySearch_GetRank() {
|
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}
|
scores := []int{6131, 132, 5133, 134, 135, 136, 137, 138, 139, 140, 222, 333, 444, 555, 666}
|
||||||
for i := 1; i <= 15; i++ {
|
for i := 1; i <= 15; i++ {
|
|
@ -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
|
||||||
|
}
|
|
@ -2,8 +2,8 @@ package moving_test
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
"github.com/kercylan98/minotaur/game/moving"
|
|
||||||
"github.com/kercylan98/minotaur/utils/geometry"
|
"github.com/kercylan98/minotaur/utils/geometry"
|
||||||
|
moving2 "github.com/kercylan98/minotaur/utils/moving"
|
||||||
"sync"
|
"sync"
|
||||||
"testing"
|
"testing"
|
||||||
"time"
|
"time"
|
||||||
|
@ -39,7 +39,7 @@ func NewEntity(guid int64, speed float64) *MoveEntity {
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestNewTwoDimensional(t *testing.T) {
|
func TestNewTwoDimensional(t *testing.T) {
|
||||||
m := moving.NewTwoDimensional[int64, float64]()
|
m := moving2.NewTwoDimensional[int64, float64]()
|
||||||
defer func() {
|
defer func() {
|
||||||
m.Release()
|
m.Release()
|
||||||
}()
|
}()
|
||||||
|
@ -48,20 +48,20 @@ func TestNewTwoDimensional(t *testing.T) {
|
||||||
func TestTwoDimensional_StopMove(t *testing.T) {
|
func TestTwoDimensional_StopMove(t *testing.T) {
|
||||||
var wait sync.WaitGroup
|
var wait sync.WaitGroup
|
||||||
|
|
||||||
m := moving.NewTwoDimensional(moving.WithTwoDimensionalTimeUnit[int64, float64](time.Second))
|
m := moving2.NewTwoDimensional(moving2.WithTwoDimensionalTimeUnit[int64, float64](time.Second))
|
||||||
defer func() {
|
defer func() {
|
||||||
m.Release()
|
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()
|
x, y := entity.GetPosition().GetXY()
|
||||||
fmt.Println(fmt.Sprintf("%d : %d | %f, %f > %f, %f", entity.GetTwoDimensionalEntityID(), time.Now().UnixMilli(), oldX, oldY, x, y))
|
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()))
|
fmt.Println(fmt.Sprintf("%d : %d | destination", entity.GetTwoDimensionalEntityID(), time.Now().UnixMilli()))
|
||||||
wait.Done()
|
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()))
|
fmt.Println(fmt.Sprintf("%d : %d | stop", entity.GetTwoDimensionalEntityID(), time.Now().UnixMilli()))
|
||||||
wait.Done()
|
wait.Done()
|
||||||
})
|
})
|
Loading…
Reference in New Issue