Releases: xeltica-studio/DotFeather
Releases · xeltica-studio/DotFeather
3.2.0
3.1.0
3.1.0
本バージョンから .NET 6 が必須となります。
追加
DFMouseにイベントを追加- Click - クリックした
- ButtonDown - ボタンを押した
- ButtonUp - ボタンを離した
- Move - カーソルが移動した
- Enter - カーソルがウィンドウに入った
- Leave - カーソルがウィンドウから離れた
- Vector型に、指定した矩形領域に接しているかを計算する
In()メソッドを追加
変更
- バックエンドをOpenTK/OpenGL 1ベースからSilk.NET/OpenGL 3に変更
- ⚠ DotFeatherだけでなくOpenTKのAPIも併用していた場合、ソースコード互換性は失われます。
- Disposeされたテクスチャを描画しようと試みた場合、警告を発生させるように
DF.Window.FollowsDpiプロパティを非推奨にDF.Window.ActualSize,ActualWidth,ActualHeightプロパティへの設定を非推奨にEllipseおよびPolygonの描画(Graphic, Shape) を非推奨に- 既に動作しなくなっています
不具合修正
- Windows 11およびmacOS Montereyで動作しない問題を修正
- コンソールが見切れる不具合を修正
既知の不具合
- Texture: 特定の状況で大量のテクスチャを読み込んだ際に、途中でテクスチャを正常に読み込めなくなる
- Audio: 停止にラグがある
- Input: macOSで日本語入力をすると、入力文字列よりも前に改行が挿入される
3.0.0
3.0.0 Most Revolutionary Update
新機能
- ElementBase 抽象クラスを追加しました
- ElementBase を継承するクラスを Element と呼び、DotFeather v3 における描画の基本単位とします
- Texture9Sliced 構造体を追加しました
- Component 抽象クラスを追加しました
- Component クラスを継承したコンポーネントを Element にアタッチすることで、新しいクラスを作ることなくElementを拡張できます
- Shape Elementを追加しました
IWindowインターフェイス を追加- ゲームのレンダリングを行う画面周りの機能を提供します
GameBaseの持っていたメンバーの多くが提供されます
IConsoleインターフェイスを追加GamebaseのPrintClsConsoleCursorなど、コンソール系の API はこちらです
DF静的クラスを追加RunExitNextFrameメソッド、Rootプロパティなどを含みます
- 図形描画用の低レベル API を追加
IPrimitiveDrawerインターフェイスを追加Shapeエレメントはこの API を使うように
- Tilemap#RenderingMode プロパティ(TilemapRenderingMode 型)を追加しました
- TilemapRenderingMode.RenderAll
- 全タイルのうち、画面に存在するものを毎回描画します(従来方式)
- TilemapRenderingMode.Scan
- 画面の左上から右下まで走査し、存在するタイルを描画します(新アルゴリズム)
- TilemapRenderingMode.Auto
- 画面に存在可能なタイル数よりも実際のタイル数が多い場合はScan, 少ない場合はRenderAllを意味します
- 標準はこれ
- どちらが最適なアルゴリズムかわかりきっている場合や、新方式で問題が発生する場合などは手動で設定してください
- TilemapRenderingMode.RenderAll
改善
Vectorクラスと(float, float)タプル間で暗黙的型変換されるように- 例えば
Location = (16, 48)というシンプルな書き方ができます
- 例えば
VectorIntクラスと(int, int)タプル間で暗黙的型変換されるように
破壊的変更
本アップデートは、非常に多くの破壊的変更を含みます。v2からのマイグレーションガイドを参照し、お使いのプロジェクトを更新してください。
なお、近日中にv2との互換性をある程度向上するためのプラグインを公開予定です。
バグ修正
- テキストの描画がおかしい問題を修正
その他
- 依存関係を更新
3.0.0-rc.2
DotFeather v3 RC2
RC1 からのチェンジログ
バグ修正
- NuGetでインストールしたときに正しいバージョンのNVorbisがインストールされない問題を修正
3.0.0-rc.1
DotFeather v3 RC1
このバージョンは、DotFeather v3の最初のリリース候補版です。実際の製品開発にご利用頂けます。
DotFeather v3では、v2に比べて多くのAPIの廃止・作り直しが行われています。その数は非常に多いため、v2からの移行ガイドを近日中に用意します。
3.0.0 Public Beta 5 からのチェンジログ
バグ修正
- テキストの描画がおかしい問題を修正
2.9.2 からのチェンジログ
描画機能
- ElementBase 抽象クラスを追加しました
- ElementBase を継承するクラスを Element と呼び、DotFeather v3 における描画の基本単位とします
- Texture9Sliced 構造体を追加しました
- Component 抽象クラスを追加しました
- Component クラスを継承したコンポーネントを Element にアタッチすることで、新しいクラスを作ることなくElementを拡張できます
- 描画可能オブジェクト(IDrawable インターフェイスを実装するクラス)を全て Element として再実装しました
- NineSliceSplite クラスは Texture2D 配列の代わりに Texture9Sliced 構造体を使うようになりました
- Shape Elementを追加しました
- 従来 Graphic オブジェクトが描画する図形を表現していたクラスのリメイクです
- Shape Elementを単独で生成することで、Graphic Element無しに図形描画ができるように
- Container クラスのインデクサは読み取り専用になりました
- 以下のインターフェイスを廃止しました。ElementBase 抽象クラスに置き換えてください
- IDrawable
- ISizedDrawable
- IContainable
- IUpdatable
- TextureDrawableBase 抽象クラスを廃止しました
- Sprite.LoadFrom メソッドを廃止しました。代わりにコンストラクタを用いてください
- NineSliceSplite.LoadFrom メソッドを廃止しました。代わりにコンストラクタを用いてください
- ITile インターフェイスの定義が変更されました。カスタムタイルを定義している場合はご注意ください
- Tilemap.CurrentDrawingPosition プロパティを廃止しました
- AnimatingSprite クラスは廃止しました。代わりに SpriteAnimator コンポーネントを Sprite クラスにアタッチしてください
- IDrawable インターフェイスに存在した Angle プロパティを廃止しました。もともと角度の設定機能は未実装のまま放置されていたので、角度を設定できるようになってから再実装します
- IDrawable インターフェイスに存在した ZOrder プロパティを廃止しました。使用していた場合、手動で並び替えるようにしてください
Singleton Game API
- GameBase 抽象クラスを廃止しました
- GameBase にあった API の多くは、新しいAPIを使うことで引き続きアクセスできます
IWindowインターフェイス を追加- ゲームのレンダリングを行う画面周りの機能を提供します
GameBaseの持っていたメンバーの多くが提供されます
IConsoleインターフェイスを追加GamebaseのPrintClsConsoleCursorなど、コンソール系の API はこちらです
RunExitNextFrameメソッド、RootプロパティはDFクラスからアクセスできますDF.Windowで取得できるIWindowインターフェイスのインスタンスは、GameBaseのインスタンスメンバーの多くを用意していますが、例外もありますOnから始まるイベント系の仮想メソッドは、例外を除き全てIWindowインターフェイスのイベントとして再実装されています- イベントハンドラーを使う形に書き換えてください
Visibleプロパティの名前をIsVisibleに変更Randomプロパティ、Randomizeメソッドは廃止しました。System.Randomをそのまま使用してくださいStartCoroutineStopCoroutineメソッドは廃止しました。CoroutineRunner.StartCoroutineRunner.Stopを使用してくださいDisposeメソッドは廃止しましたKeyDownKeyUpKeyPressイベントは廃止しました。DFKeyboardクラスに新設された同名のイベントハンドラーを使用してください- 次のメンバーは
DF.Consoleにあるのでそちらを使用してくださいConsoleCursorプロパティConsoleSizeプロパティPrintメソッドClsメソッド
SceneのOnStartOnUpdateOnDestroyメソッドから、Router routerGameBase gameの引数を廃止
その他
Vectorクラスと(float, float)タプル間で暗黙的型変換されるように- 例えば
Location = (16, 48)というシンプルな書き方ができます
- 例えば
VectorIntクラスと(int, int)タプル間で暗黙的型変換されるようにSystem.Drawing名前空間とのクラス名の衝突を防ぐため、FontFontStyleクラスをそれぞれDFFontDFFontStyleクラスに名称変更- Scene.Random プロパティおよび Scene.Randomize メソッドを廃止
IWindow.Dpiプロパティの名称をIWindow.PixelRatioに変更- テクスチャ描画用低レベル API を、クロスプラットフォーム対応を視野に入れ仕様変更
TextureDrawer静的クラスを廃止ITextureDrawerインターフェイスを追加DF.TextureDrawer読み取り専用プロパティを追加- テクスチャを扱う標準のエレメントはこれを使うように
- テクスチャ描画プラグイン開発者はこちらに置き換えるようにしてください
- 図形描画用の低レベル API を追加
IPrimitiveDrawerインターフェイスを追加DF.PrimitiveDrawer読み取り専用プロパティを追加Shapeエレメントはこの API を使うように
- Tilemap のレンダリング パフォーマンスを向上しました
- Tilemap#RenderingMode プロパティ(TilemapRenderingMode 型)を追加しました
- TilemapRenderingMode.RenderAll
- 全タイルのうち、画面に存在するものを毎回描画します(従来方式)
- TilemapRenderingMode.Scan
- 画面の左上から右下まで走査し、存在するタイルを描画します(新アルゴリズム)
- TilemapRenderingMode.Auto
- 画面に存在可能なタイル数よりも実際のタイル数が多い場合はScan, 少ない場合はRenderAllを意味します
- 標準はこれ
- どちらが最適なアルゴリズムかわかりきっている場合や、新方式で問題が発生する場合などは手動で設定してください
- TilemapRenderingMode.RenderAll
- テキストの描画がおかしい問題を修正
- 依存関係を更新
3.0.0-beta.5
DotFeather v3 Public Beta 5
新機能・改善
- Tilemap のレンダリング パフォーマンスを向上しました
- Tilemap#RenderingMode プロパティ(TilemapRenderingMode 型)を追加しました
- TilemapRenderingMode.RenderAll
- 全タイルのうち、画面に存在するものを毎回描画します(従来方式)
- TilemapRenderingMode.Scan
- 画面の左上から右下まで走査し、存在するタイルを描画します(新アルゴリズム)
- TilemapRenderingMode.Auto
- 画面に存在可能なタイル数よりも実際のタイル数が多い場合はScan, 少ない場合はRenderAllを意味します
- 標準はこれ
- どちらが最適なアルゴリズムかわかりきっている場合や、新方式で問題が発生する場合などは手動で設定してください
- TilemapRenderingMode.RenderAll
バグ修正
- ; キーを押すと画面が暗くなる不具合を修正しました
2.9.2
2.9.2
バグ修正
- ; キーを押すと画面が暗くなる不具合を修正しました
Bug fixes
- Fixed a bug the screen goes dark when the ";" key was pressed.
3.0.0-beta.4
DotFeather v3 Public Beta 4
仕様変更
IWindow.Dpiプロパティの名称をIWindow.PixelRatioに変更- テクスチャ描画用低レベル API を、クロスプラットフォーム対応を視野に入れ仕様変更
TextureDrawer静的クラスを廃止ITextureDrawerインターフェイスを追加DF.TextureDrawer読み取り専用プロパティを追加- テクスチャを扱う標準のエレメントはこれを使うように
- テクスチャ描画プラグイン開発者はこちらに置き換えるようにしてください
- 図形描画用の低レベル API を追加
IPrimitiveDrawerインターフェイスを追加DF.PrimitiveDrawer読み取り専用プロパティを追加Shapeエレメントはこの API を使うように
バグ修正
- NineSliceSprite エレメントが描画されない不具合を修正
3.0.0-beta.3.3
DotFeather v3 Public Beta 3.3
- Container をスケーリングした場合の挙動をもう一度修正
3.0.0-beta.3.2
DotFeather v3 Public Beta 3.2
- Container をスケーリングした場合の挙動をもう一度修正
- Scene.Random プロパティおよび Scene.Randomize メソッドを廃止