collisions

package
v0.0.0-...-54eea7a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 11, 2020 License: MIT Imports: 20 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var GeoDataMapsCache = createCacheStore()

тут хранятся просчитанные шаблоны координат, что бы не проверять координаты при каждом поиске пути mapID, bodyID, scale, x, y

Functions

func BetweenLine

func BetweenLine(startX, startY, ToX, ToY float64, mp *_map.Map, body *detail.Body, startMove bool, size int) (
	entryPoints, collisionPoints, outPoints []*coordinate.Coordinate, collision, endIsObstacle bool)

возвращает xКолизии, yКолизии, хВыхода из колизии, yВыхода из колизии прошли без столкновений

func BodyCheckCollisionBoxes

func BodyCheckCollisionBoxes(moveUnit *unit.Unit, body *detail.Body, path *unit.PathUnit) (*boxInMap.Box, int, int, int)

func BodyCheckCollisionsOnStaticMap

func BodyCheckCollisionsOnStaticMap(x, y, rotate int, mp *_map.Map, body *detail.Body, full, min bool) (bool, bool)

func CheckBoxCollision

func CheckBoxCollision(box *boxInMap.Box, mp *_map.Map, excludeUnitID int) (bool, *boxInMap.Box)

функция смотри колизию коробки со всеми обьектами мира, если колизия с коробкой то возвращается коробка с которой колизия

func CheckCollisionsPlayers

func CheckCollisionsPlayers(moveUnit *unit.Unit, x, y, rotate int, units map[int]*unit.ShortUnitInfo,
	min, max, hostileMax, onlyStanding, nextPoint bool, excludeIds []int) (bool, *unit.ShortUnitInfo)

func CheckObjectCollision

func CheckObjectCollision(obj *dynamic_map_object.Object, mp *_map.Map, structCheck bool) bool

func CircleAllCollisionCheck

func CircleAllCollisionCheck(xCenter, yCenter, radius int, mp *_map.Map, units map[int]*unit.ShortUnitInfo, boxs []*boxInMap.Box) (bool, string, int)

func CircleBoxes

func CircleBoxes(xCenter, yCenter, radius int, boxs []*boxInMap.Box) (bool, *boxInMap.Box)

func CircleDynamicMap

func CircleDynamicMap(xCenter, yCenter, radius int, mp *_map.Map) (bool, *dynamic_map_object.Object)

func CircleDynamicObj

func CircleDynamicObj(xCenter, yCenter, radius int, object *dynamic_map_object.Object) bool

func CircleGlobalGeoDataMap

func CircleGlobalGeoDataMap(xCenter, yCenter, radius int, mp *_map.Map) bool

func CircleReservoirMap

func CircleReservoirMap(xCenter, yCenter, radius int, mp *_map.Map) (bool, *resource.Map)

func CircleStaticMap

func CircleStaticMap(xCenter, yCenter, radius int, mp *_map.Map) bool

func CircleUnits

func CircleUnits(xCenter, yCenter, radius int, units map[int]*unit.ShortUnitInfo) (bool, *unit.ShortUnitInfo)

func CreateRegion

func CreateRegion(zone *_map.Zone, start *coordinate.Coordinate, index int) *_map.Region

func FillMapZone

func FillMapZone(x, y int, zone *_map.Zone, mp *_map.Map)

func InitCheckCollision

func InitCheckCollision(moveUnit *unit.Unit, pathUnit *unit.PathUnit) (bool, *unit.ShortUnitInfo, int, int, int)

func IntersectVectorToCircle

func IntersectVectorToCircle(a, b, centerCircle *point, radius int) (intersect bool, point1, point2 *point)

func SearchCircleCollisionInLine

func SearchCircleCollisionInLine(startX, startY, ToX, ToY float64, mp *_map.Map, radius int,
	units map[int]*unit.ShortUnitInfo, boxs []*boxInMap.Box, target *unit.Target) bool

func SearchCollisionInLine

func SearchCollisionInLine(startX, startY, ToX, ToY float64, mp *_map.Map, gameUnit *unit.Unit, speed float64,
	units map[int]*unit.ShortUnitInfo, onlyStanding, min, max bool, unitsID []int) bool

func UnitToBoxCollisionReaction

func UnitToBoxCollisionReaction(takeUnit *unit.Unit, toBox *boxInMap.Box) (*unit.PathUnit, *unit.PathUnit)

func UnitToUnitCollisionReaction

func UnitToUnitCollisionReaction(takeUnit, toUnit *unit.Unit) (*unit.PathUnit, *unit.PathUnit)

Types

type Polygon

type Polygon struct {
	Sides []*SideRec `json:"sides"`

	Height, Width float64
	Angle         int
	// contains filtered or unexported fields
}

func GetBodyRect

func GetBodyRect(body *detail.Body, x, y float64, rotate int, full, min bool) *Polygon

func GetCenterRect

func GetCenterRect(x, y, height, width float64) *Polygon

func GetRect

func GetRect(x, y, height, width float64) *Polygon

func (*Polygon) Rotate

func (r *Polygon) Rotate(rotate int)

type SideRec

type SideRec struct {
	X1 float64 `json:"x_1"`
	Y1 float64 `json:"y_1"`
	X2 float64 `json:"x_2"`
	Y2 float64 `json:"y_2"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL