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)。