게임 개발 에서 CocosCreator 를 어떻게 사용 하여 음향 효 과 를 처리 합 니까?

게임 개발 에서 우 리 는 항상 음향 효 과 를 사용 하여 게임 분 위 기 를 조성 해 야 하기 때문에 본 고 는 Cocos Creator 게임 개발 에서 음향 효과 구성 요소 의 포장 과 사용 을 정리 하고 자 한다.
1.Cocos Creator 의 오디 오 재생 기본
1.기초 지식

【1】AudioSource 구성 요소 공식 문서:http://docs.cocos.com/creator/manual/zh/audio/audio.html
【2】cc.audioEngine 공식 문서:http://docs.cocos.com/creator/manual/zh/audio/audio.html
Cocos Creator 는 두 가지 오디 오 재생 방식 을 제공 합 니 다.AudioEngine 과 AudioSource 는 모두 오디 오 를 재생 할 수 있 습 니 다.이들 의 차 이 는 AudioSource 가 구성 요소 이 고 장면 에 추가 할 수 있 으 며 편집기 에서 설정 할 수 있 습 니 다.오디 오 엔진 은 엔진 이 제공 하 는 순수 API 로 스 크 립 트 에서 만 호출 할 수 있다.
공통점:본질 적 으로 AudioClip 오디 오 자원 을 처리 하 는 것 입 니 다.Cocos Creator 편집기 에서 구성 요 소 를 마 운 트 해 야 합 니 다.
개인 적 으로 이것 을 사용 하여 AudioSource 구성 요소 의 재생 소 리 를 바 꾸 는 것 을 권장 합 니 다.인터페이스 가 완비 되 어 있 고 테스트 가 유효 합 니 다.AudioSource 구성 요소 와 유사 한 스 크 립 트 를 패키지 해서 사용 할 수 있 습 니 다.
방식 1:AudioSource 구성 요소 로 재생
빈 노드 를 만 들 고 이 빈 노드 에 다른 구성 요 소 를 추가 합 니 다->AudioSource
스 크 립 트 에 AudioSource 를 미리 설정 하고 실제 수요 에 따라 스 크 립 트 의 대외 인 터 페 이 스 를 보완 합 니 다.다음 과 같 습 니 다.

cc.Class({

	properties: {

		audioSource: {

			type: cc.AudioSource,
			default: null

		},
	},
	play() {

		this.audioSource.play();

	},
	pause() {

		this.audioSource.pause();

	},
});
방식 2:AudioEngine 으로 재생
스 크 립 트 에서 audioClip 자원 대상 을 정의 합 니 다.다음 예제 에서 properties 대상 에 있 습 니 다.
cc.audioEngine.play(audio,loop,volume)를 직접 사용 합 니 다.방송다음 예제 에서 onLoad 중.

cc.Class({

	properties: {

		audio: {

			default: null,
			type: cc.AudioClip

		}

	},
	onLoad() {

		this.current = cc.audioEngine.play(this.audio, false, 1);

	},
	onDestroy() {

		cc.audioEngine.stop(this.current);

	}

});
AudioEngine 이 재생 할 때,이곳 에 들 어 오 는 것 은 url 이 아 닌 완전한 AudioClip 대상 이라는 것 을 주의해 야 한다.그래서 저 희 는 play 인터페이스 에 오디 오 URL 주 소 를 직접 작성 하 는 것 을 권장 하지 않 습 니 다.오디 오 클립 을 정의 한 다음 편집기 에서 오디 오 를 끌 어 오 기 를 바 랍 니 다.
2.상용 방법
【1】구성 요소 AudioSource
play()오디 오 편집 을 재생 합 니 다.
stop()현재 오디 오 편집 을 중단 합 니 다.
pause()는 현재 오디 오 편집 을 중단 합 니 다.
resume()재생 재 개.
【2】음성 시스템 cc.audioEngine
//배경 음악,순환
cc.audioEngine.playMusic(source);
cc.audioEngine.stopMusic(source);
//단음 효과
cc.audioEngine.playEffect(source);
cc.audioEngine.stopEffect(source);
위의 첫 번 째 방법 은 네 이 티 브 플랫폼 에 bug 가 많 기 때문에 우리 게임 은 모두 두 번 째 방법 으로 소 리 를 재생 합 니 다.
2.Cocos Creator 음향 효과 관리 구성 요소 패키지
1.사 운 드 관리 클래스 SoundMgr.ts 만 들 기

const {
	ccclass,
	property
} = cc._decorator;

@ccclass

