avatar

Пишем игру под Android: Часть 6: Добавление звука

Опубликовал в блог Android
Это маленькая заметка про то как добавить звук в игру так как в интернете этой информации мало, а разбираться в туче чужого кода я думаю людям будет лень я сделаю это за них. Собственно начнем. Для начала если у Вас еще нет игры то создадим её :) Ссылки на уроки по созданию ищем ниже:

  1. Пишем игру под Android: Часть 1 — Рисуем картинки на SurfaceView
  2. Пишем игру под Android: Часть 2 — Создаем первый спрайт
  3. Пишем игру под Android: Часть 3 — Спрайтовая анимация, работа с несколькими спрайтами
  4. Пишем игру под Android: Часть 4 — onTouchEvent и определение столкновений
  5. Пишем игру под Android: Часть 5 — Создание полноценной 2D игры

Если игра у нас уже готовая тогда открываем проект игры и вставляем в шапку класса который наследует класс 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.
6 комментариев RSS
avatar
какой интересный способ писать статьи: спрашиваем сначала на хэшкоде -> переписываем на других сайтах.
avatar
Ну так я ж разобрался уже? А значит можно поделиться. На хэшкоде мне никто ничего не успел сказать.
Комментарий отредактирован 2012-02-25 23:08:54 пользователем dajver
avatar
не в этом дело. когда я читаю статью, я ожидаю что её написал кто-то более опытней чем я, а не тот кто только что вычитал это на другом сайте. иначе зачем мне читать её?
avatar
Ну хотя бы для того что бы разобраться что к чему, я ж не пишу в статье что я супер гуру который разбирается во всем и вся? Я узнал что-то полезное и решил поделиться с обществом, а Вы так агрессивность реагируете.
avatar
Если бы статьи на хабре писали только гуру, их количество было бы в разы меньше. Тем более гуру не объясняют все для «нубов». Здесь человек сам разобрался, понял, что кто-то еще столкнется с такой проблемой и решил поделиться. Не вижу смысла минусовать пост и так аггресивно реагировать.
avatar
так в этом же и заключается смысл плюсов.минусов. Мне не понравилась статья — я поставил минус. Вы же заминусовали мои комментарии, какие тогда вопросы???
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.