MonoGame.Forms
1.0.0
monogame.forms는 단일 게임 렌더링 창을 Windows Forms 프로젝트에 통합하는 가장 쉬운 방법입니다. 자신만의 편집기 환경을 만들고 싶을 때 인생을 훨씬 쉽게 만들어야합니다.
메모
팁
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모노 게임에서는 스프라이트 배치 로 화면에 약간의 일부를 그릴 수 있습니다. monogame.forms 에서는 동일한 작업을 수행하지만 editorservice를 사용해야합니다.
monogame.forms.control 클래스 에서이 서비스를 편집기 라고합니다. 따라서 Spritebatch 에 무언가를 그려 보려면 다음을 수행해야합니다.
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와 거의 비슷합니다!
이 repo의 일부인 monogame.forms.samples-project를보고 monogame.forms의 작동 방식에 대해 자세히 알아보십시오.
이 특정 제어 클래스는 업데이트 () 메소드가 수동으로 업데이트되므로 (귀하에 의해!) 업데이트 () 메소드를 재정의 할 필요는 없습니다.
보고 싶은 모든 변경 사항에 대해 사용자 정의 InvalidationControl에서 invalidate ()를 호출하면됩니다. 이것을 호출 한 후, 당신의 제어는 더 이상 CPU 전원을 소비하지 않습니다. 텍스처 및 유사한 것들을위한 미리보기 컨트롤을 만들 때 좋습니다!
다음은 Blazor Branch의 샘플 사진입니다.