38 lines
874 B
Go
38 lines
874 B
Go
package hero
|
|
|
|
import (
|
|
"bytes"
|
|
"github.com/hajimehoshi/ebiten/v2"
|
|
"gitlab.com/kbr4/9heroja/resources"
|
|
"image"
|
|
"log"
|
|
)
|
|
|
|
var (
|
|
heroImage *ebiten.Image
|
|
)
|
|
|
|
type Hero struct {
|
|
}
|
|
|
|
func (h *Hero) DrawHero(screen *ebiten.Image) {
|
|
op := &ebiten.DrawImageOptions{}
|
|
screenWidth := screen.Bounds().Max.X
|
|
screenHeight := screen.Bounds().Max.Y
|
|
|
|
// ground
|
|
op.GeoM.Reset()
|
|
op.GeoM.Translate(float64(screenWidth/2-16), float64(screenHeight/2-16))
|
|
//op.GeoM.Translate(float64(i*tileSize-floorMod(g.cameraX, tileSize)),
|
|
// float64((ny-1)*tileSize-floorMod(g.cameraY, tileSize)))
|
|
screen.DrawImage(heroImage.SubImage(image.Rect(67, 167, 66+resources.HeroTileSize, 166+resources.HeroTileSize)).(*ebiten.Image), op)
|
|
}
|
|
|
|
func init() {
|
|
img, _, err := image.Decode(bytes.NewReader(resources.Hero_png))
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
heroImage = ebiten.NewImageFromImage(img)
|
|
}
|