From d4283a02e30348e73bce786e67e2b1a17955c679 Mon Sep 17 00:00:00 2001 From: Martin Kagamino Lehoux Date: Sat, 26 Aug 2023 11:34:03 +0200 Subject: feat: Move to destination --- person.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'person.go') 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 + } + } +} -- cgit v1.3