Files
vRp.CD2g_test/utils/moving

Moving

Go doc

目录

列出了该 package 下所有的函数,可通过目录进行快捷跳转 ❤️

展开 / 折叠目录

包级函数定义

函数 描述
NewTwoDimensional 创建一个用于2D对象移动的实例(TwoDimensional)
WithTwoDimensionalTimeUnit 通过特定时间单位创建
WithTwoDimensionalIdleWaitTime 通过特定的空闲等待时间创建
WithTwoDimensionalInterval 通过特定的移动间隔时间创建
NewEntity 暂无描述...

结构体定义

结构体 描述
TwoDimensional 用于2D对象移动的数据结构
TwoDimensionalEntity 2D移动对象接口定义
Position2DChangeEventHandle 暂无描述...
TwoDimensionalOption 暂无描述...

func NewTwoDimensional(options ...TwoDimensionalOption[EID, PosType]) *TwoDimensional[EID, PosType]

创建一个用于2D对象移动的实例(TwoDimensional)


func WithTwoDimensionalTimeUnit(duration time.Duration) TwoDimensionalOption[EID, PosType]

通过特定时间单位创建

  • 默认单位为1毫秒最小单位也为1毫秒

func WithTwoDimensionalIdleWaitTime(duration time.Duration) TwoDimensionalOption[EID, PosType]

通过特定的空闲等待时间创建

  • 默认情况下在没有新的移动计划时将限制 100毫秒 + 移动间隔事件(默认100毫秒)

func WithTwoDimensionalInterval(duration time.Duration) TwoDimensionalOption[EID, PosType]

通过特定的移动间隔时间创建


func NewEntity(guid int64, speed float64) *MoveEntity


TwoDimensional

用于2D对象移动的数据结构

  • 通过对象调用 MoveTo 方法后将开始执行该对象的移动
  • 移动将在根据设置的每次移动间隔时间(WithTwoDimensionalInterval)进行移动,当无对象移动需要移动时将会进入短暂的休眠
  • 当对象移动速度永久为0时将会导致永久无法完成的移动
type TwoDimensional[EID generic.Basic, PosType generic.SignedNumber] struct {
	rw                                sync.RWMutex
	entities                          map[EID]*moving2DTarget[EID, PosType]
	timeUnit                          float64
	idle                              time.Duration
	interval                          time.Duration
	close                             bool
	position2DChangeEventHandles      []Position2DChangeEventHandle[EID, PosType]
	position2DDestinationEventHandles []Position2DDestinationEventHandle[EID, PosType]
	position2DStopMoveEventHandles    []Position2DStopMoveEventHandle[EID, PosType]
}

TwoDimensionalEntity

2D移动对象接口定义

type TwoDimensionalEntity[EID generic.Basic, PosType generic.SignedNumber] struct{}

Position2DChangeEventHandle

type Position2DChangeEventHandle[EID generic.Basic, PosType generic.SignedNumber] struct{}

TwoDimensionalOption

type TwoDimensionalOption[EID generic.Basic, PosType generic.SignedNumber] struct{}