forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   3D-программирование (http://forum.boolean.name/forumdisplay.php?f=12)
-   -   Звук (http://forum.boolean.name/showthread.php?t=4428)

Crystal 13.09.2007 03:01

Звук
 
Мне надо бесконечно проигрывать звук если определённая переменная выше нуля.
Попробовал сделать так:

Код:

Global speedk1#=0
Global zvdvigk1
Global zvdvigk1z#=0

If zvdvigk1z#=1 Then
zvdvigk1=LoadSound("Data\sound\jet_loop.wav")
LoopSound zvdvigk1
PlaySound zvdvigk1
End If

If speedk1#>0 Then zvdvigk1z#=1
If speedk1#=0 Then zvdvigk1z#=0

Вопщем накладывает звук бесконечно.
Там такой резананс получается, что уши закладывает.

Что неправельно делаю? Как резананс убрать?

Raiter 13.09.2007 03:28

Re: Звук
 
Ппц. А не пробовал звук загружать перед началом цыкла, а не после ? ;)

Crystal 13.09.2007 03:50

Re: Звук
 
Пробовал
неполучается чёто

До While Not KeyDown(1) звук играть нехочет
а если ставлю после то резонанс

Crystal 13.09.2007 04:27

Re: Звук
 
Вот упростил до опупения и запихал в самый верх кода

Код:

Global zvdvigk1=LoadSound("Data\sound\jet_loop.wav")
If speedk1#>0 Then LoopSound zvdvigk1
If speedk1#>0 Then PlaySound zvdvigk1

И если увеличиваю переменную speedk1 из функции звука не слышу.
Но если я изначально присвою переменной значение выше нуля то звук играет.

Вопрос:
Почему если увеличиваю переменную из функции музыка не играет?
Переменная увеличивается я её число на экран вывел.
Видно, что увеличивается.
Да и по кораблю движущемуся видно, что переменная выросла ибо эта переменная служит скоростью корабля.

jimon 13.09.2007 08:50

Re: Звук
 
Crystal
может потому что у тебя получается что speedk1 локальная ?
написание с заданием типа speedk1# только потверждает это

Crystal 13.09.2007 09:10

Re: Звук
 
Код:

Global speedk1#=0
Глобальная она

Raiter 13.09.2007 12:29

Re: Звук
 
Я так подозреваю, что и проверка :

If speedk1#>0 Then LoopSound zvdvigk1
If speedk1#>0 Then PlaySound zvdvigk1

у тебя перед цыклом стоит....

Crystal 13.09.2007 15:58

Re: Звук
 
Так о чём и речь! Сейчас поставил перед циклом потому, что если я ставлю после появляется дикий резонанс!

IGR 13.09.2007 16:04

Re: Звук
 
Цитата:

Так о чём и речь! Сейчас поставил перед циклом потому, что если я ставлю после появляется дикий резонанс!
и проверка и тебя перед цыклом ?? ужос !!
проверка должна быть в цыкле !!

Crystal 13.09.2007 16:36

Re: Звук
 
Короче если я ставлю под While Not KeyDown(1) то появляется резонанс.
Если я ставлю под RenderWorld то появляется резонанс.
Если я ставлю над While Not KeyDown(1) то естественно непашет.

jimon 13.09.2007 16:44

Re: Звук
 
мне надоел етот балаган, на :
Код:

global sndWave=LoadSound("Data\sound\jet_loop.wav")
LoopSound sndWave
global chnWave

global play
global start_play
global stop_play

while not keyhit(1)

if keyhit(28) then start_play = 1
if keyhit(57) then stop_play = 1

if start_play = 1 and play = 0 then
chnWave=PlaySound(sndWave)
start_play = 0
play = 1
end if

if stop_play = 1 and play = 1 then
StopChannel chnWave
stop_play = 0
play = 0
end if

wend

нажми ентер - начнется проигровать
нажми пробел - перестанет проигровать

ps. писал в браузере то мож че нето ... подправиш :)
ps2. есно что можно написать заумно ... но пишу специально чтобы понятно было

Crystal 13.09.2007 17:02

Re: Звук
 
Как много кода!
Но работает! Спсибо!

а
Код:

if keyhit(28) then start_play = 1
if keyhit(57) then stop_play = 1

заменил на
Код:

If speedk1#>0 Then start_play = 1
If speedk1#=0 Then stop_play = 1

)

Хотя думаю ещё буду переделывать потому что мне надо код поменьше.


Часовой пояс GMT +4, время: 00:17.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot