파티클 발생기 만들기
파티클을 보기 위해서는 먼저 파티클 시스템을 만들어야 하며, 이후에 일부 파티클 유형을 정의하고, 마지막으로 이 작업을 사용해 파티클 발생기를 만들어야 합니다. 발생기를 만들기 위해서는 이 작업을 호출하고 이전에 생성한 파티클 시스템에 발생기를 할당합니다 (자세한 내용은 파티클 시스템 참고) 그 후, 발생기의 고유 ID 값을 저장할 변수를 지정합니다.
중요 사항
변수는 임시 로컬 변수로 플래그 설정할 수 있지만, 이 경우 행동 스크립트나 이벤트가 끝나는 시점에서 폐기됩니다. 이 경우 발생기는 여전히 존재하지만 이를 액세스할 방법이 없어지므로 주의해야 합니다. 일반적으로 발생기는 임시 로컬 변수를 저장할 필요가 없지만, 특정한 경우 (예: 표면에 파티클 그리기 등)에는 필요할 수 있습니다.
지속적인 파티클 시스템
- 파티클 시스템이 지속적인 경우, 각 방의 끝에서 모든 발생기를 파괴한 다음 필요한 경우 다음 방에서 다시 생성하거나, ID 값을 전역 변수에 저장해야 합니다. 그러면 언제든지 모든 방에서 접근할 수 있게 됩니다.
- 또는 지속 객체를 통해 생성하여 그 객체가 유지되고 인스턴스 변수를 통해 접근할 수 있게 할 수 있습니다.
- 게임을 다시 시작할 때는 파티클 시스템을 먼저 파괴해야 하며, 이렇게 하지 않으면 메모리 누수가 발생할 수 있습니다. 메모리 누수는 자원이 메모리에 추가된 후 "참조 해제"되어 더 이상 그 자원과 상호작용할 수 없는 경우 발생합니다. 이로 인해 메모리가 접근할 수 없는 자원으로 가득 차서 게임에 문제를 일으킬 수 있습니다.
작업 구문
인수 설명
| 인수 | 설명 |
|---|---|
| System | 생성할 전역 발생기의 ID 값 |
| Target | 발생기 ID를 저장할 대상 변수 |
예제
위의 작업 블록 코드는 파티클 발생기를 생성하고, 발생기의 영역을 설정한 다음 파티클 흐름을 방출하도록 설정합니다.
// 파티클 시스템을 생성합니다.
var particleSystem = particle_system_create();
// 파티클 발생기를 생성합니다.
var emitter;
emitter = particle_emitter_create(particleSystem);
// 발생기의 영역을 설정합니다.
particle_emitter_region(emitter, x, y, width, height, true);
// 파티클 흐름을 방출하도록 합니다.
particle_emitter_burst(emitter, particle_type, 100);
활용 및 응용 예제
- 게임 맵의 날씨 효과
- 파티클 발생기를 사용하여 비 또는 눈과 같은 날씨 효과를 만들 수 있습니다.
- 폭발 효과
- 적이 파괴될 때 발생하는 폭발 효과에 사용됩니다.
- 레이저 이펙트
- 레이저 발사 시 파티클을 정의하여 시각적으로 강조하는 데 유용합니다.
- 드래곤의 불꽃
- 드래곤 섭취 효과를 나타내기 위한 불꽃 효과를 생성할 수 있습니다.
- 스킬 이펙트
- 플레이어의 스킬 또는 공격력 발동 시 생성하여 시각적으로 표현할 수 있습니다.
이러한 예시를 통해 파티클 발생기의 강력한 활용 가능성을 확인하고 자신의 게임에 창의적으로 적용할 수 있습니다.