Это маленькая заметка про то как добавить звук в игру так как в интернете этой информации мало, а разбираться в туче чужого кода я думаю людям будет лень я сделаю это за них. Собственно начнем. Для начала если у Вас еще нет игры то создадим её :) Ссылки на уроки по созданию ищем ниже:
- Пишем игру под Android: Часть 1 — Рисуем картинки на SurfaceView
- Пишем игру под Android: Часть 2 — Создаем первый спрайт
- Пишем игру под Android: Часть 3 — Спрайтовая анимация, работа с несколькими спрайтами
- Пишем игру под Android: Часть 4 — onTouchEvent и определение столкновений
- Пишем игру под Android: Часть 5 — Создание полноценной 2D игры
- Пишем игру под Android: Часть 6: Добавление звука
- Пишем игру под Android: Часть 7: Меню для игры и окно приветствия
- Пишем игру под Android: Часть 8: Фоновая музыка в игре
Если игра у нас уже готовая тогда открываем проект игры и вставляем в шапку класса который наследует класс SurfaceView, извиняюсь за каламбур, следующие строчки:
Шапка класса GameView.java
private SoundPool sounds;
private int sExplosion;
Это мы объявили переменные для проигрыша музыки. Теперь скачиваем вот этот звуковой файл и создаем папку в папке res папку raw, и закидываем туда наш звуковой файл. Вот какая структура должна получиться: Дальше нам нужно в конструкторе класса объявить какой файл проигрывать и в каком количестве, и так пишем в конструкторе вот такое:
Конструктор класса GameView.java
sounds = new SoundPool(10, AudioManager.STREAM_MUSIC,0);
sExplosion = sounds.load(context, R.raw.explosion, 1);
И вставить в место через которое должно проигрываться, в нашем случае это будет столкновение пули (если помните по предыдущему уроку) с врагом
Метод столкновения объектов в классе GameView.java
/*Проверка на столкновения*/
private void testCollision() {
//...
//вот эта строчка добавляется для проигрыша звука
sounds.play(sExplosion, 1.0f, 1.0f, 0, 0, 1.5f);
//...
}
Теперь после того как Вы откомпилируете проект и запустите игру, при выстреле у Вас будет воспроизводиться одинарный звук взрыва. Если есть вопросы задаем не стесняемся, спасибо за внимание. Всегда Ваш dajver.
а как фоновую музыку играть то
ОтветитьУдалитьЯ чуть позже сюда же и добавлю, сейчас времени нет.
ОтветитьУдалитьтак) я вернулся в ряды программерства)) Шикарно,то что мне нужно!
ОтветитьУдалитьспасибо)))
ОтветитьУдалитьа вставлять сюда
ОтветитьУдалить/**Конструктор
public GameThread(GameView view)
{
this.view = view;
}
Можна подробнее описать функцию sounds.play() и ее параметры ?
ОтветитьУдалитьplay(что играем, правое ухо, левое ухо, 0, зацикливаем?, скорость воспроизведения)
Удалить