GAME MAKER 강좌
KAYAN
이번에는 이전 강좌에서 알아본 함수를 응용하여 파티클을 생성해봅시다.
(▲ 파티클)
◈ 기초 응용
간단하게 몸풀기용으로 아래와 같은 파티클을 생성해볼겁니다.
(▲파티클 생성)
음. 보기에는 뭔가 좀 복잡해보이지요.
위의 그림은 해당 오브젝트의 위치에서 별모양의 파티클을 360도 방향으로 분출시키게 됩니다.
그리고 생성된 파티클은 점점 투명해지다가 사라지는 것이지요.
어떠한 파티클을 사용할지는 아래의 그림에서 찾으시면 됩니다.
(▲ 파티클의 종류)
별모양이니 pt_shape_star 이군요.
일단 파티클을 설정할 오브젝트를 하나 만듭시다.
(▲ 파티클을 설정하게될 오브젝트)
강좌에서 파티클을 설정하는 순서는 다음과 같습니다.
처음에 해야 할 것은 파티클을 관리할 파티클 시스템을 만드는 것입니다.
두번째는 파티클 타입의 모양과, 이동에 대해 설정을 하게 됩니다.
세번째는 파티클을 생성하기 위해 파티클 이미터를 만드는 것이지요.
순서대로 한번 만들어 봅시다.
Create 이벤트를 추가하고, 파티클 시스템부터 만듭니다.
★ Create 이벤트 |
그리고 파티클 타입을 만들어야 겠지요.
강좌에서 만들어야 할 파티클은 아래와 같은 형식으로 생성되는 것입니다.
(▲ 파티클 생성)
이것이 여러개가 한꺼번에 생성되면 현재 우리가 만들고자 하는 형태가 되는 것이지요.
Create 이벤트에 위와 같은 형태의 파티클 타입을 구성하도록 합시다.
★ Create 이벤트 |
파티클의 모양은 pt_shape_star 이었지요.
그리고 파티클의 수명을 정하는데 수명을 최소값과 최대값을 같게 하면 지정한 시간내에 동일하게
파기되고, 최소값과 최대값을 다르게 하면 그 범위내에 랜덤 값으로 결정된 시간에 파기됩니다.
크기도 마찬가지입니다. 동일한 크기로 생성되게 하려면 최소값과 최대값을 같게하고, 랜덤 크기로
생성되게 하려면 다르게 설정하면 됩니다.
색상은 이전 강좌에서 알아보았듯이 지정한 색상으로 전환시켜요.
part_type_color1은 파기될때까지 1가지 색으로, part_type_color2는 2가지 색으로 part_type_color3은
지정한 3분기의 색으로 천천히 전환되는 겁니다..
투명도(part_type_alpha) 역시 파기될때까지 지정한 값으로 전환되게 하지요.
위와 같이 하면 별모양의 파티클이 30~60 스텝의 랜덤값으로 수명을 설정하고, 0.2~0.8 사이의
랜덤 값의 크기로 생성되어, 생성될때는 노란색(c_yellow)으로 생성되며 점차 빨간색(c_red)으로
변하게 됩니다.
그리고 파기될때까지의 투명도는 1~0으로 변하게 되는 것이지요.
기초적은 파티클의 기본 설정은 되었습니다. 이제 이 파티클을 이동 시켜 봅시다.
★ Create 이벤트 |
이동은 최소값과 최대값을 다르게 하면 범위내에 랜덤방향으로 이동하게 됩니다.
part_type_orientation 은 파티클 이미지의 방향을 결정하는 함수입니다. 파티클이 지정한 방향으로
이동할 때 그 방향으로 이미지를 회전시켜 주는 것이지요.
후~ 파티클 설정은 끝났습니다.
다음은 파티클 이미터를 통해 설정한 파티클을 분출시켜 봅시다.
★ Create 이벤트 |
이것은 x, y의 위치의 32 X 32 크기 범위 안에서, 랜덤 위치에 파티클을 생성하는 것입니다.
파티클 생성 범위를 지정하는 함수 이전 강좌에서 알아보았듯이 다음과 같은 함수를 사용하지요.
part_emitter_region(ps,ind,xmin,xmax,ymin,ymax,shape,distribution)
xmin, xmax, ymin, ymax : 생성한 파티클의 확장 범위를 지정합니다.
shape : 범위의 모양을 지정
distribution : 파티클 생성에 사용할 분포를 지정
여기에서 shape 는 파티클을 생성하는 범위를 지정하는데, 그것은 다음과 같습니다.
ps_shape_rectangle : 사각형 모양
ps_shape_ellipse : 타원형 모양
ps_shape_diamond : 다이아몬드 모양
ps_shape_line : 선형 모양
파티클이 생성될때 지정한 범위(xmin,xmax,ymin,ymax)의 모양(shape) 내에서 생성됩니다.
그리고, distribution 는 파티클 생성시 분포형태를 지정하게 됩니다.
ps_distr_linear : 범위 내에 모든 곳의 동일한 분포로 파티클을 생성
ps_distr_gaussian : 범위 내에 중심부를 중점으로 파티클을 생성
ps_distr_invgaussian : 범위 측면 위주의 분포로 파티클을 생성
범위를 지정했지만, 또 그 안에서 파티클을 듬성 듬성 생성하게 할지, 아니면 골고루 생성하게 할지를
정할 수도 있지요.
또한, 파티클을 생성할 때, 지정한 수만큼 생성할 수도 있지만, 지정한 개수 안에 랜덤 수만큼 생성시킬
수도 있습니다.
part_emitter_stream(ps,ind,parttype,number)
생성되는 수(number)를 음수로 설정하면 지정한 값내에 랜덤 수만큼 파티클을 생성하게 됩니다.
part_system_draw_order 함수를 사용하면 생성되는 파티클의 순서를 변경할 수 있는데, 최근에 생성한
파티클을 이전에 생성한 파티클보다 앞에 위치하도록 설정할 수 있습니다.
★ Create 이벤트 |
드디어 완성되었습니다.
처음에는 좀 복잡한 설정을 해야만 하는 것 같았지만, 의외로 단순했지요.
제대로 생성되는지 룸에 파티클을 설정한 오브젝트를 배치하고 테스트 해봅시다.
(▲ 테스트 화면)
------- 예 제 -------
'GameMaker강좌[GM8] > 파티클강좌' 카테고리의 다른 글
[게임메이커강좌-파티클]파티클 응용편3 (2) | 2014.02.10 |
---|---|
[게임메이커강좌-파티클]파티클 응용편2 (0) | 2014.02.09 |
[게임메이커강좌-파티클]파티클 이미터 (2) | 2014.01.29 |
[게임메이커강좌-파티클]파티클 시스템 (0) | 2014.01.28 |
[게임메이커강좌-파티클]파티클 타입 (6) | 2014.01.27 |
댓글