content( flash, ios, …rest );

FlashPunk. 5.Звуковые эффекты.

Итак, продолжаем знакомиться с движком FlashPunk.

В этом уроке мы узнаем как добавить и воспроизвести звук в игре, изменить громкость и панорамирование.

  1. Добавление звука.
    Добавить звук в игру настолько же просто как и графику. У нас есть класс Player и мы можем добавить к нему звук под именем «shoot.mp3». Сам файл мы можем положить в папку sounds размещенную в проекте, а в коде звук добавляется следующим образом:

    package
    {
    	import net.flashpunk.Entity;
    
    	public class Player extends Entity
    	{
    		[Embed(source = 'sounds/shoot.mp3')]
    		private const SHOOT:Class;
    
    		public function Player()
    		{
    
    		}
    	}
    }

    Т.о. мы добавили звуковой эффект и привязали его к переменной SHOOT, и теперь можем получить к нему доступ.

  2. Воспроизведение звука.
    В движке FlashPunk звуки создаются и проигрываются с использованием класса Sfx. В коде ниже показано, как создается объект класса Sfx из добавленного звука:

    package
    {
    	import net.flashpunk.Entity;
    	import net.flashpunk.Sfx;
    
    	public class Player extends Entity
    	{
    		[Embed(source = 'sounds/shoot.mp3')]
    		private const SHOOT:Class;
    
    		public var shoot:Sfx = new Sfx(SHOOT);
    
    		public function Player()
    		{
    
    		}
    	}
    }

    Теперь объект класса Player может получить доступ к этому звуку и воспроизвести его с помощью функции play(), как показано ниже:

    package
    {
    	import net.flashpunk.Entity;
    	import net.flashpunk.Sfx;
    	import net.flashpunk.utils.Input;
    	import net.flashpunk.utils.Key;
    
    	public class Player extends Entity
    	{
    		[Embed(source = 'sounds/shoot.mp3')]
    		private const SHOOT:Class;
    
    		public var shoot:Sfx = new Sfx(SHOOT);
    
    		public function Player()
    		{
    
    		}
    
    		override public function update():void
    		{
    			if (Input.pressed(Key.SPACE))
    			{
    				// Возпроизводим звук, когда нажата клавиша ПРОБЕЛ.
    				shoot.play();
    			}
    		}
    	}
    }

    Звук будет воспроизведён один раз. Если нужно зациклить звук, например для создания фоновой музыки, можно использовать функцию loop():

    shoot.loop();

    Для остановки звука используется функция stop():

    shoot.stop();
  3. Громкость и панорамирование.
    Мы можем изменять глобальную громкость и панораму звуковых эффектов используя FP.volume() и FP.pan():

    // Устанавливаем громкость в 50%.
    FP.volume = 0.5;
    
    // Сдвигаем панораму в левый канал.
    FP.pan = -1;

    Также мы можем изменять громкость и панораму для отдельных звуков. Это можно сделать непосредственно в момент запуска звука:

    // Воспроизведение звука на громкости 50% без изменения панорамы.
    mySfx.play(0.5);
    
    // Воспроизведение звука на громкости 100%, панорама смещена в правый канал.
    mySfx.play(1, 1);

    Можно изменять громкость и панораму во время воспроизведения звука:

    // Устанавливаем громкость в 25%.
    mySfx.volume = 0.25;
    
    // Сдвигаем панораму в левый канал на 50%.
    mySfx.pan = -0.5;

    Это всё, до следующего урока! :-)

This entry was posted in FlashPunk. Bookmark the permalink.

2 Responses to FlashPunk. 5.Звуковые эффекты.

  1. farmonol says:

    Интересно, когда же будет следующий урок?

Добавить комментарий