на Главную Вход Регистрация Забыли пароль ?

skype: megainformatic, телеграм: megainformatic, онлайн-чат (megainformatic live chat), форма обратной связи

Онлайн Школа Компьютерных Наук Андрея Синицина

Онлайн Школа Компьютерных Наук Андрея Синицина - автор

Добро пожаловать в нашу школу ! Давайте вместе откроем путь к новым перспективам !!!

Создание игры на java и libgdx - урок 4 - воспроизведение в игре звуков и музыки





enterra игра

если кликать картинку она будет последовательно меняться в размерах от 640 до 1280 пиксель.
В предыдущей статье - Создание игры на java и libgdx - урок 3 - генерация пола для сцены, взятие бонусов мы рассмотрели генерацию пола и взятие бонусов. Настало время двигаться дальше. Для создания кода воспроизведения в игре звуков и музыки Вам нужно скачать игру со страницы - игра enterra и взять их из папок - assets\music\ assets\sounds\ После этого скопируйте их в такие же папки вашего проекта, как уже копировали другие файлы ресурсов в предыдущих уроках. Для проигрывания звука в игре нужно выполнить следующие действия: Объявить в классе Enterra 2 поля - private Sound testSound1; //для хранения самого объекта звука private long testSound1PlayId; //и его идентификатора после строк import в самом начале файла my_java_game\core\src\com\mygdx\game\MyJavaGame.java добавить строку import com.badlogic.gdx.audio.Sound; чтобы можно было использовать класс Sound из libgdx. в методе private void initGameSounds() { } добавим такой код - private void initGameSounds() { testSound1 = Gdx.audio.newSound(Gdx.files.internal("assets/sounds/test_sound_1.wav")); testSound1PlayId = -1L; } Сам вызов метода добавим в конце метода create - public void create () { //... inkyCollisionRect.height = 70; //после данной строки добавим - initGameSounds(); } В нужном месте кода, когда потребуется воспроизвести звук, добавим строку - testSound1PlayId = testSound1.play(); например в ответ на сбор бонуса можно воспроизводить звук. Тогда в методе private void testPlayerCollisionWithBulletBonuses() { строки кода if ( scene1BulletBonusesType[i] == 1 ) { } изменим на - if ( scene1BulletBonusesType[i] == 1 ) { testSound1PlayId = testSound1.play(); //теперь при сборе красного бонуса будет слышен звук } Также в методе public void dispose () { нужно добавить строку testSound1.dispose(); для освобождения памяти выделенной под загрузку объекта звука и его данных по завершению работы игры. Как видите суть работы со звуками очень проста, единственный момент - для чего нужно поле testSound1PlayId ? Оно может потребоваться, если мы захотим менять какие-то параметры звука, например его громкость. Тогда нам после того, как значение поля testSound1PlayeId > -1 достаточно будет вызвать строку кода - testSound1.setVolume(testSound1PlayId, soundVolume); в которой переменная soundVolume будет задавать требуемую для звука громкость. Мы еще вернемся к вопросу регулировки уровня громкости звуков в нашей, игре, а теперь давайте по-аналогии со звуками научимся проигрывать музыкальные mp3 файлы - т. е. в игре появится музыка. Код для проигрывания mp3 будет очень похож на код для проигрывания звуков, с той лишь разницей, что будет применяться не класс Sound, а класс Music. [скоро здесь будет ссылка на новый урок, следите за обновлениями !!!]
оцените статью:
0
Понравилось!
0
Не понравилось!
 

Оставленные комментарии


megainformatic 2006 - 2024 карта сайта




Посетили страницу: 7