본문 바로가기

스크래치107

올펜 플랫포머 만들기6- 블록의 종류 추가하기 스테이지를 만들기 전에 블록들을 다양하게 여러가지로 만들겠습니다.일단 변수를 만들어서 블록의 종류를 결정하도록 합니다. 이 블록은 숫자키를 누르면 해당 번호로 바뀌도록 단순하게 하겠습니다.​ 어떤 키를 누르는지 확인 한 후에 그 키가 몇인가에 따라서 번호를 넣도록 했습니다.번호기 이전에 어떤키를 누르는지 확인 하는 이유는 무한반복 루프에 조건을 따지는 것을 줄이기 위함입니다. 이 블록의 위치는 map_maker위에 놓기로 하였습니다.이제 숫자키를 누르면 해당 타입의 블록으로 설치할 준비가 되었습니다.이제 타입에 따라서 블록의 모양을 결정하기로 합니다. 블록들이 많아서 복잡해질 수 있지만, 프로그래밍하기 편하도록 타입마다 블록들을 만들기로 하였습니다.먼저 1번째 타입의 블록은 검은색 네모칸에 엑스 표시가 .. 2019. 2. 7.
올펜 플랫포머 만들기5- 중력, 점프와 장애물 인식 지난 번에 맵을 만드는 기능까지 추가를 했습니다.이제 맵을 초기화 하는 기능은 잠시 없애기로 하겠습니다.초기화 하는 블록에서 맵 데이터를 만드는 부분을 잠시 떨어뜨려 놓고​플레이어가 돌아다닐 수 있도록 맵을 꾸며주었습니다.초록깃발을 눌러도 초기화가 안되고 맵이 그대로 유지됩니다.​이제 중력을 만들어서 캐릭터를 밑으로 떨어지게 할 것입니다.중력이 캐릭터에게 하는 역할은 y축의 방향으로 속도를 계속 감소시키는 것입니다.1픽셀씩 계속 감소시키도록 하겠습니다.여기서 중력에 의한 속도 제한을 걸 필요가 있는데, 속도가 너무 빠르면 장애물 감지를 하지 못할 수 있기 때문입니다. 적당하게 -20보다 작으면 -20으로 고정하도록 하기로 했습니다.이 블록은 메인 루프에서 캐릭터가 속도에 의해 위치가 결정되는 블록인 ch.. 2019. 2. 7.
올펜 플랫포머 만들기4- 맵만들기 2 지난 강좌에 이어서 마우스로 맵을 만드는 기능을 추가할 것입니다.먼저 마우스가 어디에 있는지 확인해야 하는데,​변수를 하나 만들어서 이 변수가 현재 타일 번호를 가져오도록 할것입니다.x좌표에서 20으로 나눠서 소숫점을 버리고 12을 더하면 맨 왼쪽에서 1부터 증가하여 25까지 될 것입니다.먼저 map_maker블록을 만들어서 변수값을 바꿀 것인데요, map_maker는 메인루프에 들어가도록 합니다.​수행해보면​ 잘 동작하는 걸 볼 수 있습니다.이번엔 y줄이 감소함에 따라서 25씩 증가하도록 할 것입니다.여기까지의 결과는 이제 화면 안에 있어야 하는 조 마우스의 좌표값을 보정해줘야겠네요. 좌표값이 화면안에 있어야 하는 조건과 마우스의 판정이 사각형 중앙으로 10씩 더하고 뺏습니다. 이제 타일 번호를 알아냈.. 2019. 2. 7.
올펜 플랫포머 만들기3- 맵만들기 1 이전 강좌에 이어서 맵만들기를 해봅니다.​맵을 만드는 기능을 넣을 예정인데요,먼저 마우스를 따라다니는 블록을 그려주기로 합니다. 위와 같이 블록을 하나 만들어 줍니다.여기에 블록을 만들 것인데, 마우스를 따라다니는 사각형입니다. ​마우스를 중심으로 가로세로 20의 사각형을 그려줍니다. 일단 잘 그려지는지 메인함수에 넣었습니다. 잘 따라 옵니다.이번에는 20x20의 칸이므로, 블록의 위치가 20칸마다 움직이게 할 예정입니다. ​마우스 대신 x, y의 변수로 바꿔 넣고, 마우스 값 대신 위와 같이 넣습니다.위의 값은마우스의 좌표에서 10을 빼고, 그것을 20으로 나눈 뒤 소숫점 버리고 다시 20을 곱합니다.그렇게 되면 마우스의 좌표 기준으로 20칸씩을 움직이게 됩니다.​공식의 원리는마우스 좌표값이 10~29.. 2019. 2. 7.
올펜 플랫포머 만들기2- 좌우로 움직이기 아무것도 없는 빈 화면부터 시작합니다.가장 먼저 만드는 것은 무한 루프입니다. 무한루프를 먼저 하나 만들고 시작합니다.무한루프는 오직 하나만 사용할 것이며여기서 하나하나 기능을 넣으며 블록을 쌓아갈 겁니다. 안에 들어갈 기능이 너무 많아지면 복잡해지니머리속으로 계산을 해서 나만의 블록으로 정리 할 수 있도록 합니다.스크래치 3.0에서는 ‘펜’ 기능이 기본으로 되어 있지 않아서추가해줍니다.이걸 클릭하면,​ 펜 기능이 생깁니다.이제 캐릭터를 만들어야 겠네요.캐릭터는 점으로 표시할 예정입니다.먼저 블록을 만듭니다.‘화면 새로 고침없이 실행하기’를 클릭하면단순 반복 그리기와 같은 행동을 순식간에 처리하도록 합니다.메모 기능을 사용하여 구역표시를 할 수 있습니다.새로운 기능을 추가할 때마다 저렇게 메모기능으로구역.. 2019. 2. 7.
올펜 프로젝트 플랫포머 만들기1 - 강좌의 목적과 목표 요즘에 만들고 있는 올펜 프로젝트에 '플랫포머'를 만드는 강좌를 써볼까 합니다.​​​1. 올펜을 하는 이유​올펜을 한다는 것은 스스로 프로그래밍에 제약을 건다는 것입니다.스크래치가 주는 여러가지 편의 기능을 쓰지 않고 만드는 것인데사실 올펜으로 그리는 것이 거의 프로그래밍의 기본 기능만 사용한다는 것을 의미합니다.예를들어 스크래치의 방송하기나 스프라이트 복제하기 같은 기능들은 다른 언어에서는 없는 기능입니다.그래서 기존의 복제하기라던지 ~에 닿았는가 같은 기능들을 즐겨 사용할 경우다른 프로그래밍 툴을 사용할 때 어려움이 있을 수 있습니다.그러나 올펜 프로젝트를 잘 만든다면 기본 기능으로만 만들수 있는 실력이기에 다른 툴을 사용하더라도 게임을 만들 때 막힘없이 만들 수 있을 것입니다.​​​2. 올펜을 사용.. 2019. 2. 7.
올펜 프로젝트6 멀티 미사일과 미사일 파편 기능을 추가하였습니다.다음에는 스킬 기능을 추가할지, 몬스터 종류를 추가할지 고민중입니다. 스킬의 기능 추가를 위하여 멀티 미사일과, 미사일이 죽으면 2단계의 파편이 발생합니다.물론 기능에 따라서 3단계 이상의 추가 파편이 가능하겠지만, 엄청난 렉의 유발이 예상되어 적당히 하기로 하였습니다. 미사일과 파편 94x45 로 하니 렉이 장난 아니네요 ㅋㅋ 2019. 2. 7.
올펜 프로젝트5 레벨업 시에 스킬 3개중 하나를 고르게 만들었습니다.. 기존 9개 고르는건 너무 복잡해질거 같고 설명을 넣을 칸도 부족함을 느꼈습니다.공격스킬은 1개 뿐이지만,이 스킬을 어떻게 올리는가에 따라서 캐릭터 육성방식을 결정하는 것으로 게임의 주요 오소로 적용하였습니다. 디펜스류의 게임으로 만들지, 모험형식으로 맵을 돌아다니면서 스토리 형식? 으로 만들지는 고민중입니다. 스텟 시스템을 추가하였고, 스킬들을 올리면 스텟을 반영하도록 하였습니다.단순히 스텟만 추가하는 것으로도 게임의 다양한 진로를 만들 수 있었습니다. 2019. 2. 7.
올펜 프로젝트4 한글 폰트까지 100% 올펜입니다...이전에 만들었던 프로젝트를 재활용 하였습니다. 현재 개발중인 방향으로, '솔로몬스 킵'이라는 게임과 비슷합니다.스킬들을 강화시키는 단순한 게임입니다. 레벨업을 하면 랜덤한 스킬이 나타나고 이것을 고르면서 캐릭터를 육성하는 것입니다. 스킬의 종류는 3가지로, 스텟, 스킬1, 스킬2로 나뉘며 스텟을 올리면 효율은 낮지만 스킬1과 스킬2 모두 영향을 줍니다.스킬1과 스킬2는 각각 유저가 원하는 스킬에 따라서 저격총이 될수도 있고 샷건이 될수도 있습니다. 스킬을 다양하게 올리면 저격하는 샷건이 될수도 있습니다. 샷건을 올리면 공속이 낮아지고 한번에 발사하는 탄환이 증가하지만, 스킬강화를 통해 공속을 증가시킬 수 있습니다. 스킬트리는 정해지지 않았으며, 랜덤으로 나타납니다. .. 2019. 2. 7.
올펜 프로젝트 3 적들의 인공지능 추가 (시야에 따른 이동 및 공격)단순한 인공지능인데 가까이에 있으면 주인공을 향해 움직이고 미사일을 뿌립니다. hp추가 (마이너스로 가는 경우는 game over를 넣으면 해결 예정)펜으로 적당히 만들었습니다. 투명 효과가 있어서 보기가 더 좋네요. 적들의 공격 타게팅인공지능의 연장선입니다. 다음은 한글 랜더링을 넣어야겠습니다... 아마 예전에 미리 만들어 놓은걸 넣으면 될거 같습니다. 한글랜더링도 펜으로 가능한데, 이전에 문자를 스캔하여 데이터화 하여 찍어서 그리는 것을 만든 적이 있습니다. 그것을 활용할 예정. 2019. 2. 7.