GUI
Материал из NeoAxis Wikipedia.
Дополняем загрузку скрином карты
Пользовательский графический интерфейс: Использование редактора логики
С разрешения SERG-a выложу сам готовый, чуть подправленный код. Основной архив можно скачать здесь а сам код выглядит так:
(Заменить в файле ActionGameWindow.cs блок начиная с
renderer.AddText("[ ]", new Vec2(.5f, .5f), HorizontalAlign.Center, VerticalAlign.Center))
и заканчивая до
//Tank specific
// здесь комментируем скобочки по бокам
//renderer.AddText("[ ]", new Vec2(.5f, .5f), HorizontalAlign.Center, VerticalAlign.Center);
if (body != null)
{
MapObject obj = MapSystemWorld.GetMapObjectByBody(body);
if (obj != null && (obj as GameGuiObject) == null)
{
//renderer.AddText(obj.Type.Name, new Vec2(.5f, .525f),
//HorizontalAlign.Center, VerticalAlign.Center);
Dynamic dynamic = obj as Dynamic;
if (dynamic != null)
{
if (dynamic.Type.LifeMax != 0)
{
float lifecoef = dynamic.Life / dynamic.Type.LifeMax;
// Здесь мы закомментируем полосочку жизней чтобы не мешала.
//renderer.AddText("IIIIIIIIII", new Vec2(.5f - .04f, .55f), HorizontalAlign.Left,
// VerticalAlign.Center, new ColorValue(.5f, .5f, .5f, .5f));
// комментируем вывод и просчёт палочек жизни
//float count = lifecoef * 10;
//String s = "";
//for (int n = 0; n < count; n++)
// s += "I";
// а здесь мы заккоментировали строки,
// выводящие ненавистное имя объекта
//renderer.AddText(s, new Vec2(.5f - .04f, .55f),
// HorizontalAlign.Left, VerticalAlign.Center, new ColorValue(0, 1, 0, 1));
}
if (dynamic.PhysicsModel != null)
{
// убираем данные о массе объекта
//float mass = 0;
// foreach (Body s in dynamic.PhysicsModel.Bodies)
// mass += s.Mass;
// string ss = string.Format("mass {0}", mass);
// а здесь заменили + в скобочках на Х при наведении,
// и заодно воткнули код, отвечающий за раскраску
//в зелёный цвет при наведении
renderer.AddText("X", new Vec2(.5f, .5f), HorizontalAlign.Center, VerticalAlign.Center, new ColorValue( 0, 1, 0, 1 ) );
}
}
}
}
После этого надо перекомпилировать Game.exe
И будет вам новый прицел...
Что подправлено: При наведении в центре прицела появляется зелёненький крестик, активный при наведении на солдат или дверей...
Также можно использовать текстурный прицел:
для этого в Resource Editor'е откройте Gui\ActionHUD.gui и в нем добавьте Control
поместите его в центр экрана т.е задайте параметры в окне Properties:
HorizontalAlign = Center, VerticalAlign = Center, Position = Texture 0 0
и загрузите текстуру прицела (в окне Properties: BackTexture - укажите файл текстуры прицела).
Авторы: SERG, GRANT, Coder, Alex
