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
のPrint
Cls
ConsoleCursor
など、コンソール系の API はこちらです
DF
静的クラスを追加Run
Exit
NextFrame
メソッド、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
のPrint
Cls
ConsoleCursor
など、コンソール系の API はこちらです
Run
Exit
NextFrame
メソッド、Root
プロパティはDF
クラスからアクセスできますDF.Window
で取得できるIWindow
インターフェイスのインスタンスは、GameBase
のインスタンスメンバーの多くを用意していますが、例外もありますOn
から始まるイベント系の仮想メソッドは、例外を除き全てIWindow
インターフェイスのイベントとして再実装されています- イベントハンドラーを使う形に書き換えてください
Visible
プロパティの名前をIsVisible
に変更Random
プロパティ、Randomize
メソッドは廃止しました。System.Random
をそのまま使用してくださいStartCoroutine
StopCoroutine
メソッドは廃止しました。CoroutineRunner.Start
CoroutineRunner.Stop
を使用してくださいDispose
メソッドは廃止しましたKeyDown
KeyUp
KeyPress
イベントは廃止しました。DFKeyboard
クラスに新設された同名のイベントハンドラーを使用してください- 次のメンバーは
DF.Console
にあるのでそちらを使用してくださいConsoleCursor
プロパティConsoleSize
プロパティPrint
メソッドCls
メソッド
Scene
のOnStart
OnUpdate
OnDestroy
メソッドから、Router router
GameBase game
の引数を廃止
その他
Vector
クラスと(float, float)
タプル間で暗黙的型変換されるように- 例えば
Location = (16, 48)
というシンプルな書き方ができます
- 例えば
VectorInt
クラスと(int, int)
タプル間で暗黙的型変換されるようにSystem.Drawing
名前空間とのクラス名の衝突を防ぐため、Font
FontStyle
クラスをそれぞれDFFont
DFFontStyle
クラスに名称変更- 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 メソッドを廃止