MonoGame.Forms
1.0.0
Monogame.Formsは、MonogameレンダリングウィンドウをWindowsフォームプロジェクトに統合する最も簡単な方法です。独自のエディター環境を作成したい場合、それはあなたの人生をずっと楽にするはずです。
注記
ヒント
AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;を含むフォームの正しい自動式モードを設定することをお勧めします。 。アプリケーション全体のスケーリングをオフにする場合は、マニフェストファイルを追加する必要があります。 重要
dotnet add package MonoGame.Forms.DXか、パッケージマネージャーを使用しますdotnet new install MonoGame.Forms.Templatesdotnet new mgf -n MyMonoGameFormsProjectdotnet new mgfn -n MyMonoGameFormsProjectdotnet new mgc -na MyMonoGameControldotnet new mgic -na MyInvalidationControlモノガメでは、 SpriteBatchで画面に描くことができます。 Monogame.formsでは同じことをしますが、これにはeditorserviceを使用する必要があります。
Monogame.Forms.Controlクラスでは、このサービスはエディターと呼ばれます。したがって、スプライトバッチに何かを描くためには、これを行う必要があります。
Editor . spriteBatch . DrawString ();最終的なドローテストクラスを見てみましょう。
using Microsoft . Xna . Framework ;
using MonoGame . Forms . Controls ;
namespace nugetTest
{
public class DrawTest : MonoGameControl
{
string WelcomeMessage = "Hello MonoGame.Forms!" ;
protected override void Initialize ()
{
}
protected override void Update ( GameTime gameTime )
{
}
protected override void Draw ()
{
Editor . spriteBatch . Begin ();
Editor . spriteBatch . DrawString ( Editor . Font , WelcomeMessage , new Vector2 (
( Editor . graphics . Viewport . Width / 2 ) - ( Editor . Font . MeasureString ( WelcomeMessage ). X / 2 ),
( Editor . graphics . Viewport . Height / 2 ) - ( Editor . FontHeight / 2 )),
Color . White );
Editor . spriteBatch . End ();
}
}
}結果:
Monogame.frameworkのようなものです!
このリポジトリの一部であるMonogame.Forms.Samples-Projectをご覧になり、Monogame.formsの仕組みについて詳しく学びます。
この特定のコントロールクラスは、手動で更新されるため(あなたによって!)、更新()メソッドをオーバーライドする必要はありません。
あなたがそれに見たいすべての変更に対して、カスタム無効化のコントロールでInvalidate()を呼び出す必要があります。これを呼び出した後、あなたのコントロールはCPUパワーを消費しなくなります。これは、テクスチャなどのプレビューコントロールを作成するときに素晴らしいことです。
ブレザーブランチのサンプル写真は次のとおりです。