aboutsummaryrefslogtreecommitdiff
path: root/person.go
diff options
context:
space:
mode:
Diffstat (limited to 'person.go')
-rw-r--r--person.go17
1 files changed, 17 insertions, 0 deletions
diff --git a/person.go b/person.go
index 0bf0992..b1248e2 100644
--- a/person.go
+++ b/person.go
@@ -10,6 +10,7 @@ type Person struct {
size Point
Position Point
IsSelected bool
+ move Move
image *ebiten.Image
selectedImage *ebiten.Image
}
@@ -38,3 +39,19 @@ func (p Person) CollisionBounds() Rectangle {
p.Position.Add(p.size.Div(2)),
}
}
+
+func (p *Person) MoveTo(destination Point) {
+ p.move = Move{IsActive: true, Destination: destination}
+}
+
+func (p *Person) Update() {
+ speed := 2
+ if p.move.IsActive {
+ remainingMove := p.move.Destination.Sub(p.Position)
+ delta := remainingMove.Mul(speed).Div(int(Length(remainingMove)))
+ p.Position = p.Position.Add(delta)
+ if Distance(p.Position, p.move.Destination) < float64(speed) {
+ p.move.IsActive = false
+ }
+ }
+}