воспроизводить звуки
This commit is contained in:
65
380.звуки.js
Normal file
65
380.звуки.js
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
function Звуки(ключники, события) {
|
||||||
|
this.создать = function() {
|
||||||
|
this.задано = {};
|
||||||
|
this.загружено = {};
|
||||||
|
события.подписать(this);
|
||||||
|
var тут = this;
|
||||||
|
ключники.push(function(ключ, путь, значение) {
|
||||||
|
тут.обработатьКлюч(ключ, путь, значение);
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
this.обработатьКлюч = function(ключ, путь, значение) {
|
||||||
|
if (!путь[0].startsWith("звуки"))
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
var имя = путь[1];
|
||||||
|
var свойство = путь.slice(2).join(".");
|
||||||
|
|
||||||
|
if (!this.задано[имя])
|
||||||
|
{
|
||||||
|
this.задано[имя] = {};
|
||||||
|
}
|
||||||
|
this.задано[имя][свойство] = значение;
|
||||||
|
};
|
||||||
|
|
||||||
|
this.обработатьСобытие = function(событие) {
|
||||||
|
for (var имя in this.задано)
|
||||||
|
{
|
||||||
|
var значения = this.задано[имя];
|
||||||
|
if (!значения.файл)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
for (var свойство in значения)
|
||||||
|
{
|
||||||
|
if (свойство.startsWith("события"))
|
||||||
|
{
|
||||||
|
var значение = значения[свойство];
|
||||||
|
if (событие == значение)
|
||||||
|
{
|
||||||
|
this.воспроизвести(значения.файл);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
this.воспроизвести = function(файл)
|
||||||
|
{
|
||||||
|
if (!this.загружено[файл])
|
||||||
|
{
|
||||||
|
this.загружено[файл] = new Audio(файл);
|
||||||
|
}
|
||||||
|
var звук = this.загружено[файл];
|
||||||
|
звук.pause();
|
||||||
|
звук.currentTime = 0;
|
||||||
|
звук.play();
|
||||||
|
};
|
||||||
|
|
||||||
|
// Конструктор.
|
||||||
|
this.создать();
|
||||||
|
}
|
||||||
@@ -11,4 +11,5 @@
|
|||||||
// Запустить.
|
// Запустить.
|
||||||
мир.физика.создать();
|
мир.физика.создать();
|
||||||
мир.столкновения.создать();
|
мир.столкновения.создать();
|
||||||
|
мир.звуки = new Звуки(мир.ключники, мир.события);
|
||||||
мир.обновить();
|
мир.обновить();
|
||||||
|
|||||||
@@ -414,11 +414,6 @@ function ПодкидываниеСтрелы() {
|
|||||||
мир.подкидываниеСтрелы = new ПодкидываниеСтрелы();
|
мир.подкидываниеСтрелы = new ПодкидываниеСтрелы();
|
||||||
мир.подкидываниеСтрелы.завершить = function() {
|
мир.подкидываниеСтрелы.завершить = function() {
|
||||||
мир.подкидываниеСтрелы = null;
|
мир.подкидываниеСтрелы = null;
|
||||||
|
|
||||||
/**/var audio = new Audio("р/звуки/543927__eminyildirim__pistol-gun-cocking.wav");
|
|
||||||
/**/audio.play();
|
|
||||||
/**/console.debug("воспроизвели аудио");
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -431,7 +426,7 @@ function ОтладкаСобытий() {
|
|||||||
this.обработатьСобытие = function(событие) {
|
this.обработатьСобытие = function(событие) {
|
||||||
if (событие == "закинули стрелу")
|
if (событие == "закинули стрелу")
|
||||||
{
|
{
|
||||||
console.debug("событие", событие);
|
//console.debug("событие", событие);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -60,6 +60,7 @@
|
|||||||
<script src="320.игрок.js"></script>
|
<script src="320.игрок.js"></script>
|
||||||
<script src="340.слежение.js"></script>
|
<script src="340.слежение.js"></script>
|
||||||
<script src="360.маскиПрыжков.js"></script>
|
<script src="360.маскиПрыжков.js"></script>
|
||||||
|
<script src="380.звуки.js"></script>
|
||||||
<script src="400.столкновения.js"></script>
|
<script src="400.столкновения.js"></script>
|
||||||
<script src="700.пуск.js"></script>
|
<script src="700.пуск.js"></script>
|
||||||
<script src="800.пример.json.js"></script>
|
<script src="800.пример.json.js"></script>
|
||||||
|
|||||||
Reference in New Issue
Block a user