diff --git a/game/builtin/moving2d.go b/component/components/moving2d.go similarity index 83% rename from game/builtin/moving2d.go rename to component/components/moving2d.go index f8b0989..03181cd 100644 --- a/game/builtin/moving2d.go +++ b/component/components/moving2d.go @@ -1,7 +1,7 @@ -package builtin +package components import ( - "github.com/kercylan98/minotaur/game" + "github.com/kercylan98/minotaur/component" "github.com/kercylan98/minotaur/utils/g2d" "sync" "time" @@ -35,12 +35,12 @@ type Moving2D struct { event chan func() close bool - position2DChangeEventHandles []game.Position2DChangeEventHandle - position2DDestinationEventHandles []game.Position2DDestinationEventHandle + position2DChangeEventHandles []component.Position2DChangeEventHandle + position2DDestinationEventHandles []component.Position2DDestinationEventHandle } // MoveTo 设置对象移动到特定位置 -func (slf *Moving2D) MoveTo(entity game.Moving2DEntity, x float64, y float64) { +func (slf *Moving2D) MoveTo(entity component.Moving2DEntity, x float64, y float64) { guid := entity.GetGuid() current := time.Now().UnixMilli() slf.rw.Lock() @@ -72,29 +72,29 @@ func (slf *Moving2D) StopMove(guid int64) { } // RegPosition2DChangeEvent 在对象位置改变时将执行注册的事件处理函数 -func (slf *Moving2D) RegPosition2DChangeEvent(handle game.Position2DChangeEventHandle) { +func (slf *Moving2D) RegPosition2DChangeEvent(handle component.Position2DChangeEventHandle) { slf.position2DChangeEventHandles = append(slf.position2DChangeEventHandles, handle) } -func (slf *Moving2D) OnPosition2DChangeEvent(entity game.Moving2DEntity, oldX, oldY float64) { +func (slf *Moving2D) OnPosition2DChangeEvent(entity component.Moving2DEntity, oldX, oldY float64) { for _, handle := range slf.position2DChangeEventHandles { handle(slf, entity, oldX, oldY) } } // RegPosition2DDestinationEvent 在对象到达终点时将执行被注册的事件处理函数 -func (slf *Moving2D) RegPosition2DDestinationEvent(handle game.Position2DDestinationEventHandle) { +func (slf *Moving2D) RegPosition2DDestinationEvent(handle component.Position2DDestinationEventHandle) { slf.position2DDestinationEventHandles = append(slf.position2DDestinationEventHandles, handle) } -func (slf *Moving2D) OnPosition2DDestinationEvent(entity game.Moving2DEntity) { +func (slf *Moving2D) OnPosition2DDestinationEvent(entity component.Moving2DEntity) { for _, handle := range slf.position2DDestinationEventHandles { handle(slf, entity) } } type moving2DTarget struct { - game.Moving2DEntity + component.Moving2DEntity x, y float64 lastMoveTime int64 } diff --git a/game/builtin/moving2d_options.go b/component/components/moving2d_options.go similarity index 98% rename from game/builtin/moving2d_options.go rename to component/components/moving2d_options.go index 85a99c4..f7ac6d8 100644 --- a/game/builtin/moving2d_options.go +++ b/component/components/moving2d_options.go @@ -1,4 +1,4 @@ -package builtin +package components import ( "errors" diff --git a/game/builtin/moving2d_test.go b/component/components/moving2d_test.go similarity index 81% rename from game/builtin/moving2d_test.go rename to component/components/moving2d_test.go index 2f96608..a9794fa 100644 --- a/game/builtin/moving2d_test.go +++ b/component/components/moving2d_test.go @@ -1,8 +1,8 @@ -package builtin +package components import ( "fmt" - "github.com/kercylan98/minotaur/game" + "github.com/kercylan98/minotaur/component" "sync" "testing" "time" @@ -43,11 +43,11 @@ func NewEntity(guid int64, speed float64) *MoveEntity { func TestMoving2D_MoveTo(t *testing.T) { moving := NewMoving2D(WithMoving2DTimeUnit(time.Second)) var wait sync.WaitGroup - moving.RegPosition2DDestinationEvent(func(moving game.Moving2D, entity game.Moving2DEntity) { + moving.RegPosition2DDestinationEvent(func(moving component.Moving2D, entity component.Moving2DEntity) { wait.Done() }) var res []string - moving.RegPosition2DChangeEvent(func(moving game.Moving2D, entity game.Moving2DEntity, oldX, oldY float64) { + 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)) }) diff --git a/game/moving2d.go b/component/moving2d.go similarity index 97% rename from game/moving2d.go rename to component/moving2d.go index 6b00ea8..6a6fb9c 100644 --- a/game/moving2d.go +++ b/component/moving2d.go @@ -1,4 +1,4 @@ -package game +package component // Moving2D 2D移动功能接口定义 type Moving2D interface { diff --git a/game/moving2d_entity.go b/component/moving2d_entity.go similarity index 54% rename from game/moving2d_entity.go rename to component/moving2d_entity.go index 3fda877..9b761ef 100644 --- a/game/moving2d_entity.go +++ b/component/moving2d_entity.go @@ -1,10 +1,12 @@ -package game +package component + +import "github.com/kercylan98/minotaur/game" // Moving2DEntity 2D移动对象接口定义 type Moving2DEntity interface { - Actor - Position2D - Position2DSet + game.Actor + game.Position2D + game.Position2DSet // GetSpeed 获取移动速度 GetSpeed() float64