exportdefaultclassSoundMgr {

	sound_path: string = 'res/sounds/';

	// sound                  key-value    

	sounds: {
		[key: string]: any
	} = {};

	enabled: boolean = true;

	music: string = '';

	//     

	protectedstatic instance: SoundMgr;

	publicstatic getInstance(): SoundMgr {

		if (!this.instance) {

			this.instance = newSoundMgr();

		}

		returnthis.instance;

	}

	//       

	addSound(key: string, clip: cc.AudioClip) {

		this.sounds[key] = clip;

	}

	playFx(fxName: string) {

		if (!this.enabled) return;

		cc.audioEngine.playEffect(this.sounds[fxName], false);

	}

	playMusic(musicName: string) {

		this.music = musicName;

		if (!this.enabled) return;

		cc.audioEngine.playMusic(this.sounds[musicName], true);

	}

	stopMusic() {

		cc.audioEngine.stopMusic();

	}

	setEnabled(enabled: boolean) {

		this.enabled = enabled;

		if (this.enabled) {

			this.playMusic(this.music);

		} else {

			cc.audioEngine.stopAll();

		}

	}

	getEnable() {

		returnthis.enabled;

	}

}
2.초기 화 할 때 오디 오 자원 불 러 오기
Cocos Creator 시각 화 편집 도 구 를 통 해 저 희 는 게임 장면 과 자원 을 다음 과 같이 설정 합 니 다.

sounds 는 코드 를 통 해 동적 으로 불 러 오기 때문에 모든 사 운 드 파일 을 저장 하 는 sounds 폴 더 를 resources 폴 더 에 저장 합 니 다(위의 그림 참조).
그리고 GameMgr.ts 를 새로 만 들 고 Canvas 노드 에 마 운 트 합 니 다.

onst {
	ccclass,
	property
} = cc._decorator;

importSoundMgrfrom "SoundMgr";

@ccclass

exportdefaultclassGameMgrextends cc.Component {

	loadSounds() {

		//                   resources     

		cc.loader.loadResDir('sounds', cc.AudioClip, function(err, clips) {

			console.log("load clips:", clips);

			if (err) {

				console.log("err:", err);

			}

			for (let i = 0; i

				SoundMgr.getInstance().addSound(clips[i].name, clips[i]);

			}

		});

	}

	onLoad() {

		this.loadSounds();

		console.log("sounds:", SoundMgr.getInstance().sounds);

	}

	onPlayClick() {

		console.log("play");

		SoundMgr.getInstance().playMusic('spring_music');

	}

	onPauseClick() {

		console.log("pause");

		SoundMgr.getInstance().stopMusic();

	}

}
GameMgr 사용자 정의 구성 요소 의 onLoad 방법 에서 loadSounds 를 사용 하여 게임 에 필요 한 모든 음성 자원 을 불 러 옵 니 다.동시에 GameMgr.ts 에서 재생 과 정지 인터페이스 방법 인 onPlayClick 과 onPauseClick 방법 을 제공 합 니 다.
재생 과 일시 정지 단 추 를 호출 할 수 있 습 니 다.
3.재생 및 일시 정지

4.테스트 실행

음성 자원 을 모두 불 러 오 는 데 성 공 했 고 재생 과 일시 정지 단 추 를 누 르 면 테스트 를 통과 할 수 있 습 니 다.

주의사항
메모:오디 오 재생 과 관련 된 설정 이 완 료 된 후에 도 일부 브 라 우 저 에서 미리 보 거나 실행 할 때 소 리 를 듣 지 못 한다 면 브 라 우 저 호환성 으로 인 한 문제 일 수 있 습 니 다.예 를 들 어 크롬 은 웹 오디 오의 자동 재생 을 사용 하지 않 습 니 다.오디 오 는 기본적으로 웹 오디 오 방식 으로 불 러 오고 재생 합 니 다.이 때 사용 자 는 자원 관리자 에서 오디 오 자원 을 선택 한 다음 속성 검사 기 에서 오디 오 로드 모드 를 DOM Audio 로 수정 해 야 브 라 우 저 에서 정상적으로 재생 할 수 있 습 니 다.

이상 은 게임 개발 에서 CocosCreator 를 어떻게 사용 하여 음향 효 과 를 처리 하 는 지 에 대한 상세 한 내용 입 니 다.더 많은 CocosCreator 음향 효과 처리 에 관 한 자 료 는 저희 의 다른 관련 글 을 주목 해 주 십시오!

좋은 웹페이지 즐겨찾기