Четверг, 21 сентября 2017, 07:53

Приветствую Вас Гость

Меню сайта
Категории каталога
Создание игр [306]
Статьи об общих понятиях связанных с созданием игр.
Программирование [68]
Гайды по программированию на разных ЯП.
Движки и Гейммейкеры [123]
Статьи о программах для создания игр, уроки и описания.
Софт [27]
Различные программы, в том числе в помощь игроделам.
2D-графика [11]
Уроки по рисованию, растр, пиксель-арт, создание спрайтов и пр.
3D-графика [10]
Уроки по моделированию, ландшафт, модели, текстурирование и пр.
Моддинг игр [4]
Модификация компьютерных игр, создание дополнений, перевод, хакинг.
Игры [69]
Статьи об играх, в том числе и сделанных на гейммейкерах.
Разное [55]
Статьи, которые не вошли в определённые разделы.
Наш опрос
Какой ЯП вы знаете?
Всего ответов: 27010
Главная » Статьи » Программирование

Билиотека DLL_GUI(LibraryOne) для XNA C# Урок 1 - Старт
Так как это мой 1й гайд просьба тухлыми продуктами не кидаться!
В этом уроке мы научимся инициализировать DLL_GUI(LibraryOne). и напишим простой пример с менюшкой и одной кнопкой на закрытие программы.
Для начала нам надо скачать саму библиотеку DLL_GUI(LibraryOne). LibraryOne
Все примеры я делаю для VS2010 C#
Также нам понадобятся скины: фона менюшки, кнопки(обычное состояние, когда выделена, и когда нажата) - Рекомендуется использовать формат PNG.

1) Создадим новый проект.

2) Добавим в Content наши скины. И там же создадим шрифт.

3) Привяжем библиотеку к проекту.



4) Создадим Menu.cs

Код
using System;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Graphics;
using Library.GUI;

namespace Tuturial_1
{
  public static class Menu
  {
  public static UIWindow2_0 wnd;
  public static Library.GUI2_0.UIButton button;

  // Стили для элементов
  public static Library.GUI.GUIStyle wnd_style = new Library.GUI.GUIStyle();
  public static Library.GUI.GUIStyle button_style = new Library.GUI.GUIStyle();

  public static void Load()
  {
  wnd = new UIWindow2_0(0, 0, 120, 60, new GUIStyle[] { wnd_style });
  // Расположение окна по середине относительно дочернего.
  wnd.align = Align.MiddleCenter;
  button = new Library.GUI2_0.UIButton(new Rectangle(10, 10, 100, 40), button_style, "Выход");
  // Событие возникает когда ПКМ нажата.
  button.OnClick += new EventHandler(Program.Exit);
  // Привязываем кнопку к форме
  wnd.Add(button);
  // Активируем и показываем форму
  wnd.Show();
  }

  public static void Draw(SpriteBatch sb)
  {
  if (wnd != null)
  {
  // Рисуем форму и все что на ней.
  wnd.Draw(sb);
  }
  }

  public static void Update(GameTime gameTime, KeyboardState keyb, MouseState mouse)
  {
  // Обновляем форму и все что в ней
  wnd.Update(gameTime, keyb, mouse);
  }
  }
}

5) подкорректируем Program.cs добавим ф-ю выхода из программы
Код
using System;

namespace Tuturial_1
{
#if WINDOWS || XBOX
  public static class Program
  {
  private static Game1 game;
  public static void Main(string[] args)
  {
  game = new Game1();
  game.Run();
  }

  public static void Exit(object sender, EventArgs e)
  {
  if (game != null)
  {
  game.Exit();
  game = null;
  }
  }

  }
#endif
}

6) В Game1.cs допишем в:
6.1) в конструкторе покажем мышь.
Код
IsMouseVisible = true;

