Показать сообщение отдельно
Старый 29.03.2011, 13:49   #9
moka
.
 
Регистрация: 05.08.2006
Сообщений: 10,429
Написано 3,454 полезных сообщений
(для 6,863 пользователей)
Ответ: Наборное устройство

Кеура, в твоём участке кода, где ты находишь дочерние объекты, 8 строк, и есть закономерность. Если ты захочешь их всех по очереди перебрать, это будет не так и просто.
А с массивом намного проще. Смотри, доступ к переменной теперь будет посредством индекса, например если тебе нужно проверить если объект который нажали, будет цикл:

Глобальная переменная, хранит индекс кнопки, которая была наведёна, чтобы при отведении, скрыть её спрайт.
lastPickedButton%
Далее в цикле мы присваиваем временную переменную (я обычно присваивал, а не ссылался к функциям, как-то внушает больше доверия.
Затем проверяем, если объект на который навели уже не тот что в прошлый раз, тогда скрываем тот что был, и идём дальше. Либо если вообще нету наведённого (равен нулю), тогда пропускаем скрытие. Далее перелистываем массив объектов (button), и если объект равен тому на который камера нажала, показываем спрайт (spriteNumber) с числом, который заранее был поставлен на позицию чуть выше кнопки и спрятан.
Если хоть один объект наведён, то будет назначено значение последней наведённой кнопки (lastPickedButton).
pickedEntity% = PickedEntity()
If (lastPickedButton = 0 OR button[lastPickedButton] <> pickedEntity)
  If (lastPickedButton <> 0)
    HideEntity spriteNumber[lastPickedButton]
    lastPickedButton = 0
  EndIf
  For i=1 To 8
    If (button[i]=pickedEntity)
      lastPickedButton = i
      ShowEntity spriteNumber[i]
    EndIf
  Next
EndIf
ЗЫ, писал в броузере, могут быть ошибки. Думаю идея ясна.
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
LLI.T.A.L.K.E.R. (29.03.2011)