package terrain import ( "bytes" "github.com/hajimehoshi/ebiten/v2" "gitlab.com/kbr4/9heroja/resources" "image" "log" ) var ( grassImage *ebiten.Image ) type Terrain struct { } func (t *Terrain) DrawTerrain(screen *ebiten.Image) { screenWidth := screen.Bounds().Max.X screenHeight := screen.Bounds().Max.Y op := &ebiten.DrawImageOptions{} for i := 0; i <= screenWidth/64; i++ { for j := 0; j <= screenHeight/64; j++ { // ground op.GeoM.Reset() op.GeoM.Translate(float64(i*64), float64(j*64)) screen.DrawImage(grassImage.SubImage(image.Rect(32, 160, 32+64, 160+64)).(*ebiten.Image), op) } } } func init() { img, _, err := image.Decode(bytes.NewReader(resources.Grass_png)) if err != nil { log.Fatal(err) } grassImage = ebiten.NewImageFromImage(img) }