#swift
Вопрос:
таким образом, у меня нет модели для нее, поэтому у нее много «если», и как я могу создать цикл, чтобы исправить это?
@State var player1show = true
@State var player2show = true
@State var player3show = true
@State var player4show = true
func closeall() {
if !player1show{
player1show.toggle()
player1.stop()
}
if !player2show{
player2show.toggle()
player2.stop()
}
if !player3show{
player3show.toggle()
player3.stop()
}
...
}
Комментарии:
1. Вы не предоставили достаточно подробностей, чтобы объяснить, почему ваш код структурирован так, как он есть, но я могу догадаться, что это шаблон, который я часто вижу при обучении программированию. Вместо того , чтобы делать такие вещи, как
player2show
создание массиваplayershow
или что-то в этом роде, чтобы вы могли это делатьfor i in 0..<numberOfPlayers { if !playershow[i] { ... } }
.2. @deaton.dg Спасибо
Ответ №1:
- «плеер» — это экземпляр класса Player, который имеет свойство «показывать» (или метод), а также методы toggle() и stop(). Возможно, у вас есть базовый класс и виртуальные переопределяемые методы для этого. Это не обязательно, но наличие базового класса для всех игроков-хорошая практика, поэтому вы можете указать больше для каждого типа игроков.
- «игроки» — это массив или список всех активных игроков в игре. Вы должны вести этот список.
for player in players { if !player.show { player.toggle() player.stop() } }
Надеюсь, это даст вам представление!
Комментарии:
1. Для этого не нужен базовый класс, достаточно протокола.