forum.boolean.name

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

Максим 17.03.2009 12:18

Xors3D баг со звуком
 
Вот два однотипных кода : Первый для Blitz3d , Второй для Xors3d .
Первый работает как надо , а при запуске второго (Xors3d) глюк кокой-то :dontknow:
Код:

;№1

Type Music
  Field FileName$
  Field Sel
End Type

Graphics3D 1024,768,32,2

folder$="Music"

If FileType(folder$) = 2
                musDir = ReadDir(folder$)
        Repeat 
                  musfile$=NextFile$(musDir) 
                  If Right(musfile$,4)=".mp3" Or  Right(musfile$,4)=".ogg"
                  m.Music = New Music
                  m\FileName = musfile$
                  EndIf
Until musfile$ = ""
CloseDir musDir
EndIf

m.Music = First Music
m\Sel=1
play=1

While Not KeyHit(1)

Flip
Cls

y=0 

kL=KeyHit(208 )
kR=KeyHit(200)
sp=KeyHit(57)

If sp Then play=Not play
For m.Music = Each Music

y=y+1

If kL And m\Sel =1
  m=After m
  If m <> Null
  m\Sel=1
  StopChannel(chMus)
  m=Before m
  m\Sel=0
  kL=0
  EndIf

ElseIf kR    And m\Sel =1
  m=Before m
  If m <> Null
  m\Sel=1
  StopChannel(chMus)
  m=After m
  m\Sel=0
  EndIf
EndIf

If m <> Null
If m\Sel = 0
Color 255,255,255
Text 10,y*10,m\Filename
Else
Color 255,0,0
Text 10,y*10,m\Filename
EndIf
Else
Exit
EndIf

If play And m\Sel
chMus=PlayMusic(m\Filename)
EndIf

Next
   
   
Wend
End

Цитата:

;№2

Include "xors3d.bb"

Type Music
Field FileName$
Field Sel
End Type

xGraphics3d 1024,768,32,0

folder$="Music"

If FileType(folder$) = 2
musDir = ReadDir(folder$)
Repeat
musfile$=NextFile$(musDir)
If Right(musfile$,4)=".mp3" Or Right(musfile$,4)=".ogg"
m.Music = New Music
m\FileName = musfile$
EndIf
Until musfile$ = ""
CloseDir musDir
EndIf

m.Music = First Music
m\Sel=1
play=1

While Not xKeyHit(1)

xFlip
xCls

y=0

kL=xKeyHit(208 )
kR=xKeyHit(200 )
sp=xKeyHit(57)

If sp Then play=Not play
For m.Music = Each Music

y=y+1

If kL And m\Sel =1
m=After m
If m <> Null
m\Sel=1
xStopChannel(chMus)
m=Before m
m\Sel=0
kL=0
EndIf

ElseIf kR And m\Sel =1
m=Before m
If m <> Null
m\Sel=1
xStopChannel(chMus)
m=After m
m\Sel=0
EndIf
EndIf

If m <> Null
If m\Sel = 0
xColor 255,255,255
xText 10,y*10,m\Filename
Else
xColor 255,0,0
xText 10,y*10,m\Filename
EndIf
Else
Exit
EndIf

If play And m\Sel
chMus=xPlayMusic(m\Filename)
EndIf

Next


Wend
End

SBJoker 17.03.2009 12:42

Ответ: Xors3D баг со звуком
 
А что за глюк то?
Опишите проблему подробнее, телепатов нет.

Максим 17.03.2009 12:59

Ответ: Xors3D баг со звуком
 
Звук коряво играет ,кокое-то искажение , и на нажатие клавиш (200 , 208 , 57 ) никак не реагирует .

SBJoker 17.03.2009 15:28

Ответ: Xors3D баг со звуком
 
Насчёт клавиш в ксорсе могут быть свои коды клавиш не как в блитз3д.
А так же проверь не запускаешь ли последовательно музон несколько раз поновой...
В ксорсе используется шквал, а он может играть более одной музыки за раз.
Возможно ты в цикле стартуешь новые копии музыки..и они накладываясь смешиваются.

Mr_F_ 17.03.2009 16:22

Ответ: Xors3D баг со звуком
 
делай примеры проще. обрезай этот, пока в нём не останутся только те строчки, результат которых отличается.
потом, бывает, и сам догадываешься в чём проблема)

Максим 17.03.2009 16:33

Ответ: Xors3D баг со звуком
 
Все разобрался вот код =)
Цитата:

Include "xors3d.bb"

Type Music
Field FileName$
Field Sel
End Type

xGraphics3d 1024,768,32,0

