![]() |
|
||||||||||
|
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ну во-первых SoundVolume (давайте все же называть сущности по конвенции) не должен находиться в меню, если отвечает за музыку во всей игре.
Во-вторых, надо сделать в нем метод, управляющий звуком, что наконец-то и название его оправдает)) Канал нам известен в этом классе, и нет смысла отдавать его кому-то. Можно менять громкость прямо на месте, так ведь? Вот и будет и "Sound", и "Volume" при делах. Далее, у Preferences должна быть ссылка на экземпляр SoundVolume, чтобы он мог приказать изменить громкость при изменении настроек. Как всего этого достигнуть? Ну обычно созданием объектов по порядку. То есть звук у Вас создается, очевидно, сразу при запуске игры. То есть в Мейне или другом из старших классов. Если там же будет создаваться и Preferences, то Вы сможете передать ему ссылку на звук прямо на месте, не протаскивая ее через другие сущности. Еще вариант (который я обычно не рекомендую))) это завести публичную переменную в Мейне, до которой можно достучаться из любого места (в чем, собственно, и порочность этого метода). А там, где Вы создаете экземпляр свитчера, у Вас обязана быть ссылка на Preferences, ведь свитчер вносит изменения в настройки. Вот как бы все и связалось. Звук играет все время в любом месте ("расположен" в Мейне), а когда дергаете свитчер в окне настроек, тот посылает событие, окошко настроек звука его ловит и сообщает Preferences, а Preferences дергает метод изменитьГромкость в экземпляре SoundVolume.
__________________
Reality.getBounds(this); |
![]() |
![]() |
Часовой пояс GMT +4, время: 10:07. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|