You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
43 lines
984 B
43 lines
984 B
//go:build example |
|
// +build example |
|
|
|
package system |
|
|
|
import ( |
|
"fmt" |
|
|
|
"code.rocketnine.space/tslocum/gohan" |
|
"github.com/hajimehoshi/ebiten/v2" |
|
"github.com/hajimehoshi/ebiten/v2/ebitenutil" |
|
) |
|
|
|
type printInfoSystem struct { |
|
img *ebiten.Image |
|
op *ebiten.DrawImageOptions |
|
player gohan.EntityID |
|
} |
|
|
|
func NewPrintInfoSystem(player gohan.EntityID) *printInfoSystem { |
|
p := &printInfoSystem{ |
|
img: ebiten.NewImage(200, 100), |
|
op: &ebiten.DrawImageOptions{}, |
|
player: player, |
|
} |
|
p.op.GeoM.Scale(2, 2) |
|
return p |
|
} |
|
|
|
func (s *printInfoSystem) Matches(e gohan.EntityID) bool { |
|
return e == s.player |
|
} |
|
|
|
func (s *printInfoSystem) Update(_ gohan.EntityID) error { |
|
return gohan.ErrSystemWithoutUpdate |
|
} |
|
|
|
func (s *printInfoSystem) Draw(entity gohan.EntityID, screen *ebiten.Image) error { |
|
s.img.Clear() |
|
ebitenutil.DebugPrint(s.img, fmt.Sprintf("KEY WASD+MOUSE\nTPS %0.0f\nFPS %0.0f", ebiten.CurrentTPS(), ebiten.CurrentFPS())) |
|
screen.DrawImage(s.img, s.op) |
|
return nil |
|
}
|
|
|