2016-06-23 10 views

ответ

1

Это что-то действительно смутило меня в Construct 2, исходящем из фона программного обеспечения.

Выбор того, какие экземпляры спрайта для работы работает подобно фильтрации базы данных. Вы начинаете со всех экземпляров в списке, а затем фильтруете их с использованием условий. Когда возможно, Construct 2 автоматически угадает, какой экземпляр вам нужен. (Как если бы вы только что создали Enemy на EnemySpawn, он будет знать, что ваша следующая ссылка Enemy - только последняя, ​​созданная).

Это волшебно работает большую часть времени, но вы можете выбрать набор объектов с несколькими из этих условий:

Сравнить экземпляр переменной Сравните текущее значение одного из переменных экземпляра объекта.

Является ли значение переменной экземпляра boolean Проверьте, если для одной из переменных булевого экземпляра объекта установлено значение true. (Invert условия, чтобы проверить, если ложно.)

Пика по уникальному идентификатору (UID) Выберите экземпляр, соответствующий номер дается уникальный идентификатор (UID).

По моему опыту, добавление переменной экземпляра и установка его для отслеживания подмножества Sprites или состояния спрайта - это самый чистый способ ограничить действие определенной группой спрайтов.

Смотрите также Object Expressions из Руководства Scirra:

Вы можете добавить индекс объекта 0 на основе получить выражения из различных экземпляров объекта. Например, Sprite (0) .X получает первую позицию X экземпляра Sprite, а Sprite (1) .X получает позицию X второго экземпляра. Для получения дополнительной информации см. Идентификаторы индексов (IID) в общих функциях. Вы также можете передать другое выражение для индекса. Отрицательные числа начинаются с противоположного конца, поэтому Sprite (-1) .X получает последнюю позицию X Sprite.

Это не «конкретные» идентификаторы объектов (Construct 2 называет их идентификаторами индексов или IID), но ссылаются на все объекты этого типа в том порядке, в котором они были созданы.

Итак:
Enemy(0) является первым
Enemy(-1) является самым последним
Enemy(5) является шестым врагом создал, игнорируя разрушенные спрайты (см ниже).

Вы должны иметь в виду, что если вы уничтожите объект с помощью IID 3, тогда все объекты после него сдвинутся в списке, а их IID уменьшится на единицу.(Как и структуры данных LinkedList)

Если вы уничтожите экземпляр D, остальные смещаться

Instance |A|B|C|D|E|F|  -->  |A|B|C|E|F| 
IID  |0|1|2|3|4|5|  -->  |0|1|2|3|4| 

Надеется, один из этих методов могут помочь вам получить то, что вам нужно!

 Смежные вопросы

  • Нет связанных вопросов^_^