diff options
| -rw-r--r-- | main.go | 7 | ||||
| -rw-r--r-- | person.go | 8 |
2 files changed, 5 insertions, 10 deletions
@@ -57,7 +57,10 @@ func (g *Game) Draw(screen *ebiten.Image) { screen.Fill(shallowWaterColor) soil.Fill(soilColor) for _, p := range g.Persons { - soil.DrawImage(p.Image(), GetDrawImageOptions(p.Size(), p.Position)) + bounds := p.Image().Bounds() + op := &ebiten.DrawImageOptions{} + op.GeoM.Translate(p.Position.X-float64(bounds.Dx())/2, p.Position.Y-float64(bounds.Dy())/2) + soil.DrawImage(p.Image(), op) } op := &ebiten.DrawImageOptions{} op.GeoM.Translate(soil.Position.X, soil.Position.Y) @@ -72,7 +75,7 @@ func main() { ebiten.SetWindowSize(1280, 960) ebiten.SetWindowTitle("Age of Empire") game := &Game{} - mainPerson := NewPerson(Vec{X: 120, Y: 80}) + mainPerson := NewPerson(Vec{float64(soil.Image.Bounds().Dx()) / 2, float64(soil.Image.Bounds().Dy()) / 2}) game.Persons = append(game.Persons, &mainPerson) if err := ebiten.RunGame(game); err != nil { panic(err) @@ -32,14 +32,6 @@ func (p Person) Image() *ebiten.Image { return p.image } -func (p Person) Size() Vec { - if p.IsSelected { - return Vec{X: p.size.X + 2, Y: p.size.Y + 2} - } else { - return p.size - } -} - func (p Person) Bounds() Rectangle { return Rectangle{Vec{p.Position.X - p.size.X/2, p.Position.Y - p.size.Y/2}, Vec{p.Position.X + p.size.X/2, p.Position.Y + p.size.Y/2}} } |
