FAQ
General
Why do the examples use the build tag example
?
With the build tag, go get -u github.com/hajimehoshi/ebiten/v2/...
doesn't install the example binaries in your $GOPATH/bin
.
Such build tags are an idiom you can find e.g. in golang.org/x/exp/shiny/example
.
My app built with Ebitengine creates an unknown process "Console Window Host". What is this?
This is because your app is still a console app, not a GUI app. Ebitengine tries to close the console when necessary, but the app itself is still not recognized as a GUI app. You can suppress this by specifying ldflags when go-building like this:
go build -ldflags -H=windowsgui path/to/your/game
Why did you name the lib "Ebitengine"?
This is a portmanteau of an Ebiten and an Engine. An Ebiten is delicious.
Is it possible to cross-compile an application with Ebitengine?
Yes and no. If the target is Windows or Wasm, yes. Otherwise, it is almost impossible to cross-compile due to Cgo unfortunately. See also Go issue #18296.
Graphics
How can I draw lines?
Use vector.StrokeLine
.
How can I take a screenshot?
Specify the key to environment variable EBITENGINE_SCREENSHOT_KEY
and you can take a screenshot by pressing the specified key.
EBITENGINE_SCREENSHOT_KEY=q go run .
Ebitengine's screen is scaled (and blurred) on hi-DPI screen. Can I disable this scaling? In other words, can I have a hi-DPI mode?
You can make (ebiten.Game).Layout
return a bigger size than the outside size. By multiplying the outside size by ebiten.DeviceScaleFactor()
, you can get a hi-DPI game screen. For an actual example, see examples/highdpi
.
Found a lot of unexpected holes in the result when rendering tiles. Why?
If you render tiles by SubImage
, you might see unexpected pixels when
- The sub-images are rendered with scaling or rotating, and
- The parts' graphics on your original image are not continuous.
In the case of rendering tiles with scaling or rotating, we strongly recommend to use an ebiten.Image
as an offscreen. Render tiles on the offscreen, then render the offscreen image on the final target as you like.