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

Личные инструменты