Per il suono penso che il problema sia che civic non ha un processore abbastanza potente per gestire sia il gioco che la musica. Di conseguenza a 15 fps ha la metà di roba da calcolare ogni secondo ed ha più spazio per la musica mentre a 30 sfrutta tutto al massimo ottenend dei ritardi.
Esatto...non sarei stato in grado di spiegarlo meglio di così
Ho dato un occhiata nel web per trovare una soluzione .
Tale problema viene riportato su diversi siti internet specializzati in html5 e ne riportavano alcuni metodi per apporvi rimedio.
Facendo però dei test , ho notato che basta togliere sound_loop() (che avevo inserito nella function Player_create(); ) ed inserire sound_play(); ... nella function GameLoop() .
Infatti sound_play(); ora presente nel GameLoop() non ha il problema che ad ogni "step" riparte dal principio ... come avevo immaginato ... bensì al suo termine ricomincia
Quindi su firefox il problema sarebbe risolto... ma ciò mi comporta su Opera una qualità un pò peggiorata.
L'ideale quindi sarebbe quallo di settare in base al browser 2 metodi differenti.
Aggiungo il codice di un metodo alternativo per la risouzione di tale problema , trovato nel web :
Codice: Seleziona tutto
//Questo sistema permette di far partire 2 musiche relative allo stesso file;
1 <audio id="audio_3" controls preload>
2 <source src="/wp-content/uploads/2010/04/html5-audio-loop.ogg">
3 <source src="/wp-content/uploads/2010/04/html5-audio-loop.wav">
4 <source src="/wp-content/uploads/2010/04/html5-audio-loop.mp3">
5 </audio>
6 <audio id="audio_4" controls preload>
7 <source src="/wp-content/uploads/2010/04/html5-audio-loop.ogg">
8 <source src="/wp-content/uploads/2010/04/html5-audio-loop.wav">
9 <source src="/wp-content/uploads/2010/04/html5-audio-loop.mp3">
10 </audio>
1 document.getElementById('audio_3').addEventListener('ended', function(){
2 this.currentTime = 0;
3 this.pause();
4 document.getElementById('audio_4').play();
5 }, false);
6
7 document.getElementById('audio_4').addEventListener('ended', function(){
8 this.currentTime = 0;
9 this.pause();
10 document.getElementById('audio_3').play();
11 }, false);