본문 바로가기

스크래치강좌34

스크래치로 물리실험하기-3. 마찰력 실험 안녕하세요. 승승이입니다.지난번에서 힘과 가속도, 속도, 위치에 대한 식을 프로그램에서 구현해봤습니다.이번에는 마찰력을 넣을 차례입니다.마찰력에는 종류가 여러가지 많습니다. 지면마찰도 있고 공기저항도 있고 여러가지입니다.공기저항력은 저속일 때는 속도에 비례, 고속이면 속도의 제곱이 비례합니다.지면마찰력은 정지마찰과 운동마찰이 있는데, 정지마찰력은 속도가 0일 때 일정 힘 이하에서는 정지하도록 되어 있는 마찰력입니다. 운동마찰은 운동하기 시작하면 일정한 값으로 적용되는 마찰력입니다.여기서는 어떠한 이유로 인해 속도에 비례하는 마찰력을 만들어 볼까 합니다. 그러면 공이 전체 받는 힘 F는 외력과 마찰력만을 고려하고, 마찰력이 속도에 비례하도록 결정하면 됩니다. 가속도, 속도, 위치에 대한 공식은 변함이 없습.. 2017. 11. 6.
스크래치로 팔라독 같은 게임 만들기- 7. 체력바 시스템 안녕하세요. 승승이입니다.hp를 만들어 봅시다. 새로운 스프라이트 하나 만듭니다.스프라이트를 만들고, hp바의 모양은 0부터 100까지 11단계로 만들었고, 크기는 10x3의 크기로 좀 작게 만들었습니다. 만드는건 그림판으로 도트 찍어 만들어서 사용하였습니다.깃발을 누르면 원본은 숨겨주시고 초기화 할 명령어를 별도로 만듭니다. 각 체력바들은 번호를 부여 받아야 하는데, 그 변수를 @HP번호 로 명명하여 사용합니다. @복제됨 변수는 복제된 개체와 원본을 구별하기 위해 사용합니다. 방송하기를 사용하면 반드시 복제된 개체들이 수행되지 않도록 @복제됨 의 변수를 따져서원본만이 수행하도록 합니다. @HP번호 를 증가시키면서 복제합니다. 복제가 되면 @복제됨 변수를 1로 놓고,y좌표를 정해주는것은 hp바가 여러 개.. 2017. 11. 6.
스크래치로 팔라독 같은 게임 만들기- 6. 공격시스템 안녕하세요. 승승이입니다.이제 공격시스템을 만들어야 하는데요,어떻게 만들어야 할지 정리부터 해보겠습니다.1. 적이 공격범위안에 들어감 (공격모드)2. 공격 개체 리스트를 생성(x위치, 공격력, 공격범위)3. @딜레이를 추가함4. @딜레이가 0이될때까지 -1을 함, @딜레이 가 0이되어야 공격가능그러면 피격시스템도 같이 만들어야 하는데요1. 공격개체 리스트에서 자신의 위치와 범위가 얼마나 되는지 확인2. 자신이 해당 범위 안에 들어오면 데미지 받음3. 데미지를 받으면 해당 리스트를 삭제함 버그가 있을 가능성이 있지만 이정도로 정리해볼까 합니다. 6.1 공격시스템- 적의 공격리스트 생성공격을 하면 조건(@공격함=1, @공격딜레이=0)이 부합하면 공격하기 위한 리스트에 추가합니다. 공격딜레이가 0이 아니면 -.. 2017. 11. 6.
스크래치로 물리실험하기-2. 가속도/속도/위치 시뮬레이션 안녕하세요. 승승이입니다. 이번에는 미적분을 어떻게 프로그램에서 구동하는지 간단한 예제를 통해 알아보고자 합니다. 여기서는 간단하게 한 개의 무중력 마찰이 없는 공을 생각합니다. 공에 대한 속성을 정리하였습니다. 중력이나 마찰력이나 다른 힘은 고려하지 않고 오로지 외부에서 주는 힘 u만 생각한 것입니다. 힘을 받으면 가속도 x''가 결정되고, 다시 가속도에 의해서 속도 x'가 결정, 속도에 의해 위치 x가 결정됩니다. 나중에 각각의 변수들은 하나하나 만들기 어려워지므로 리스트를 써서 규칙을 정하기로 합니다. 1번째는 x, 2번째는 x', 3번째는 x''입니다. 시뮬레이션의 기본적인 조건으로 초기값을 결정해줘야 하는데, 가속도, 속도, 위치 모두 0으로 둡니다. 이제 계산식은 위와 같이 정해집니다. 참 간.. 2017. 11. 3.
스크래치로 팔라독 같은 게임 만들기- 5. 기본 스텟 만들기 안녕하세요. 승승이입니다.이제 유닛의 기본적으로 필요한 몇가지 사항을 만들어 볼까 합니다.유닛의 기본적으로 1. hp2. 공격력3. 방어력4. 이동속도5. 공격속도6. 공격범위이정도 되겠네요. 혹시나 더 있다면 스킬이라던지, 회피율이라던지 그런게 있겠네요. 캐릭터에 따라서 공격력이 쎈 것도 있고 hp가 쎈 것도 있고 그럴 겁니다.그래서 스텟들을 구분하였는데요, 일단 캐릭터 1의 스텟을 다음과 같이 만든다고 가정합시다. 1. hp: 1002. 공격력: 103. 방어력: 04. 이동속도: 35. 공격속도: 5 6. 공격범위: 10 이와 같은 데이터를 따로 정리하기 위해서 db스프라이트를 만들어 줍니다. db스프라이트들은 미리미리 정해둘 데이터들을 저장할 공간으로 사용할 예정입니다. 캐릭터 1에 대한 스텟을 .. 2017. 11. 3.
스크래치로 물리실험하기-1. 미적분은 어떻게 구현하는가? 안녕하세요. 승승이입니다.프로그램의 주요 사용 목적중인 하나인 '시뮬레이션'을 해볼까 합니다.교육과정에서는 이러한 시뮬레이션하는 기회가 별로 없는데, 대학교에서는 직접 배운 수학, 과학적 이론을 컴퓨터로 시뮬레이션 하는 기회가 오게 됩니다.스크래치도 프로그램으로써 시뮬레이션이 가능한데요, 여러가지 실험을 하기 위해서는 프로그램으로 미적분을 어떻게 만드는지 알고 있어야 합니다.미적분 하면 벌써 머리가 아파올 수 있지만 의외로 컴퓨터에서의 미적분은 매우 쉽습니다. 프로그램에서의 미분은 '변화량'이고, 적분은 '누적'입니다. 참 쉽죠?프로그램도 한번 볼까요? x의 변화량은 x현재 - x과거 로 정의할 수 있습니다.수학적으로의 미분의 정의는 아래와 같은데요 이걸 컴퓨터에서 비슷하게 구현하면 이렇게 됩니다. 컴퓨.. 2017. 11. 3.
스크래치로 팔라독 같은 게임 만들기- 4. 이동 조건 만들기 안녕하세요. 승승이입니다.캐릭터가 이동하는 조건을 만들어서 이동할지 안할지 결정해줍니다.앞에 적이 없다면 이동, 적이 있다면 멈춰서 싸우겠죠?즉, 적이 앞에 있냐 없냐를 판단해 주는것이 이번에 만들고자 하는 내용입니다. 이제 이동조건에 @공격함 을 넣습니다. 상대가 공격범위에 들어가면 @공격함 을 수행합니다.공격할지 이동할지의 조건도 만들어 주는데요,이동조건은 아군유닛의 모든 x좌표와 비교해서 그 차가0보다 작고 (유닛이 0보다 왼쪽에 있고)-10보다 크면 (-10보다 오른쪽에 있으면) 공격하는 것으로 만듭니다. 아군도 동일하게 만들어 줍니다. 단지, 공격범위 대상이 좌우대칭하는 조건으로만 바꿔주면 됩니다. 이걸 깜빡했는데, 여러번 수행하는 블록들은 ‘화면 새로고침없이 실행하기'가 필수입니다. 이제 유닛.. 2017. 11. 1.
스크래치로 팔라독 같은 게임 만들기- 3. 적 스프라이트 만들기 안녕하세요. 승승이입니다.적유닛은 플레이어 유닛과 싸우는 인공지능 탑재한 개체입니다.하지만 플레이어와 다른 점은 컴퓨터가 움직인다는 것 뿐이고 나머지는 같습니다.적 유닛은 사실 아군 유닛을 많이 만들고 난 다음에 스프라이트 복제하여 사용하는 것이 좋은데요,일단 이동 조건을 수행시키기 위해서 적을 만들어 줍니다. 적은 지금까지 만든 아군 유닛 스프라이트를 복제합니다. 여기서 햇갈리지 않게 명령문의 이름을 바꿨습니다.바꿔주어야 할 부분은 가장 먼저 ‘전역변수'의 이름인데요, 아직은 단 한개뿐이 사용을 안했으니 그다지 복잡하지 않네요. 적은 적이 사용하는 위치 리스트를 만들어서 바꿔주면 됩니다. 적도 똑같이 어떤 규칙에 의해 소환된다면, 오른쪽에서 왼쪽으로 이동하게 만들어 줍니다. 일단 아래와 같이 반대쪽에서.. 2017. 10. 31.
스크래치로 팔라독 같은 게임 만들기- 2. 복제 유닛 기본설정 안녕하세요. 승승이입니다.이번에는 복제된 유닛들이 알아서 움직이게 하는 것입니다.소환된 유닛은 알아서 움직이게 해야합니다. 일단 이동을 하는 명령어를 만들어 보도록합니다. 복제되면 이동을 수행시킵니다. 이동속도는 무엇이 될지 모르겠지만 일단 1로 해봅니다. 소환하는대로 오른쪽으로 쭉~ 갑니다. 이것은 적의 위치가 닿을 때까지 이동시켜야 하는데요, 적의 위치를 나타내기 전에 자신의 위치를 나타내기 위한 시스템을 만들어야 합니다. 2.2 유닛 기본 시스템-번호복제된 개체들이 여러개일 경우에는 고유 번호를 만들어 주어야 따로따로 구분하기 쉽습니다. 따라서 번호를 넣어주어야 하는데요,@번호 변수를 만들어서 원본이 0으로 초기화 시켜주고소환할 때 @번호 가 1만큼씩 증가시켜서 자신의 번호를 부여합니다. 이렇게 순.. 2017. 10. 31.
스크래치로 팔라독 같은 게임 만들기- 1. 스프라이트 복제 안녕하세요. 승승이입니다.스크래치로 팔라독과 유사한 게임을 만드는 프로젝트를 만드는 강좌를 올려볼까 합니다. 팔라독이라는 게임을 아시나요?그것과 비슷한 게임을 만드는 것이 프로젝트의 목표입니다.무엇부터 해볼까요?일단 게임의 가장 큰 특성을 파악해봅시다. 1. 유저가 유닛을 소환하면2. 소환된 유닛은 앞으로 가고3. 상대방이 범위 내에 있으면 공격4. 자신이 죽으면 사망처리5. 상대가 없으면 계속 이동6. 상대방 기지를 파괴하면 승리 아직 완성은 안됬지만 작성중인 프로젝트를 미리 보고 싶다면 아래 링크를 확인해주시기 바랍니다.https://scratch.mit.edu/projects/181091765/ 이정도가 되겠네요.물론 더 자세하게 쓴다면 여러가지 룰을 더 파악해야겠지만 일단 만들면서 무엇이 필요할지.. 2017. 10. 31.