언어/기타

[이벤트 ID이용의 예]슈팅 게임

by masa posted Dec 16, 2006
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄


2000시리즈에는 특정 좌표의 이벤트 번호를 읽는 기능이 있습니다.


그런데 두개의 이벤트가 겹쳤을 경우에는 자동으로 높은 이벤트 번호를 읽습니다.


이걸 이용해서 슈팅을 만들어 봅시다.


 


우선 총알.


총알은 보이지 않는장소에 숨어 있다가 키입력의 처리를 써서
발사키가 눌러질때마다 주인공의 위치로 이동합니다


그럼 발사키를 누를때마다 총알이 발사되는것처럼 보일것이고.....


총알은 진행방향으로 빠르게 이동하면서 현재 자신이 위치한 장소의 이벤트 번호를 읽습니다.
화면을 벗어나면 총알은 또다시 보이지 않는곳으로 짱박힙니다.


만약 뭔가 감지됐을경우 이벤트 번호를 [적이벤트번호]라는 변수에 대입시킵니다.



적은 총알보다 높은 이벤트번호를 갖도록 사전에 조작해 둡시다.
적 이벤트의 페이지에서 [적 이벤트번호]라는 변수가 지금 조작하는 이벤트의 이벤트번호와
일치할때 적이 데미지를 받는 처리를 해줍니다.



말하자면 이런 겁니다.


기존의 슈팅에서 [총알의 엑스좌표] [총알의 와이좌표]를 구해서 [적의 엑스좌표] [적의 와이좌표]와
비교해보고 일치하면 적에게 데미지를 준다. 라는 식이었으면
(적의 수가 늘어나면 변수의 수와 처리속도 또한 허벌나게 늘어버리는거라-_-;;;)


여기서는 [총알의 엑스좌표] [총알의 와이좌표]를 구해서 [지정 위치의 이벤트 ID획득]으로 들어가.


[변수로 지정]에 체크하고


엑스좌표에 [총알의 엑스좌표]변수를
와이좌표에 [총알의 와이좌표]변수를 대입하여
얻는 아이디갚을 [적 이벤트번호]라는 변수에 대입


적이 공격받는 처리 페이지의 발동조건을 [적 이벤트번호] 변수가
[이 이벤트의 이벤트번호](변수를 변수에 비교하는게 안돼서 일일히 바뀌줘야 하더군요)
와 일치할때로 놓으면 되는것입니다.