Редактирование: Класс sound object

Перейти к: навигация, поиск

Внимание! Вы не авторизовались на сайте. Ваш IP-адрес будет публично видимым, если вы будете вносить любые правки. Если вы войдёте или создадите учётную запись, правки вместо этого будут связаны с вашим именем пользователя, а также у вас появятся другие преимущества.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия Ваш текст
Строка 1: Строка 1:
{{DISPLAYTITLE:Класс sound_object}}
 
 
=Описание класса из lua_help=
 
=Описание класса из lua_help=
 
<syntaxhighlight lang="cpp">C++ class sound_object {
 
<syntaxhighlight lang="cpp">C++ class sound_object {
Строка 89: Строка 88:
 
'''Описание параметров'''<br/>
 
'''Описание параметров'''<br/>
 
<code>obj</code> - игровой объект<br/>
 
<code>obj</code> - игровой объект<br/>
<code>timeout</code> - задержка перед проигрыванием звука (в секундах)<br/>
+
<code>timeout</code> - задержка перед проигрыванием звука<br/>
 
<code>position</code> - позиция<br/>
 
<code>position</code> - позиция<br/>
<code>volume</code> - громкость (в диапазоне от 0.0 до 1.0)<br/>
+
<code>volume</code> - громкость<br/>
 
<code>flags</code> - набор констант класса sound_object (looped, s2d, s3d)
 
<code>flags</code> - набор констант класса sound_object (looped, s2d, s3d)
 
==play==
 
==play==
Строка 97: Строка 96:
 
function play(obj, timeout);
 
function play(obj, timeout);
 
function play(obj, timeout, flags);</syntaxhighlight>
 
function play(obj, timeout, flags);</syntaxhighlight>
# методы с одним и двумя аргументами не работают;
+
1) Методы с одним и двумя аргументами не работают.<br/>
# работает только для актора.
+
2) Работает только для актора.<br/>
Метод годится только для проигрывания звуков в голове актора.
+
По сути, этот метод годится только для проигрывания звуков в голове актора.
 
==play_at_pos==
 
==play_at_pos==
 
<syntaxhighlight lang="lua">function play_at_pos(obj, position);
 
<syntaxhighlight lang="lua">function play_at_pos(obj, position);
 
function play_at_pos(obj, position, timeout);
 
function play_at_pos(obj, position, timeout);
 
function play_at_pos(obj, position, timeout, flags);</syntaxhighlight>
 
function play_at_pos(obj, position, timeout, flags);</syntaxhighlight>
# для метода с двумя аргументами, второй аргумент - это позиция на уровне. Звук не перемещается вместе с объектом, а остается играть там, где запустили. Работает и для актора и для других объектов;
+
1) Для метода с двумя аргументами, второй аргумент - это позиция на уровне. Звук не перемещается вместе с объектом, а остается играть там, где запустили. Работает и для актора и для других объектов.<br/>
# метод с тремя аргументами работает как и предыдущий, но появилась возможность установки таймаута;
+
2) Метод с тремя аргументами работает как и предыдущий, но появилась возможность установки таймаута.<br/>
# особенности метода с четырьмя аргументами:
+
3) Особенности метода с четырьмя аргументами:<br/>
#* для актора аргумент position - это смещение звука относительно актора. Звук смещается вместе с актором. Также, необходимо использовать флаг s2d (при s3d звука не будет);
+
- Для актора аргумент position - это смещение звука относительно актора. Звук смещается вместе с актором. Также, необходимо использовать флаг s2d (при s3d звука не будет).<br/>
#* для других объектов аргумент position является позицией на уровне. В этом случае необходимо использовать флаг s3d.
+
- Для других объектов аргумент position является позицией на уровне. В этом случае необходимо использовать флаг s3d.
 
==play_no_feedback==
 
==play_no_feedback==
 
<syntaxhighlight lang="lua">function play_no_feedback(obj, flags, timeout, position, volume);</syntaxhighlight>
 
<syntaxhighlight lang="lua">function play_no_feedback(obj, flags, timeout, position, volume);</syntaxhighlight>
# в случае проигрывания в голове актора - параметр position устанавливает смещение относительно актора; звук перемещается вместе с актором; необходимо использовать флаг s2d (при s3d звука не будет);
+
1) Для актора аргумент position - это смещение звука относительно актора. Звук перемещается вместе с актором. Также, необходимо использовать флаг s2d (при s3d звука не будет).<br/>
# в случае проигрывания в пространстве - параметр position устанавливает позицию проигрывания звука на уровне; необходимо использовать флаг s3d;
+
2) Для других объектов аргумент position является позицией на уровне. В этом случае необходимо использовать флаг s3d.<br/>
# если задано циклическое проигрывание звука, то оно не прекратится, даже если перезагрузить уровень;
+
3) При наличии looped, звук продолжает циклически играть и после перезагрузки сейва.<br/>
# поскольку метод без обратной связи, в процессе проигрывания звука нельзя изменить его громкость, позицию, а также оставить проигрывание.
+
4) Громкость задается в диапазоне от 0.0 до 1.0.<br/>
Данный метод подходит для проигрывания не цикличных звуков, для который не требуется дальнейшее изменение параметров.
+
5) Для этого метода не работает дальнейшее изменение каких-либо параметров, в т.ч. и остановка<br/>
{| style="background-color: #fffdee;" width="100%"
+
Фактически не подходит для проигрывания зацикленных звуков.
|<span style="color:#172172;">'''Внимание!'''</span>
 
----
 
При использовании методов ''play'' и ''play_at_pos'' необходимо сохранять созданный звуковой объект во внешнюю локальную переменную, иначе сборщик мусора затрет звук.
 
|}
 
  
[[Категория:Движок]]
+
'''Совет:''' при использовании методов ''play'' и ''play_at_pos'' - сохраняйте созданный звуковой объект во внешнюю локальную переменную, иначе уборщик затрет ваш звук в игре.

Обратите внимание, что все добавления и изменения текста статьи рассматриваются как выпущенные на условиях лицензии GNU Free Documentation License 1.3 или более поздняя (см. xrWiki:Авторские права). Если вы не хотите, чтобы ваши тексты свободно распространялись и редактировались любым желающим, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого.
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ МАТЕРИАЛЫ, ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ!

To protect the wiki against automated edit spam, we kindly ask you to solve the following CAPTCHA:

Отменить | Справка по редактированию  (в новом окне)