Пятница, 27 Декабря 2024, 06:15

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
Select в RTS
LetsOffBrainsДата: Четверг, 07 Июня 2012, 20:10 | Сообщение # 1
Project SoRDeLKa
Сейчас нет на сайте
Вот, сам помучился и решил спросить. Как сделать выбор нескольких объектов по типу RTS?
Объясню, но это читать не обязательно, если понятно. Зажимается левая кнопка мыши, в точке начала будет 1-ый угол "прямоугольника выбора" (SelectionBox), ведется в произвольную сторону, при этом противоположный угол тянется за мышью, при отпускании мыши выполняется действие: записываются массив по Y1 OID, по Y2 UID объектов попавших в этот прямоугольник.
Позже можно правой кнопкой мыши приказать всем выбранным объектам перейти к позиции мыши с помощью поведения RTS.

Проблема в том, чтобы правильно записывать данные в массив, а потом их оттуда грамотно доставать, для передвижения.
Есть кто умный или проинформированный?

P.S. Может что лишнего написано.



ArmaggeDroidДата: Четверг, 07 Июня 2012, 20:19 | Сообщение # 2
участник
Сейчас нет на сайте
Объедини всех юнитов в семью, и по X-у записывай UID объекта (в цикле, по моему, нужно использовать .Count для определения их кол-ва). Доставай их оттуда тоже циклом, есстессно, предварительно записав куда-нибудь число объектов. И не забудь массив расширять, а то может всё не поместиться. Опыта у меня в создании RTS немного, но должно получиться.

QuaDreams Team

Сообщение отредактировал ArmaggeDroid - Четверг, 07 Июня 2012, 20:19
allxumukДата: Четверг, 07 Июня 2012, 20:24 | Сообщение # 3
старожил
Сейчас нет на сайте
Вот исходник без применения массива, может этого хватит? Могу ещё и с массивом сделать.

Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
Vovik123Дата: Четверг, 07 Июня 2012, 20:33 | Сообщение # 4
частый гость
Сейчас нет на сайте
Я не в первый раз слышу про семью, но так и не понял. Семья - это Глобальная переменная?
LetsOffBrainsДата: Четверг, 07 Июня 2012, 20:34 | Сообщение # 5
Project SoRDeLKa
Сейчас нет на сайте
А если будут взаимоисключаемые типы юнитов? Например здание нельзя выбрать вместе с солдатами.)

Семьи - это объекты, объединенные в одну группу "Семью".
Типа можно сделать 2 типа врагов и отдельно для каждого делать действие попадания в него пули или же можно добавить их в семью и попадание пули соотносить с группой, что уменьшает объем "кода".





Сообщение отредактировал LetsOffBrains - Четверг, 07 Июня 2012, 20:36
allxumukДата: Четверг, 07 Июня 2012, 20:38 | Сообщение # 6
старожил
Сейчас нет на сайте
Quote (Vovik123)
Семья - это Глобальная переменная?

Нет, семья - это группа разных объектов, к которым можно обращаться одновременно не уточняя к какому именно. Допустим есть у тебя Sprite1 и Sprite2, они в семействе Family, к ним можно применить общее событие, например:
Family.On collision with another object - будет проверять не столкнулся ли Sprite1 или Sprite2 с чем-то.

LetsOffBrains, вот с массивом что-то геморройно получается. В принципе и без него работает, так ли он необходим?

----------------------

Quote (LetsOffBrains)
А если будут взаимоисключаемые типы юнитов? Например здание нельзя выбрать вместе с солдатами.)

Но эта проблема остаётся и с массивом, нужно как-то дополнительно проверять или выбирать строения только по клику.


Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
LetsOffBrainsДата: Четверг, 07 Июня 2012, 20:40 | Сообщение # 7
Project SoRDeLKa
Сейчас нет на сайте
Массив не нужен, раз уж без него можно обойтись, просто думал, что именно так нужно это решать.


Vovik123Дата: Четверг, 07 Июня 2012, 21:47 | Сообщение # 8
частый гость
Сейчас нет на сайте
А как объединять в семьи? Так мне на будущие...
allxumukДата: Четверг, 07 Июня 2012, 22:09 | Сообщение # 9
старожил
Сейчас нет на сайте
Vovik123, в свойствах объекта (слева), пункт Groups, в нём пункт Families. Жмёшь Add и выбираешь существующую семью или создаёшь новую.

Любой дурак может написать программу, которую поймёт компилятор.
Хорошие программисты пишут программы, которые смогут понять другие программисты.
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг