본문 바로가기
스크래치/스크래치 디펜스

스크래치로 팔라독 같은 게임 만들기- 1. 스프라이트 복제

by 할거없네 2017. 10. 31.

안녕하세요. 승승이입니다.

스크래치로 팔라독과 유사한 게임을 만드는 프로젝트를 만드는 강좌를 올려볼까 합니다.


팔라독이라는 게임을 아시나요?

그것과 비슷한 게임을 만드는 것이 프로젝트의 목표입니다.

무엇부터 해볼까요?

일단 게임의 가장 큰 특성을 파악해봅시다.


1. 유저가 유닛을 소환하면

2. 소환된 유닛은 앞으로 가고

3. 상대방이 범위 내에 있으면 공격

4. 자신이 죽으면 사망처리

5. 상대가 없으면 계속 이동

6. 상대방 기지를 파괴하면 승리


아직 완성은 안됬지만 작성중인 프로젝트를 미리 보고 싶다면 아래 링크를 확인해주시기 바랍니다.

https://scratch.mit.edu/projects/181091765/



이정도가 되겠네요.

물론 더 자세하게 쓴다면 여러가지 룰을 더 파악해야겠지만

일단 만들면서 무엇이 필요할지 생각해봅시다.


1. 유닛 소환하기 시스템

일단 유저가 유닛을 소환하도록 해야 하는데요,

유닛 스프라이트를 추가하여 여기에 기능을 넣도록 합니다.



적당히 네모의 유닛을 만들었습니다.

이제 명령어를 만들 차례인데요, 각각의 명령은 추가블록으로 만들 예정입니다.




이제 이 블록을 실행하면 소환하기가 되어야 합니다.

소환하기는 기본적으로 복제하기를 사용하기로 합니다.


복제하기를 넣고,

복제가 되었을 때 초기위치를 잡는 것으로 시작을 해봅시다.


이제 복제하기를 만들었는데, 이 스프라이트는 2가지의 경우에 따라서 행동해야 합니다.

복제되지 않은 원본과 복제된 개체는 각각 행동을 수행하도록 시킵니다.


1.1 유닛 소환하기 시스템- 원본 초기 명령

깃발을 누르면 원본은 가장 처음 해야할 일들을 따로 모아서 초기 명령을 수행하도록 합니다.

원본은 안보이게 숨기게 되고, 복제된 개체와 구별하기 위해 @복제됨 변수를 사용하여 0으로 합니다.

*여기서 @의 의미는 지역변수로써의 사용인데, 변수를 만들 때 이 스프라이트만 사용옵션을 넣습니다.

변수의 쓰임새에 따라서 지연변수, 전역변수를 구분해줘야 하는데,

다른 스프라이트가 해당 변수를 사용할 일이 없다면 가능한 한 지역변수로 만들어 주는 것이 좋습니다.


1.2 유닛 소환하기 시스템- 복제본 초기 명령

이제 복제본도 정리해야겠는데요, 복제본 초기화 명령어를 만들고,

복제본의 기본적으로 보이기를 하고, 원본과 구별해줄 변수인 @복제됨 을 1,

그리고 초기 위치로의 이동을 합니다.






다음에는 이동하는것을 만들 예정입니다.

이동하기가 되면 아래와 같이 캐릭터가 하나씩 움직이게 될 것입니다.







댓글