|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
BUG AUDIO !!! Forse più dii uno...
Provate questo codice:
Codice:
package it.diamonds; import it.diamonds.engine.audio.*; public class ProvaSound { public static void SleepOneSecond() { try { Thread.sleep(1000); } catch(InterruptedException e) { /* Nothing to do here */ } } /** * @param args */ public static void main(String[] args) { Audio audio = new Audio(); Sound sound1 = new Sound("diamond"); Sound sound2 = new Sound("diamond"); Sound sound3 = new Sound("diamond"); sound1.play(); SleepOneSecond(); sound2.play(); SleepOneSecond(); sound3.play(); SleepOneSecond(); sound2.play(); SleepOneSecond(); sound1.play(); SleepOneSecond(); } Un altro bug... In pratica se il suono viene riprodotto una prima volta, la seconda non viene riprodotto... In particolare mi riferisco al suono della gemma che tocca il fondo... Codice:
public void play() { if(!testing) { AL10.alSourcePlay(source); } wasPlayed = true; } Potete vederlo facilmente facendo arrivare in fondo (in colonne diverse) due gemme... |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jul 2002
Città: Reggio Calabria -> London
Messaggi: 12112
|
ehm...
a me capita che se faccio cadere la gemma la prima non produce il suono mentre la seconda si....
__________________
![]() |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Hmmm... e' un problema della libreria?
O piu' facilmente stiamo facendo noi qualcosa di sbagliato? Nell'ordine inverso: prima assicuriamoci di pilotare la libreria in maniera corretta e poi, quando siamo sicuri che il problema non e' nostro, ricontrolliamo che stiamo pilotando la libreria in maniera corretta. E poi, concludiamo che il problema e' loro.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
![]() |
![]() |
![]() |
#4 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ho risolto il problema, ma non ho capito il perchè si presentava...
Modificando GemFactory da così: Codice:
package it.diamonds; import it.diamonds.engine.audio.Sound; public class GemFactory { public GemFactory() { } public Gem create() { Gem gem = new Gem("diamond"); gem.setCollisionSound(new Sound("diamond")); return gem; } } Codice:
package it.diamonds; import it.diamonds.engine.audio.Sound; public class GemFactory { Sound sound; public GemFactory() { sound = new Sound("diamond"); } public Gem create() { Gem gem = new Gem("diamond"); gem.setCollisionSound(sound); return gem; } } Comuqnue il problema di fondo rimane... Come mai la prima soluzione non funzionava ? Ultima modifica di cionci : 17-11-2005 alle 14:17. |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Sono riuscito a riprodurre il problema (ovvviamente con la prima versione di GemFactory):
Codice:
public static void main(String[] args) { Audio audio = new Audio(); GemFactory gemFactory = new GemFactory(); Gem gem = gemFactory.create(); gem.drop(); SleepOneSecond(); gem = gemFactory.create(); gem.drop(); SleepOneSecond(); gem = gemFactory.create(); gem.drop(); SleepOneSecond(); gem = gemFactory.create(); gem.drop(); SleepOneSecond(); gem = gemFactory.create(); gem.drop(); SleepOneSecond(); } |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
C:\cruisecontrol-2.3.0.1\work\checkout\diamonds\trunk\src\it\diamonds\GemFactory.java:7:11: Variable 'sound' must be private and have accessor methods.
Lanciate lo script di build sempre e comunque prima del commit.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Hai ragione
![]() |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
E che kaiser... Devo riportare il tutto alla prima versione... Altrimenti nella copia di GemFactory all'interno di GemFactoryForTesting si cerca di allocare un Sound e di conseguenza non essendo l'audio inizializzato falliscono praticaemnte tutti i test...
|
![]() |
![]() |
![]() |
#10 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ho fatto così, altrimenti la copia di GemFactory in GemFactoryForTesting inizializzava un sound e creava un'eccezione...ovviamente è passibile di refactoring...
Codice:
package it.diamonds; import it.diamonds.engine.audio.Sound; public class GemFactory { private Sound sound = null; public GemFactory() { } public Gem create() { if(sound == null) { sound = new Sound("diamond"); } Gem gem = new Gem("diamond"); gem.setCollisionSound(sound); return gem; } } |
![]() |
![]() |
![]() |
#12 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
|
|
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Puoi postare il codice di GemFactoryForTesting?
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Codice:
package it.diamonds; public class GemFactoryForTesting extends GemFactory { public GemFactoryForTesting() { } public Gem create() { return Gem.createForTesting(); } } |
![]() |
![]() |
![]() |
#15 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
Eredita strettamente sempre e solo per modellare relazioni "is a" che soddisfano il principio di sostituzione. GemFactory dev'essere solo un'interfaccia, con due implementazioni: - GameGemFactory - GemFactoryForTesting E non c'e' bisogno di alcun hack, perche' il tuo problema sparisce da solo.
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Ehm...io te lo avevo chiesto su MSN se dovevo fare l'interfaccia... Probabilmente ho capito male quello che mi hai detto
![]() |
![]() |
![]() |
![]() |
#17 |
Senior Member
Iscritto dal: Apr 2001
Città: Bari
Messaggi: 2776
|
Comunque è necessario fare anche un discorso relativo all'hardware. Cioè, così come per l'OpenGL, anche la scheda audio del PC deve supportare OpenAL e a dire la verità al riguardo non sono molto esperto. In ogni caso, prima di parlare di bug della libreria (decisamente improbabile visto che OpenAL è usato in Quake 4, UT2004 ed in innumerevoli titoli), sarebbe il caso di verificare il funzionamento di OpenAL con il codice dei tutorial che, teoricamente, dovrebbe essere corretto.
|
![]() |
![]() |
![]() |
#18 | |
Senior Member
Iscritto dal: Oct 2002
Città: San Jose, California
Messaggi: 11794
|
Quote:
![]()
__________________
"We in the game industry are lucky enough to be able to create our visions" @ NVIDIA |
|
![]() |
![]() |
![]() |
#19 | |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Quote:
![]() |
|
![]() |
![]() |
![]() |
#20 |
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Allora si fa così... Per ora lascio il codice con il bug (aggiorno comunque aggiungendo l'interfaccia)...così almeno tutti lo possono testare...
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 23:02.