project-ely/internal/game/entity/penguin.go

56 lines
873 B
Go

package entity
import (
"github.com/veandco/go-sdl2/sdl"
)
type penguin struct {
worldPosition *sdl.Point
animationStep int32
}
func NewPenguin(renderer *sdl.Renderer) *penguin {
position := sdl.Point{}
p := penguin{
worldPosition: &position,
}
return &p
}
func (p *penguin) Draw() error {
a := penguinAnimations[PENGUIN_WALK_RIGHT]
step := p.animationStep / 10
err := a.Draw(step, p.worldPosition)
if err != nil {
return err
}
p.animationStep += 1
return nil
}
func (p *penguin) SetPosition(point *sdl.Point) {
p.worldPosition = point
}
func (p *penguin) MoveRight() {
p.worldPosition.X += 1
}
func (p *penguin) MoveLeft() {
p.worldPosition.X -= 1
}
func (p *penguin) MoveUp() {
// (0,0) is the top left, so negative y moves up
p.worldPosition.Y -= 1
}
func (p *penguin) MoveDown() {
// positive y moves down
p.worldPosition.Y += 1
}