Начало работы с MonoGame
На этой странице мы подключим IcyUI к игре на MonoGame.
Создайте проект из шаблона MonoGame:
dotnet new mgdesktopgl -o MyGameили
dotnet new mgwindowsdxдля бэкенда Direct3D. С IcyUI работают оба.Переведите его на .NET 10. В
MyGame/MyGame.csprojукажите<TargetFramework>net10.0</TargetFramework>(илиnet10.0-windows, если шаблон использовал суффикс-windows) и убедитесь, что пакеты MonoGame версии 3.8.5.1 или новее.Добавьте пакет:
dotnet add MyGame/MyGame.csproj package IcyUI.MonoGame --prereleaseНастройте IcyUI в классе
Game. ВызовитеUseIcyUI()вInitialize():using Icy.MonoGame.Configuration; using Icy.UI.Controls; using Microsoft.Xna.Framework; public class Game1 : Game { private readonly GraphicsDeviceManager graphics; public Game1() { graphics = new GraphicsDeviceManager(this); IsMouseVisible = true; } protected override void Initialize() { MonoGameIcyHost ui = this.UseIcyUI(); ui.MainCanvas.Add(new Button { Content = "Hello, IcyUI" }); base.Initialize(); } protected override void Draw(GameTime gameTime) { GraphicsDevice.Clear(Color.CornflowerBlue); base.Draw(gameTime); // IcyUI draws here, on top of what you drew above. } }UseIcyUI()добавляет IcyUI как компонент игры и возвращает хост:ui.MainCanvas— это Canvas, на который добавляются элементы, аui.Configurationхранит все настройки. Настройки по умолчанию загружают встроенную тему и используют системный шрифт Segoe UI. IcyUI рисует во времяbase.Draw(), после вашей отрисовки; всё, что нарисовано послеbase.Draw(), перекроет интерфейс. Строка, переданная как содержимое, становится TextBlock.Запустите игру. Появится кнопка «Hello, IcyUI», реагирующая на мышь и клавиатуру.
Примечание
IcyUI не поставляется со шрифтом. На Linux и macOS или чтобы использовать свой шрифт, импортируйте файл шрифта,
поставляемый с игрой:
this.UseIcyUI(ui => ui.ConfigureFonts().ImportFont("Fonts/MyFont.ttf").WithDefaultFontFamily("My Font")). См.
Шрифты на других платформах. Предупреждения IcyUI появляются в окне
Output отладчика.
Примечание
На бэкенде DesktopGL ввод касаниями недоступен, а на Windows для ARM64 игра может зависнуть при выходе. WindowsDX не использует слой SDL, из-за которого возникают обе проблемы, но ввод касаниями и корректный выход на ARM64 там пока не проверены.
Далее
На странице Ваш первый экран добавляется меню, описанное разметкой.