본문 바로가기

스크래치107

스크래치 물리강좌. 충돌처리 만들기 1. 충돌 개체 만들어 주기 게임을 만들 때 많이 사용하게 되는 '충돌처리'에 대해서 알아봅니다. 충돌처리는 어떤 개체와 개체사이가 서로 닿았는지 확인하는 방법입니다. 여러가지의 방법이 있지만 여기서는 간단한 시스템으로 이해해볼까 합니다. 충돌하는 개체의 모양은 계산의 단순화를 위해 사각형 충돌처리를 만들어 봅니다. ▲ 서로 충돌하는지 확인하는 가장 간단한 방법은 네모를 그려서 확인하는 것이다. 사각형에 충돌을 위한 연산으로 위치(x,y)와 가로, 세로길이입니다. 사각형은 여러개를 취급해야 하므로 하나하나의 변수보다는 리스트를 사용하는 것이 더욱 간단합니다. 각 변수만큼 리스트로 만들고, 첫번째 두번째... 등을 리스트의 번호순으로 사용하기로 합니다. ▲ 미리 리스트로 만들어야 n개의 충돌처리를 할 수 .. 2018. 4. 20.
스크래치 물리강좌. 기본적인 모델링 여러가지 물체의 운동을 모델링 해 봅니다. 간단한 시스템을 모델링을 하는 방법을 연구해봅니다. 1. 자유낙하하는 물체 자유낙하하는 물체는 오로지 중력만을 받습니다. 여기서 y와 g의 방향이 서로 반대이므로 마이너스 부호(-)를 넣습니다. 2. 자유낙하하는 물체(공기저항) 물체가 떨어지면 공기의 저항을 받는다고 가정합니다.이때 공기의 저항은 여러가지 요소가 있지만 속도의 크기(y')에 비례한다고 가정합니다.방향은 속도의 반대방향이므로 (y')에 음의 부호가 붙습니다. 만약에 속도가 -1이라면 힘은 +1만큼 위로 향하는 모양이 됩니다. 3. 일정한 힘을 받는 물체 F의 힘을 일정하게 주게 되면 가속도는 F에 비례하여 증가합니다. 4. 마찰력을 받는 물체 원래는 지면에 의한 운동 마찰력은 물체의 무게에 비례한.. 2018. 4. 20.
스크래치 물리강좌. 운동방정식을 미분방정식으로 구현하는 이유 스크래치에서 물리적인 법칙을 프로그래밍을 하기 위해서는 어떤 지식이 필요한지 알아봅니다. 1. 시간에 따른 운동방정식 풀이가장 이해하기 쉬우면서도 가장 어려운 방법입니다.물질의 운동상태가 결정되면 시간에 따라 결정됩니다.이것을 시간에 대한 방정식으로 풀이하여 어느 시간에 어디에 있는지 정확히 알 수 있습니다.가령 정속도로 v인 물체가 있다면 위치는 속도x시간으로 다음과 같이 구할 수 있습니다. 하지만 실제로 자동차나 자전거나 속도는 언제나 시간에 따라 다릅니다. 이때는 속도의 정의로써 순간 속도는 이동거리를 시간으로 미분한 것으로 정의됩니다. 다시 거꾸로 이동거리는 속도를 적분한 것입니다. 따라서 시간에 따라 변화하는 속도에 대해서 위치는 다음과 같습니다. 이렇게 속도-위치의 관계만 보더라도 위치를 알려.. 2018. 4. 20.
스크래치 팁과 기초 7. 연산블록 추가로 이해하기 연산블록에서의 연산 블록에 대해서 자세히 알아봅니다.▲스크래치에서 제공하는 기본적인 연산 블록 1. 절대값 절대값은 어떤 수의 절대적인 '크기'를 비교하기 위해 사용하는 블록입니다. 예를들면 -2와 1이라는 두개의 숫자를 볼 때 -2는 1보다는 작은 수입니다. 그러나 절대적인 크기로 볼 때는 -2가 1보다 큽니다. 이렇게 음수와 양수를 논외하고 오로지 '크기'만을 비교할 때는 '절대값'을 사용합니다. 이 절대값의 의미는 일종의 '거리'의 값으로 이해할 수 있습니다.▲-2와 1을 볼 때 무엇이 더 멀리 떨어져 있나를 생각할 때는 음수는 고려대상이 아니다. 2. 바닥함수와 천장함수 바닥함수와 천장함수는 소수점을 버리고 정수로 만드는 함수입니다. 여기서 바닥함수는 추어진 실수 이하의 최대 정수를 구하며, 천장.. 2018. 2. 19.
스크래치 팁과 기초 6. 조건문과 반복문 이해하기 개인적으로는 프로그래밍에서 가장 중요한 부분이 조건문과 반복문인거 같습니다. 이 것들을 가장 잘 이해해서 사용하는 사람들이 고수이지 않을까 합니다. 알고리즘을 짜고 어떻게 만들어야 할지 그 뼈대를 만드는 실력이 조건문과 반복문을 어떻게 이해하고 구성하느냐에 달려있는 것 같습니다. 따라서 조건문과 반복문을 잘 사용할 수 있도록 연습을 하는 것도 좋습니다. 1. 조건문▲조건과 조건문 조건문은 '만약 ~이라면'의 조건을 만족할 경우에만 동작하는 구문이 됩니다. 해당 조건이 만족하지 않을 때에는 '아니면'이 붙어있는 블록을 사용합니다. 해당 조건문은 연산탭에 있는 조건들(육각형)을 구성하여 조건 블록 안에 넣어 완성시켜줍니다. ▲조건문의 사용 예, 만약 개가 고양이라면 '야옹'할 것이고, 아니라면 '멍멍'한다... 2018. 2. 9.
2018년 2월 5일 프로젝트 근황 (턴제 rpg만들기) 현재 만들고 있는 프로젝트로 턴제 rpg만들기 입니다. ▲현재 캐릭터와 맵타일을 대략적으로 손으로 그려 넣음 이것은 전통적인 jrpg를 따라가는 모습인데요, 기존에 만든것에서 난이도를 대폭 낮추어서 스크롤기능이 없는 것이 특징입니다.현재 맵을 쉽게 만들기 위한 기능이 들어가 있는데, 선택한 맵타일을 확인하기 위한 추가 기능을 넣었습니다. ▲이렇게 맵타일을 고르면 마우스 옆으로 다음, 이전의 타일을 보여준다. 이 기능은 타일을 고르는 것은 1번과 2번키를 지정하여 만들고, 그것을 누르면 타일을 추가적으로 2개를 복제하여 마우스 옆으로 잠시동안 배치하도록 한 것입니다. ▲1번키와 2번키를 누르면 배치하려는 타일(#타일타입)을 골라주고, 다음과 이전의 타일을 복제하여 나타내준다. ▲1번과 2번키에 의해 복제가.. 2018. 2. 5.
스크래치 팁과 기초 5. 연산블록 이해하기 연산블록을 어떻게 언제 사용하는지 알아봅니다. ▲연산에 관련된 블록들 1. 사칙연산과 함수 관련연산에는 여러가지 블록들이 있습니다. 여기서 동그라미와 네모의 빈칸은 변수를 넣을 수 있는 곳입니다. 다시 이 연산들의 결과값이 변수처럼 사용되어 연산을 할 수 있습니다.▲동그란 것들은 다시 연산을 시킬 수 있다. 당연하지만 문자열은 계산이 불가합니다. 문자열을 계산을 요구하였을 경우0이라는 결과값이 나옵니다.▲변수값이 문자열일경우 일반적인 연산은 불가능하다. 0이라는 결과값이 대신한다. ▲리스트 번호대로 자리수를 계산한다. 사칙외 연산은 아래와 같은 연산함수 블록을 골라서 사용합니다. 각각의 함수들은 필요할때 꺼내 사용하면 됩니다.▲연산 함수의 리스트들, 여기에 없는 수학적 함수는 직접 만들어야 한다. 2. .. 2018. 1. 26.
턴제 게임만들기 1. 전투시스템 구성 현재 턴제 전투 방식을 가진 rpg게임을 제작 예정입니다.중간중간의 제작과정을 설명할 겸 강좌카테고리로 대략적인 설명을 넣어볼까 합니다. 지금은 맵 제작모드와 모험모드까지 해서 3가지 모드가 있습니다. 각각의 모드는 '방송하기'를 통해서 맵이 전환됩니다. (버그가 구석에 하나 있네요 ^^;) 이렇게 방송하기 한번의 클릭으로 모험모드와 전투모드를 각각 전환하도록 처음부터 설계해서 만들어야 편합니다.방송하기를 사용하는 이유는 개발의 편의성을 위해 만들었는데, 꼭 방송하기를 사용할 필요는 없고 변수제어를 통해서 모든 복제된 스프라이트들이 제어가 가능합니다. 제가 게임을 만들 때 무엇을 먼저 만들까 생각하는 부분인데, 처음 만들어본 시스템먼저 구현해서 게임 제작 가능성을 먼저 봅니다. 턴제게임의 경우 턴 을 넘.. 2018. 1. 24.
2018년 1월 22일 턴제 게임 제작 중 기초 강좌와 더불어 턴제게임을 만들고 있습니다.물론 쉬운 일은 아니겠지만 RPG만들기 강좌를 준비할까 합니다.물론, 아직도 기초 강좌를 제작중인데 이게 아이디어가 없다면 생각보다 재미가 없습니다. 아직 그렇게 체계가 잡혀있는 편은 아니지만 최대한 덜 복잡하게 어떻게 만들까 했습니다. 그 중에 가장 눈에 띄는 시스템 도입으로 '로그 기록'하기 입니다. 복잡한 전투 시스템에서 어떻게 흘러가는지 하나하나 기록하면서 만드니까 제대로 되었는지 아닌지 알기가 편해졌습니다. 앞으로의 프로젝트들은 이러한 로그들을 만들어서 관리해야겠습니다. 2018. 1. 22.
스크래치 팁과 기초 4. 묻고 대답하기 이제 고양이에게 말을 걸어보는 시간입니다. 고양이에게 물어보면 그 물어본 것을 토대로 대답을 하도록 하는 것이 이번 강좌의 목표입니다. 1. 묻기, 대답하기▲묻고 기다리고, 대답한 값을 '대답'변수로 바꾼다. '감지'탭에 보시면 묻기와 대답에 대한 블록들이 있습니다. 이것을 사용해서 고양이가 묻고, 그대로 말하도록 하는 것으로 기초적인 것을 만들어 봅니다. ▲묻고 '대답'을 말하도록 한다. ▲어떤 값을 입력하던지 고양이는 그대로 따라한다. 묻는 말에 입력을 하면 바로 그것을 변수로 사용하여 고양이가 똑같은 말을 반복합니다. 이렇게 원하는 글자나 숫자를 '묻기'를 통해 입력이 가능합니다. 2. 여러번 물어보고 더하기 이제 '변수'의 특징 중 하나인 '저장하기' 능력에 대해서 직접적으로 사용할 차례입니다. .. 2018. 1. 20.