본문 바로가기

스크래치/올펜 플렛포머 만들기6

올펜 플랫포머 만들기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.