Add event/trigger and bounds getter
This commit is contained in:
parent
16caafa366
commit
18eacb7b34
|
@ -3,11 +3,27 @@ import { SegmentZone } from '../data/segment'
|
|||
|
||||
export class Zone {
|
||||
fixture: planck.Fixture|undefined
|
||||
type: 'solid'|'fluid'
|
||||
type: 'solid'|'fluid'|'trigger'
|
||||
points: [number, number][]
|
||||
event: string = ''
|
||||
constructor(z: SegmentZone) {
|
||||
this.type = z.type
|
||||
this.points = z.points.map(v=>[v[0], v[1]])
|
||||
this.event = z.event
|
||||
}
|
||||
get bounds(): [number, number, number, number] {
|
||||
let xs = this.points.map(v=>v[0])
|
||||
let ys = this.points.map(v=>v[1])
|
||||
let minX = Math.min(...xs)
|
||||
let minY = Math.min(...ys)
|
||||
let maxX = Math.max(...xs)
|
||||
let maxY = Math.max(...ys)
|
||||
return [
|
||||
minX,
|
||||
minY,
|
||||
maxX-minX,
|
||||
maxY-maxY,
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user