6.2) В загрузке контента.
Код
Menu.wnd_style.bg = Content.Load<Texture2D>(@"Border-Background");
Menu.button_style.bg = Content.Load<Texture2D>(@"Button_background_1");
Menu.button_style.bg_select = Content.Load<Texture2D>(@"Button_background_2");
Menu.button_style.g_animation = Content.Load<Texture2D>(@"Button_background_3");
Menu.button_style.font = Content.Load<SpriteFont>(@"UiFont");
Menu.Load();

6.3) в Update добавим
Код
Menu.Update(gameTime, Keyboard.GetState(), Mouse.GetState());

6.4) в Draw пропишем
Код
Menu.Draw(spriteBatch);

7) Вот и все компилируем запускаем и радуемся!

Исходник: Tutoral #1

Если вас заинтересовала данная тема могу сделать и другие гайды.
Также могу выслушать вашу критику.

Категория: Программирование | Добавил: xaker-01 (28 ноября 2014) | Автор: Space-g.ru
Просмотров: 2125 | Комментарии: 5 | Рейтинг: 5.0/3 |
Теги: DLL GUI, LibraryOne, библиотека, примеры, dll, gui, xna, VS2010, C#, 2D & 3D Engine
Дополнительные опции:
Также если вы считаете, что данный материал мог быть интересен и полезен кому-то из ваших друзей, то вы бы могли посоветовать его, отправив сообщение на e-mail друга:

Игровые объявления и предложения:
Если вас заинтересовал материал «Билиотека DLL_GUI(LibraryOne) для XNA C# Урок 1 - Старт», и вы бы хотели прочесть что-то на эту же тему, то вы можете воспользоваться списком схожих материалов ниже. Данный список сформирован автоматически по тематическим меткам раздела. Предлагаются такие схожие материалы: Если вы ведёте свой блог, микроблог, либо участвуете в какой-то популярной социальной сети, то вы можете быстро поделиться данной заметкой со своими друзьями и посетителями.

Всего комментариев: 5
+0-
2 Amri   (24 декабря 2014 01:17)
AmriБлин, недосмотрел. Зачем лишние телодвижения "подкорректируем Program.cs добавим ф-ю выхода из программы " , когда в хна есть Game.Exit(), специально для этих целей?

+0-
4 xaker-01   (24 декабря 2014 01:56)
1е если ты внимательно прочтешь то там твой game.exit() как раз прописан.
2е для чего сделано так я уже объяснять не буду, если есть гениальные предложения излогай.
3е данный пример сделан исключительно для того чтобы показать как её конектить и что она работает. а назначения данных элементов менюшкой не заканчиваются. cool

+0-
5 Amri   (24 декабря 2014 15:14)
Amri1.Но на кой черт его прописывать отдельным методом в классе Programm? Это усложняет код. Я свою менюшку по другому делал, хотя она не должна быть такой как твоя))
2. Зря не хочешь, потому как непонятно зачем.
3. Хорошо) немного интересная библиотека, хотя, на мой дилетантский взгляд, это излишество. Потому как она, эта библиотека, заменяет лишь очень малую часть кода. Но это на мой дилетантский взляд.

Но я не отговариваю тебя, я бы с интересом почитал продолжение )

+0-
1 Amri   (24 декабря 2014 01:14)
AmriХм, зачем использовать библиотеку для создания менюшки, если она спокойно пишется ручками ?))) Не в обиду)

+0-
3 xaker-01   (24 декабря 2014 01:46)
Ну никто не запрещает писать все ручками.

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Поиск по сайту
10 случ. движков
  • Jolt3d!
  • GZDoom
  • Scrupp
  • Genesis 2D
  • Ogre3D
  • LKI-Creator 3D
  • Polycode
  • EDGE
  • HiAsm
  • FPS Creator
  • Друзья сайта
    Игровой форум GFAQ.ru Перевод консольных игр
    GameDev, Уроки OpenGL, Программирование, Создать Minecraft
    Все права сохранены. GcUp.ru © 2008-2017 Рейтинг