본문 바로가기

스크래치107

6. 스크립트- 형태 안녕하세요. 승승이입니다.기본강좌로 형태 관련 블록들을 알아봅니다. 1. 형태 탭: 형태 블록을 사용하기 위해서는 동작탭을 선택해야 합니다.2. 형태 블록: 형태 관련 동작을 수행하기 위한 블록들이 모여있습니다.3. 모양, 배경이름, 크기 변수: 스프라이트의 모양과, 현재 배경, 그리고 스프라이트의 크기를 변수로 사용할 수 있습니다. 스크립트가 단어를 일정 시간동안 말합니다. (말이 끝날때까지 스크립트는 정지됨)일정시간 끝나면 말풍선이 사라집니다. 스크립트가 단어를 말합니다. 말을 없애기 위해서는 스프라이트를 숨기거나, 빈칸을 말하게 해야 합니다. 스크립트가 단어를 일정 시간동안 생각합니다. (말이 끝날때까지 스크립트는 정지됨)일정시간 끝나면 말풍선이 사라집니다. 스크립트가 단어를 생각합니다. 말을 없애.. 2017. 11. 8.
스크래치로 물리실험하기-4. 스프링실험 안녕하세요. 승승이입니다.이번에는 스프링 실험을 하겠습니다. 스프링의 특징으로는 스프링이 늘어난 만큼 힘을 반대로 가한다는 것입니다. 그 점을 감안하여 다음과 같은 시스템을 생각해 봅니다. 여기서 거리 L은 영점(0,0)에서의 거리입니다.이것은 오로지 x좌표이므로 x=l이 됩니다.k값은 임의의 스프링 상수입니다. 스프링의 종류에 따라 상수가 클 수도 있고 작을 수 있습니다. 이것은 실험할 때 임의로 정하면 됩니다. 이제 프로그램으로 작성해 봅니다. 참 쉽죠? 시스템이 간단한 만큼 프로그램도 매우 간단합니다.가속하는 주는 부분만이 변경됩니다. 스크립트 보기: https://scratch.mit.edu/projects/184627840/ 2017. 11. 7.
스크래치로 물리실험하기-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.