folder$="Music\"

If FileType(folder$) = 2
musDir = ReadDir(folder$)
Repeat
musfile$ = NextFile(musDir)
If FileType(folde$+musfile) = 1 Then
F$ = Lower(Right(musfile,4))
If F=".raw" Or F=".mod" Or F=".s3m" Or F=".mid" Or F=".rmi" Or F=".wav" Or F=".mp2" Or F=".mp3" Or F=".ogg" Or F=".wma" Or F=".asf"
m.Music = New Music
m\Filename = folder$+musfile
EndIf
EndIf
Until musfile = ""
CloseDir musDir
EndIf


m.Music = First Music
m\Sel=1
play=1
playmus=1
While Not xKeyHit(1)

xFlip
xCls


y=0

kL=xKeyHit(208)
kR=xKeyHit(200)

If xKeyHit(57)
play=Not play
playmus=1
EndIf
For m.Music = Each Music

y=y+1

If kL And m\Sel =1 And playmus=0
m=After m
If m <> Null
m\Sel=1
xStopChannel(chMus)
m=Before m
m\Sel=0
kL=0
EndIf

ElseIf kR And m\Sel =1 And playmus=0
m=Before m
If m <> Null
m\Sel=1
xStopChannel(chMus)
m=After m
m\Sel=0
EndIf
EndIf

If m <> Null
If m\Sel = 0
xColor 255,255,255
xText 10,y*10,m\Filename
Else
xColor 255,0,0
xText 10,y*10,m\Filename
EndIf
Else
Exit
EndIf

If play And m\Sel And playmus=1
chMus=xPlayMusic(m\Filename)
playmus=0
EndIf

Next

Wend
End

tormoz 17.03.2009 19:08

Ответ: Xors3D баг со звуком
 
Squall - говно
или ждать пока ксорс переведут на другой звук, или самому что то подрубать

HolyDel 17.03.2009 19:18

Ответ: Xors3D баг со звуком
 
зато бесплатно!
tormoz, а какие ты еще знаешь халявные звуковые движки?

SBJoker 17.03.2009 19:23

Ответ: Xors3D баг со звуком
 
тормоз, при всём уважении, почему говно? Отлично работает.

jimon 17.03.2009 19:28

Ответ: Xors3D баг со звуком
 
у меня squall отлично работает,
идинственое что нету 64-битной версии

tormoz 17.03.2009 21:12

Ответ: Xors3D баг со звуком
 
конкретно в ксорсе он работает отвратительно
возможно, криво подключен

когда переводил проект с блитца в ксорс - пришлось половину звуков отключить
тупо вылетало, без всякой видимой причины.
Листенер вообще ужастный - какое-то квакание вместо нормального звука

Mr_F_ 18.03.2009 13:42

Ответ: Xors3D баг со звуком
 
я подключил BASS и рад.
стоит он всего 100 евро, можно и позволить.

хотя ваще врапанул бы кто-нибудь OpenAL.

HolyDel 18.03.2009 14:06

Ответ: Xors3D баг со звуком
 
OpenAL это слишком уж низкоуровневое АПИ. Прийдется еще врапать что то вроде ogg vorbis, чтобы хотябы файлы можно было проигрывать, а не только последовательности байтов.

moka 18.03.2009 23:50

Ответ: Xors3D баг со звуком
 
Подрубать OpenAL - не рационально, т.к. писать звуковой движок на том же Blitz3D ну это уже совсем не дело. По мне так приятнее иметь готовое, дабы нормально приступать к основной задаче не забивая голову лишней инфой.
Советую Bass (Mr_F_ прав), иль FMod (который будет помощнее имхо, да и юзается многими лидерами игровой индустрии). Свобода там ух какая, а функционал такой, что и 20% юзать не будете. И вам доступ к оутпуту компа, инпуту, отличный 3д, (с 5.1 хз как, вроде фурычит). Работа с почти любыми известными как loss'es форматами, так и самловыми (midi/mod и т.д.). Можно и самому писать звуки цифровым способом. Эффекты, всякие эхо там и много чего динамичного - эта тема кластная, стоит вспомнить звук в HL2 ;). Доступ к любой инфе от текущего звука, вплоть до получения всего частотного пектра - штука для демосценок просто незаменимая! И ещё уйма чего, уже не помню всего..
ЗЫ, Squall - норма для простенького, для серьёзного не подойдёт имхо.

ABTOMAT 19.03.2009 01:13

Ответ: Xors3D баг со звуком
 
fmod стоит... дороже всего остального инструментария вместе взятого


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

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