본문 바로가기
GameMaker강좌[GM8]/슈팅게임강좌

[게임메이커강좌-슈팅]슈팅게임 만들기-2-플레이어 이동제한

by 타락카얀 2013. 2. 7.
728x90




◈이동 제한



이전 강좌에서 이동을 하다보면 화면을 벗어나버리지요.
이것을 방지하려면, 이동시에 조건문을 걸어주어야합니다.



변수관련은 액션탭-Variables에 것을 사용하면 됩니다.

Set Variable-변수를 선언(또는 초기화)할때 사용
Test Variable-변수의 조건문
Draw Variable-변수를 화면에 표시

여기서 조건문은 2번째 파란색 8각모양의 Test Variable을 사용합니다.
일단 왼쪽부터 해봅시다.



화면을 벗어나지 않으려면 캐릭터의 중심점을 중심으로 여분을 두어야합니다.



중심점이 x,y좌표에 해당합니다.

그렇기 때문에 중심점을 기준으로 좌,우,상,하 여분을 있어야 화면을 벗어나지 않습니다.


따라서 왼쪽으로 이동시엔 약 32정도의 여분을 있어야겠지요.



Test Variable을 이동하는 곳 앞에 삽입하고
variable칸에 x
value에는 32
operation에는 larger than을 설정합니다.
캐릭터의 변수x가 룸 x축의 32 위치 보다 클때만 왼쪽으로 갈 수 있다는 것이지요.


참고로, 이렇게도 할수 있으나 이벤트에 여러가지 설정들이 있다면
원치않는 연산처리가 발생할 수 있기 때문에

아래와 같이 조건문에 해당액션을 블록처리를 하는 것이 안전합니다.

블록사이에 여러가지 액션을 넣을 수 있습니다.

그러면 조건문이 참일때 블록사이에 있는 액션을 모두 실행하게 됩니다.



하지만 조건을 건 액션이 한개뿐이기 때문에 블록처리를 하지 않아도 되지요. 헤헤~


같은 방식으로 나머지 이동에 조건문을 달아봅시다.
위쪽은 룸 y축으로 계산해야하기때문에


     variable = y
     value = 32
     operation = lager than


오른쪽은 룸의 가로 크기를 생각해서 (640X480크기 였지요)


     variable = x
     value = 640-32
     operation = small than  <= 캐릭터 x가 룸보다 작았을때만 이동


아래쪽은


      variable = y
     value = 480-32
     operation = small than  <= 캐릭터 y가 룸보다 작았을때만 이동


이제 테스트 해보시면 플레이어가 화면밖으로 가지 않는것을 볼 수 있습니다.





◈배경



배경은 룸의 백그라운드기능을 사용할 수 있습니다.
강좌에선 간단하게 바다의 배경으로 할 것입니다.
Backgrounds폴더에 먼저 바다배경이 될 이미지를 추가합니다.
백그라운드는 루프형 타일을 사용 가능하기 때문에 타일 이미지를 사용해도 됩니다.


이제 룸을 열고 배경탭으로 이동합니다.


배경탭에는 배경을 8개까지 사용할 수 있습니다.
0번은 배경중 맨 하위이고, 7번은 배경중 맨 상위에 위치하게 되며,
또한 배경은 화면에 표시되는 것들중 맨 하위에 표시됩니다(배경의 깊이는 배경들끼리만 적용됩니다).


위의 이미지처럼 설정을 합니다.
배경0번의 배경을 추가한 바다를 선택합니다.
그리고 종스크롤 게임이기때문에 배경이 이동해야겠지요.
그래서 비행기가 앞으로 이동한다는 느낌으로 Vert.Speed를 2정도로 설정합니다.


타일인 경우 가로, 또는 세로만 루프 시킬 수도 있는데

이럴때는 Tile Hor(가로로 루프), Tile Vert(세로로 루프)을 따로 체크하시면 됩니다.

늘리고 싶다면 Stretch를 체크하세요.



테스트해보시면 비행기가 앞으로 날아간다는 느낌이 드실 겁니다.
물론 바다만 있다면 밋밋하기때문에 여러가지 배경들을 구성해서 설정하는 것이 좋습니다.




-------응용예제------


shooter-1945-2.gmk



300x250

댓글