Июнь 2018
ПнВтСрЧтПтСбВс
    123
45678910
11121314151617
18192021222324
252627282930 

Календарь Календарь

Последние темы
» Создание инвентаря (устаревшее)
Пт Апр 13, 2018 7:43 pm автор Eris

» Программное создание Mesh
Пн Фев 05, 2018 12:05 am автор Eris

» Помогите !!! (вопросы, советы, обсуждения)
Вт Июн 06, 2017 11:39 am автор Zhuravlev Yuri

» Редакторы карт и ресурсов
Ср Май 24, 2017 10:23 pm автор Чумной Доктор

» Создание "Игрового типа" (GameType)
Ср Апр 05, 2017 2:19 am автор Filat

» Экспорт из 3ds Max
Сб Мар 11, 2017 12:22 pm автор Uggo

» Создание "Выбор персонажа"
Сб Фев 25, 2017 11:32 am автор Filat

» Анимирование в 3d max для NeoAxis Engine
Вт Фев 14, 2017 8:54 am автор R.R.K

» Изменение главного меню Game.exe
Сб Янв 21, 2017 1:21 pm автор Eris

Поиск
 
 

Результаты :
 

 


Rechercher Расширенный поиск

Ключевые слова


Создание "Выбор персонажа"

Перейти вниз

Создание "Выбор персонажа"

Сообщение автор Filat в Сб Фев 25, 2017 11:32 am

Первоисточник:



1. Через редактор ресурсов в папке GUI создаем "пользовательский интервейс"(DefaultWindows), называем его "CharacterSelection.gui".
2. Открываем его редактирование, задаем размер , в поле имя пишем "CharacterSelection", и в поле текст что будет отображаться в заголовке.
3. Добавляем три SceneBox, переходим в свойства "SceneBox", пункт "объекты":
окно GUI:

[Вы должны быть зарегистрированы и подключены, чтобы видеть эту ссылку]
4. В окне объекты добавляем "Mesh" (1 на рисунке):
Объекты:

[Вы должны быть зарегистрированы и подключены, чтобы видеть эту ссылку]
(2 на рисунке) В поле "MeshName" указываем на "юнит" который будет использоваться в качестве выбранного персонажа, ниже "материал" юнита.
4. В поле "Position" указываем размещение персонажа (я подбирал на глаз для Girl 1.5 0 -1, для робота 2,5 0 -1,5);
в поле "Rotation" угол поворота отображение юнита (Girl 0 0 90, робот 0 0 180)
5. Дальше добавляем три кнопки "Button", в свойствах пишем название кнопки (имя кнопки будет использоваться в скрипте), и текст на кнопке: сохраняем . должно получиться типа такого:
Gui:

[Вы должны быть зарегистрированы и подключены, чтобы видеть эту ссылку]


6. Пишем скриптыSadя пользовался Visual Studio)

  • открываем файл "FreeEdition.sln"  в папке  NeoAxist (откроеться весь проект программы)
  • откроем сразу скрипты GameWorld.cs (ProjectEntities) и MainMenuWindow.cs (Game)

7. Создадим новый класс в Game, назовём его CharacterSelectionWindow.cs
8. GameWorld.cs:добавим клас
Код:
public class GameWorld : World
 {
 static GameWorld instance;
        public static string ChoosenCharacter; // добавим эту строку

для замены персонажа по умолчанию изменяем строку:
Код:
string unitTypeName;
            if (!player.Bot)
            {
                if (GameMap.Instance.PlayerUnitType != null)
                    unitTypeName = GameMap.Instance.PlayerUnitType.Name;
                else
                    unitTypeName = string.IsNullOrEmpty(ChoosenCharacter) ? "Girl" : ChoosenCharacter;// меняем эту строку
                
            }

9.CharacterSelectionWindow.cs полностью код
Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Engine.UISystem;
using ProjectEntities;

namespace Game
{
    class CharacterSelectionWindow :Control
    {
        private Control window;

        protected override void OnAttach()
        {
            base.OnAttach();

            window = ControlDeclarationManager.Instance.CreateControl("Gui\\CharacterSelection.gui");
            Controls.Add(window);

            ((Button)window.Controls["Girl"]).Click += sender => // имя кнопки которое присваивали в Gui
                {
                    GameWorld.ChoosenCharacter = "Girl"; // имя юнита в SceneBoxe
                    SetShouldDetach();
                };
            ((Button)window.Controls["Zombie"]).Click += sender =>
            {
                GameWorld.ChoosenCharacter = "Zombie";
                SetShouldDetach();
            };
            ((Button)window.Controls["Robot"]).Click += sender =>
            {
                GameWorld.ChoosenCharacter = "Robot";
                SetShouldDetach();
            };

        }
        protected override void OnDetach()
        {
            base.OnDetach();
            GameEngineApp.Instance.SetNeedMapLoad("Maps\\Map\\Map.map"); // имя карты, на которую зайдет юнит
        }

    }
}

9. MainMenuWindow.cs Ищем:
Код:
void Run_Click( Button sender )
 {
             // Controls.Add(new CharacterSelectionWindow()); - на видео добавляют эту строку, я делал как ниже

           // GameEngineApp.Instance.SetNeedMapLoad( "Maps\\Map\\Map.map" );
        }

        void RunVillageDemo_Click(Button sender)
        {
                       GameEngineApp.Instance.SetNeedMapLoad("Maps\\Map\\Map.map");
        }


        void Multiplayer_Click( Button sender )
 {
 Controls.Add( new MultiplayerLoginWindow() );
 }

 void Maps_Click( Button sender )
 {
 Controls.Add( new CharacterSelectionWindow() ); - я менял эту строку
 }

У меня получилось при нажатие кнопку "карты" выходит меню выбора персонажа, при выборе персонажа запускается карта указанная в CharacterSelectionWindow.cs

P.S. Все . не судите строго, первый раз урок пишу)
avatar
Filat

Сообщения : 4
Рейтинг : 499
Репутация : 0
Дата регистрации : 2017-02-15

Посмотреть профиль

Вернуться к началу Перейти вниз

Вернуться к началу

- Похожие темы

 
Права доступа к этому форуму:
Вы не можете отвечать на сообщения