Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

Шахматы по сети / Интерфейс. Долгожданное превращение

  • На этом уроке мы наконец превратим
    нашу пешку в одну из четырёх фигур.
  • Дата отправки отчёта: 13 июня 2018 г.
  • Задание выполнено: за 2 час. 54 мин.
  • Чему научился: Чтоб начать сначала партию можно добавить кнопку или ГО и при клике по нему
    chess = new Chess(); // потом сделать заново переинициализацию игровых объектов, перерисовать согласно фен
    return; или  просто перегурзить сцену с помощью функции SceneManager.LoadScene(0)
  • Что было сложным: можно сделать рефакторинг функции  void PickObject(Vector2 fromPosition) спомощью Physics2D.Raycast, узнав имя объекта по которому кликнули
    в функции InitGameObjects() в конце добавляем строчку для тагов к словорю превращения:
    //добавляем tag "PromotionFigures" для всех промоушен фигур предварительно добавив его в список тагов в редакторе Unity
    foreach (GameObject prom in promots.Values)
          prom.tag = "PromotionFigures";

    //пометить, куда может сходить фигура, которую подняли с доски
        void PickObject(Vector2 fromPosition) {
            //если выбираем фигуру для превращения пешки
            if (onPromotionMove != "" && (onPromotionMove[0] =='P' || onPromotionMove[0] == 'p')) {
                // делаем "выстрел" в точке клика мышкой на экране
                RaycastHit2D hit = Physics2D.Raycast(Camera.main.ScreenToWorldPoint(Input.mousePosition), Vector2.zero);
                //если есть коллайдер и данный объект - фигура для выбора превращения пешки
                if (hit.collider != null && hit.collider.tag == "PromotionFigures")
                {
                    //Debug.Log("Target name: " + hit.collider.name);
                    onPromotionMove += hit.collider.name;
                    //делаем ход
                    chess = chess.Move(onPromotionMove);
                }//иначе пропускаем ход и откатываемся
               
                onPromotionMove = "";//убираем флаг превращения пешки
                ShowFigures(); //показваем фигуры после хода
                MarkSquaresFrom();//помечаем клетки с которых фигуры могут сходить
                ShowPromotionFigures();//скрываем фигуры выбора превращений
                return;
            }
            MarkSquaresTo(VectorToSquare(fromPosition)); // MarkSquaresTo("e2");
        }
  • Оценка видео-уроку:
Отчёт от 17425 за Шахматы по сети / Интерфейс. Долгожданное превращение


Отчёт от 17425 за Шахматы по сети / Интерфейс. Долгожданное превращение




Оцени работу

 
Сохранить страницу:

1. --
Евгений Волосатов
Евгений Волосатов
ответить

10558. --
Иван Воронин
Иван Воронин
ответить
→  ser2018  # Шахматы по сети / Интерфейс. Долгожданное превращение / 2018-06-23 07:03

Молодец, интересная альтернатива.


  • Отчёт оценивали:
    791Валерий Жданов+1   17947Dmitry Sinitsin+1   17443WildOrc+1   6452Кирилл Шмойлов+1   17606Виктор+1   16218Дмитрий+1   3922Александр+1   Посетитель+1   18493Evgenii Kudriavtcev+1   3747Сергей+1   1Евгений Волосатов+1   5394Anton+1   Посетитель+1   459Сергей Сергеевич+1   2146Иван+1   17255Слава+1   18816Chai0   8275Tekashnik+1   10558Иван Воронин+1   1901Neverwinter 2+1   16496Pavlin+1   17663Oleksandr+1   17425ser2018+1  

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Закончили реализацию преобразования пешки в одну из фигур при достижении последней горизонтали, а заодно и реализацию всего раздела правил перемещения фигур.



Научился: Всё как всегда коротко и ясно. Проверку реализовал по другому, использовав функцию IsValidMove()