Monogame.Forms adalah cara termudah untuk mengintegrasikan jendela render monogame ke dalam proyek Windows Forms Anda. Itu harus membuat hidup Anda lebih mudah, ketika Anda ingin menciptakan lingkungan editor Anda sendiri.
Catatan
Tip
AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; . Jika Anda ingin mematikan penskalaan seluruh aplikasi Anda, maka Anda perlu menambahkan file manifes . Penting
dotnet add package MonoGame.Forms.DX atau gunakan paket manajerdotnet new install MonoGame.Forms.Templatesdotnet new mgf -n MyMonoGameFormsProjectdotnet new mgfn -n MyMonoGameFormsProjectdotnet new mgc -na MyMonoGameControldotnet new mgic -na MyInvalidationControlDi monogame Anda bisa menggambar sesuatu ke layar dengan SpriteBatch . Di monogame. Bentuk Anda akan melakukan hal yang sama tetapi Anda perlu menggunakan editorservice untuk ini.
Di kelas monogame.forms.control layanan ini disebut editor . Jadi, untuk menggambar sesuatu ke SpriteBatch , Anda perlu melakukan ini:
Editor . spriteBatch . DrawString ();Mari kita lihat kelas drawtest terakhir:
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 ();
}
}
}Hasil:
Ini seperti di monogame.framework!
Lihatlah monogame.Forms.samples-Project, yang merupakan bagian dari repo ini, untuk mempelajari lebih lanjut tentang cara kerja monogame.forms.
Kelas kontrol khusus ini tidak perlu mengganti metode pembaruan () , karena diperbarui secara manual (oleh Anda!).
Anda hanya perlu memanggil Invalidate () pada Kontrol Invalidasi Kustom untuk setiap perubahan yang ingin Anda lihat di atasnya. Setelah menelepon ini, kontrol Anda tidak lagi mengkonsumsi daya CPU. Ini bagus saat membuat kontrol pratinjau untuk tekstur dan hal serupa!
Berikut adalah beberapa foto sampel dari cabang Blazor: