나는 사운드를 C# XNA 게임으로 프로그래밍하는 다양한 방법에 대해 읽었습니다. 볼륨 컨트롤에 사운드 인스턴스를 사용하기로 결정했으나 .wav를 재생하는 동안 사운드가 완료된 후에 만 다시 재생된다는 것을 알았지 만 사운드 효과 .Play()를 사용하는 대신 인스턴스)는 요청할 때 여러 복사본을 재생하게됩니다. 그래서 내 질문은, 버튼을 누르고 있으면 사운드 파일의 끝까지 기다리는 대신 한 번에 여러 번 (예 : 기관총의 반복 무인 등) 한 번의 사운드 효과가 재생되는 시나리오에서입니다. 루프; 인스턴스를 어떻게 사용 하시겠습니까? 내가 누락되었거나 인스턴스가이 용도로 설계되지 않았다고 가정합니다. 그렇다면 사운드 효과의 기본 옵션과 사운드 이펙트 인스턴스의 기본 옵션 사이의 주요 차이점은 무엇입니까? 미리 감사드립니다.하나의 인스턴스에서 반복되는 사운드
답변
SoundEffectInstance
은 사운드 재생의 단일 인스턴스입니다. 정의 상으로는 한 번에 하나 이상을 재생할 수 없습니다. 물론 동일한 복수의 인스턴스를 가질 수 있습니다 SoundEffect
. 사실, 이것은 기본적으로 SoundEffect.Play()
으로 전화하면 발생합니다 : 인스턴스를 생성하고 재생하고 있습니다.
염두에두고, 당신의 접시에 몇 가지 옵션이 있습니다. 버튼을 누르고있을 때 10 억 개의 소리가 완전히 재생되는 것을 막으려한다면 SoundEffect.Play()
을 사용해서는 안되며 많은 사용자가 많은 인스턴스를 만들 것입니다 (성능이 저하 될 수 있음). 어쨌든 전반적인 관리). 덜 빈번한 소리는 괜찮은 방법 일 수 있습니다.
그렇다면 어떤 방법으로 SoundEffectInstance
을 사용할 수 있습니까? 기본적으로 처음부터 다시 시작할 수 있습니다. 물론 SoundEffectInstance
개의 게임 구성 요소 당 하나 이상 (또는 그 이상)이 여러 개있을 수 있습니다. 이 방법으로 당신의 총 중 하나가 다시 시작될 수 있으며 같은 소리의 다른 총의 인스턴스를 엉망으로 만들 수 없습니다. 또는 성능상의 이유로 사운드 효과 하나당 인스턴스 하나만 선택할 수도 있습니다.
나는 그것에게 "간단한"방법으로 다시 시작하려고 문제를 했어 :
instance.Stop();
instance.Play();
역사적으로이 나를 위해 일한되지 않았습니다; 그것이 당신을 위해한다면, 다음을 무시하십시오 :
인스턴스 당 내 "재시작"플래그를 설정해야했습니다. 당신이) 업데이트 (전화 모든 Sound
에 대한 모든 프레임, 그래서 그들의 컬렉션을 어딘가에 보관하거나 그렇지 않으면 액세스 할 수 있도록해야 할이 방법을
//class that represents one sound effect instance PLUS restart flag
public class Sound
{
SoundEffectInstance instance;
bool restart;
public Sound(SoundEffectInstance i)
{
instance = i;
restart = false;
}
public bool PlayingOrRestarting()
{
return State == SoundState.Playing || restart;
}
public void Update()
{
if (restart)
{
instance.Play();
restart = false;
}
}
public void Play()
{
instance.Play();
}
public void Restart()
{
instance.Stop();
restart = true;
}
public void Stop()
{
instance.Stop();
restart = false;
}
public SoundState State
{
get { return instance.State; }
}
public float Volume
{
set { instance.Volume = value; }
get { return instance.Volume; }
}
public bool IsLooped
{
set { instance.IsLooped = value; }
get { return instance.IsLooped; }
}
}
: 그래서 지금처럼 내 자신과 SoundEffectInstance
클래스를 감쌌다.
- 1. J2ME에서 반복되는 사운드 멈춤
- 2. 사운드 효과 인스턴스에서 음악을 중지하는 대체 방법
- 3. iOS에서 프로그램 전체에서 반복되는 사운드 재생
- 4. 하나의 파일 사운드?
- 5. 하나의 장고 인스턴스에서 "sites framework"
- 6. 일부 사운드 데이터를 하나의 새로운 사운드 데이터로 렌더링합니까?
- 7. 하나의 런타임 인스턴스에서 Java 프로그램 실행
- 8. 하나의 Trac 인스턴스에서 다른 인스턴스로 이동하기
- 9. 하나의 EC2 인스턴스에서 다른 것으로의 파일 동기화
- 10. 어레이의 개별 사운드 순서에 따라 여러 사운드 파일을 하나의 사운드 파일로 컴파일하는 방법은 무엇입니까?
- 11. 하나의 HTML5 오디오 요소가있는 여러 사운드
- 12. 하나의 TFS 인스턴스에서 다른 인스턴스로 특정 변경 집합 적용
- 13. 하나의 인스턴스에서 다른 인스턴스로 상태를 전송하는보다 우아하고 효율적인 방법
- 14. 하나의 모델 인스턴스에서 다른 모델 인스턴스로 ManyToMany 필드 복사
- 15. 하나의 인스턴스에서 여러 파이썬 jsonrpclib 서버를 포킹/멀티 프로세싱해야합니다.
- 16. 하나의 SQLServer 인스턴스에서 여러 DB간에 EF를 사용할 수 있습니까?
- 17. 왼쪽에서 반복되는 텍스처와 오른쪽에서 반복되는 텍스처
- 18. 반복되는 이벤트
- 19. 다중 인스턴스에서 mysql 트리거
- 20. 사운드 파일 중간에서 사운드 트랙로드하기
- 21. 사운드 카드가없는 SIP에서 사운드 재생
- 22. as3 사운드 클래스 사운드 언로드
- 23. 사운드 픽커/시스템 사운드 목록
- 24. Android, 사운드 풀에서 사운드 재생
- 25. NStimer iphone SDK와 동기화 사운드?
- 26. PHP에서 반복되는 문자 확인하기
- 27. 하나의 인스턴스에서 작동하지 않는 PHP 사이트를 통해 하나의 데이터베이스 필드에서 다른 데이터베이스 필드로 값을 전송
- 28. 하나의 클래스가 Flash가있는 여러 플랫폼의 사운드 파일을로드하도록하려면 어떻게해야합니까?
- 29. 여러 개의 사운드 파일을 하나의 파일에 파이썬으로 작성
- 30. 자바에서 호출 된 AS3에서 한 번에 하나의 사운드 재생
감사합니다. 내 쿼리가 완벽하게 정리되었습니다. – GamersIncoming