Ebiten 1.11 リリースノート
v1.11.0
新機能
Game
インターフェイスと RunGame
Game
インターフェイスと RunGame
関数が新規追加されました。これらはゲームを実行するための新しい API です。
Run
関数は廃止されず当面残りますが、新規案件では Game
インターフェイスと RunGame
関数を使うことが推奨されます。
ウィンドウを可変サイズにするために Run
の代わりに使う必要があります (Issue 943)。
サイズ可変ウィンドウ
サイズ可変ウィンドウの詳細についてはブログ記事を参照してください。
IsWindowResizable
/SetWindowResizable
が新規追加されました (Issue 320)。WindowSize
/SetWindowSize
が新規追加されました (Issue 320)。MaximizeWindow
/IsWindowMazimized
が新規追加されました (Issue 994)。MinimizeWindow
/IsWindowMinimized
が新規追加されました (Issue 994)。RestoreWindow
が新規追加されました (Issue 994)。
type Game struct{}
func (g *Game) Update(screen *ebiten.Image) error {
// Update the game state
return nil
}
func (g *Game) Draw(screen *ebiten.Image) {
// Draw the current game state
}
func (g *Game) Layout(outsideWidth, outsideHeight int)
(screenWidth, screenHeight int) {
// Accepts the outside size (e.g., window size), and
// returns the game screen size.
// The game screen scale is automatically adjusted.
return 320, 240
}
func main() {
g := &Game{}
if err := ebiten.RunGame(g); err != nil {
panic(err)
}
}
ウィンドウ位置
WindowPosition
/SetWindowPosition
が新規追加されました (Issue 936)。
透過スクリーン
SetScreenTransparent
/IsScreenTransparent
が新規追加されました (Issue 1001)。
常時最前面ウィンドウ
SetWindowFloating
/IsWindowFloating
が新規追加されました (Issue 880)。
これらの API を使って、デスクトップマスコットアプリケーションが作れます。 mascot サンプルを参考にしてください。
カーソルキャプチャ
CursorModeType
/CursorMode
/SetCursorMode
が新規導入されました (Issue 1016)。
その他
SetWindowDecorated
がRun
/RunGame
の前に呼べるようになりました (Issue 556)。ReplacePixels
が部分画像上で呼べるようになりました (Issue 980)。- Go modules が
ebitenmobile
でサポートされるようになりました (Issue 1055)。 - Android と iOS でキーボードがサポートされました (Issue 237)。
- Android でゲームパッドがサポートされました (Issue 1083)。
パフォーマンス改善
- PBO (Pixel Buffer Object) の使用により、画像の作成やピクセルの置換が高速になった (Issue 988)。
- その他細かい最適化 (Issue 976、 Issue 981、 Issue 990、 Issue 1101).
廃止予定 API
SetScreenSize
: 代わりにGame
インターフェイスとRunGame
関数を使用してください。ScreenScale
: 代わりにWindowSize
を使用してください。SetScreenScale
: 代わりにSetWindowSize
を使用してください。IsCursorVisible
: 代わりにCursorMode
を使用してください。SetCursorVisible
: 代わりにSetCursorMode
を使用してください。IsRunnableInBackground
: 代わりにIsRunnableOnUnfocused
を使用してください。SetRunnableInBackground
: 代わりにSetRunnableOnUnfocused
を使用してください。
バグ修正
- このリリースには、 v1.10.x にあるすべてのバグ修正が含まれます。
- Android Huawei ALE-L02 において、画像の拡大に失敗していたのを修正 (Issue 1044)。
- iPad 上で画面端が点滅していたのを修正 (Issue 1019)。
v1.11.1
バグ修正
Game
インターフェイスのDraw
関数使用時のパフォーマンスを改善 (Issue 1134、 Issue 1140)。(*Image).At
が不必要に遅くなることがある問題を修正 (Issue 1137)。ebitenmobile
で-target
にアーキテクチャを指定したときにコンパイルできなかった問題を修正 (Issue 1142)。
v1.11.2
バグ修正
- ブラウザ上でフリーズする可能性があったのを修正 (Issue 1161)。
Fill
で描画された画像がコンテキストロストから正しく復帰しないことがあったのを修正 (Issue 1170)。
v1.11.3
バグ修正
- 一番最初のフレームで
Draw
の前にUpdate
が最低限一回が呼ばれるように保証 (Issue 1155)。 - Android で入力デバイスがデタッチしたときにクラッシュしていたのを修正 (Issue 1185)。
Run
/RunGame
前のSetVsyncEnabled(false)
が動かなかったのを修正 (Issue 1197)。
v1.11.4
バグ修正
- macOS で起動時にクラッシュしていた問題を軽減 (Issue 1237)。
v1.11.5
バグ修正
- Raspberry Pi 4 で正しく描画がされなかった問題を修正 (Issue 1208)。
- macOS でスリープ後に音が遅れることがあった問題を修正 (Issue 1259)。
v1.11.6
バグ修正
- Android 向けビルド時のエラーを修正 (Issue 1266)。
v1.11.7
バグ修正
- macOS で 1 分スリープ後に音が遅れることがあった問題を修正 (Issue 1280)。
v1.11.8
バグ修正
- Pixel 4 と Pixel 4a 上で起きるフリーズの修正 (Issue 1322、 Issue 1332)。
ebitenmobile
が Go 1.15 で動かなかった問題の修正 (Issue 1336).
v1.11.9
バグ修正
- Windows でフルスクリーン時に Vsync が動かなかった問題の修正 (Issue 1363)。