본문 바로가기

스크래치강좌34

쿠키런 같은 게임 만들기 1. 기본 캐릭터 만들기 안녕하세요. 승승이 입니다. 이번에 만들 프로젝트는 '쿠키런 같은 게임 만들기'입니다. 만들고자 하는 게임의 유형은 장애물을 회피하고, 아이템을 먹으면서 달리는 게임류입니다. 해당 프로젝트를 만들면 이런 모습이 될 것입니다. 이것도 일종의 미니게임으로 하드코어하게 만들거나 해도 될 거 같네요. 게임을 만들기 전에 어떻게 만들지 정리해봅니다. 1. 캐릭터- 캐릭터는 아이템을 먹거나 장애물을 피할 수 있어야 합니다. 점프와 지면의 인식이 핵심적인 부분입니다.2. 장애물- 장애물이 캐릭터에 닿으면 게임이 끝납니다. 돌이나 가시같은 장애물과 웅덩이와 같은 낙사용 장애물, 새와 같이 공중에 있는 장애물로 3가지정도가 있습니다.3. 아이템- 아이템은 기본적으로 동전과 같이 점수 획득용이 있고, 속도가 빨라지거나 무.. 2017. 12. 4.
똥피하기 게임 만들기 4. 아이템 만들기(끝) 안녕하세요. 승승이 입니다. 똥피하기의 마지막으로 아이템을 만들어 보겠습니다.아이템은 몇초에 한번씩 떨어지게 하고, 그 아이템을 먹으면 좋은 효과를 발생하도록 하는 것으로 만들 예정입니다.그래서 생각해봐야 할 것은 아이템을 먹으면 어떤 효과를 나게 할 것인지 정리해봐야 하는데요, 일단 생각해 둔 기능들은 다음과 같습니다. 1. 멈추기2. 속도 느려지게 하기3. 모두 사라지기4. 똥을 모두 작아지게하기 4가지정도면 적당할 것 같네요. 그 외의 복잡한 기능들에 대한 아이디어가 있다면 한번 만들어 보는 것도 좋습니다. 이제 아이템을 만들어 보는데, 스프라이트를 새로 만들어서 아이템으로 정하도록 합니다. 아이템은 게임이 시작하면 주기적으로 '복제하기'를 통해 만들어 냅니다. 메인 함수들은 위와 같습니다. ite.. 2017. 11. 25.
똥피하기 게임 만들기 3. 난이도 만들기 안녕하세요. 승승이 입니다. 이제 게임의 재미의 요소로 난이도의 증가 설정 및 아이템이나 다른 기타 여러가지의 이벤트 발생을 추가적으로 만들어 볼까 합니다.이전까지는 기본적으로 간단하게 똥피하기를 만들었다면, 여기부터는 제작자의 창의성이 요구되는 부분입니다. 즉, 난이도를 어느정도로 설정할까, 아이템은 어떻게 만들까 등등이 될 것입니다. 난이도는 제작자와 테스터들이 계속해서 플레이 하면서 적당한 난이도를 만들어 줘야 하기 때문에 어떻게 만드느냐는 제작자의 몫입니다. 가장 좋은 것은 처음에는 쉽다가 서서히 어려워지면서 플레이어의 도전정신을 자극하는 것이 좋습니다. 처음부터 어려우면 재미가 없고, 후반까지 쉬우면 게임을 공략하는 재미가 반감될 것입니다. 이런 똥피하기 류의 미니게임류는 플레이 시간이 1분 수.. 2017. 11. 21.
똥피하기 게임 만들기 2. 충돌처리(~에 닿았는가), 사망처리 안녕하세요. 승승이 입니다. 지난번에 만든 똥피하기에서 똥을 맞았을 때 캐릭터의 게임오버, 그리고 똥이 바닥에 들어가면 사라지기 등등의 게임의 기본적인 틀을 이어서 만들어갈 예정입니다.게임의 요소중에서 가장 기본적인 틀 들을 만들 것인데요, 게임의 규칙과 게임오버 조건 등을 만들어 볼 수 있습니다. 이번 똥피하기 게임에서 가장 중요한 룰은 똥에 맞지 않는 것입니다. 이전 포스팅에서는 단순히 똥을 만들어 내서 떨어진다면 여기서는 그 똥을 맞으면 게임 오버가 되는 것이 핵심 요소가 됩니다. 그래서 똥에 닿았는가 아닌가를 판단하는 것이 중요한데, 게임을 단순하게 만들기위해서 일단 가장 간단한 방법으로 소개하기로 하였습니다. 1. 똥의 충돌 처리일단 똥이 캐릭터에 맞았을 때를 판단해야 하는데요, 일단 블록중에 .. 2017. 11. 20.
스크래치로 물리실험하기-7. 물체의 충돌 구현 안녕하세요. 승승이입니다.이번에는 약간의 상상력도 필요한 이야기입니다. 우리가 물체가 분자로 이루어져 있고 그 안에 원자로 구성되어 있고 더 나아가서는 더 작은 물질들로 이루어져 있다는 이야기는 상식으로 알고 있습니다. 그 물질들의 대부분의 공간은 빈 공간입니다. 그런데 빈 공간에서 어떻게 우리가 물체를 만지고 잡을 수 있을까요? 우리가 보고 있는 실체는 99%가 빈 공간이기 때문에 눈으로 보는 세상과 실제로 만지는 느낌들은 단순히 뇌에 자극으로 들어오는 것이고 실체가 없는건 아닌가 하는 이야기도 있습니다.과학적으로 보면 물체가 색을 가지는 것은 원자 껍데기에 있는 전자가 빛을 받아서 들뜬 상태로 되다가 다시 안정화 되면서 빛을 발산한 것을 눈으로 보기 때문입니다. 그러면 물체를 만지는 것은 어떻게 될까.. 2017. 11. 15.
스크래치로 물리실험하기-6. 두개의 인력 안녕하세요. 승승이입니다.이번에 스크래치로 실험할 이야기는 '인력'입니다.인력은 잡아당기는 힘인데, 중력도 있고 자기력도 있고 전기력도 있고 여러가지가 있기 때문에 무난하게 '인력'이라고 칭하고 시뮬레이션을 만들어 봅니다. 처음에는 2개에 대해서 잡아당기는 것을 만들 예정인데, 이것을 여러 개 만들어 볼까 합니다. 즉, 프로그램상에서 여러 개의 상호작용을 어떤식으로 구현하는게 좋을지 고민을 해볼 시간입니다. 먼저 2개의 물체만을 생각해봅시다. 여기서 각 물체의 번호를 n이라고 칭하고, 순서대로 1과 2인 물체를 생각합니다. 각각 작용하는 힘은 거리의 제곱의 반비례, 그 힘의 크기는 물체 질량 곱의 비례한다고 가정합니다. 네, 중력과 같은 공식입니다. 여기서 상수 kg는 임의로 사용하기로 합니다. 여러 개.. 2017. 11. 12.
스크래치로 팔라독 같은 게임 만들기- 8. 캐릭터 애니메이션 추가(끝) 안녕하세요. 승승이 입니다. 지금까지 모든 뼈대를 만들었습니다. 이제는 살을 이어 붙일 시간이네요. 게임에서 어지간히 중요한 기능을 만들면 이제 없어도 되는 그러한 부가적인 것들을 추가해야합니다.그 중 하나가 애니메이션입니다. 오히려 프로그래밍의 외적으로 많은 시간을 들이게 되서 개인적으로는 이 부분이 시간도 너무 많이 먹고 진행도 주춤하게 되는 요인이 되어서 좀 더 효율적으로 그래픽 작업하는 방법도 연구가 필요할 거 같습니다. 이 프로젝트에서는 애니메이션에 많은 투자를 안하고 간단하게 2개 모션만 사용해서 만들어 볼까 합니다. 이동모션이나 공격모션이 그림이 2장만 사용하는 것입니다. 이 모션들은 여러 개 만들수록 더욱 부드러워지고 퀄리티가 좋아지겠지만 그만큼 작업량이 많아질 것입니다. 애니메이션에 사용.. 2017. 11. 10.
스크래치로 물리실험하기-5. 두개의 물체의 스프링 작용 안녕하세요. 승승이입니다.스크래치로 물리실험하기 5번째입니다.이번에는 2개의 물체를 가지고 실험해보겠습니다. 지난 시간에는 매우 간단하게 영점(0,0)에 고정된 스프링에 대해서 질량 m의 물체를 적용하였습니다. 이번에 2개를 물체를 사용한다면 어떻게 해야 할까요? 각각의 물체에 적용하는 자신의 위치, 속도, 가속도를 각각 따로따로 계산을 하고, 단지 두개에 적용되는 힘을 서로 스프링의 힘으로 인해 반작용으로 작용시키면 됩니다. 물체를 각각 1번과 2번으로 정의해 봅니다. 여기서 외부힘을 가하는 공은 오로지 2번공이라고 가정합니다. 역시 좌우키를 누름에 따라서 외부힘은 왼쪽 또는 오른쪽으로 힘을 가하도록 되어 있습니다. 이 스프링이 늘어나는 길이를 x2-x1로 정하면 2번공에 가해지는 스프링 힘은 -k(x.. 2017. 11. 8.
6. 스크립트- 형태 안녕하세요. 승승이입니다.기본강좌로 형태 관련 블록들을 알아봅니다. 1. 형태 탭: 형태 블록을 사용하기 위해서는 동작탭을 선택해야 합니다.2. 형태 블록: 형태 관련 동작을 수행하기 위한 블록들이 모여있습니다.3. 모양, 배경이름, 크기 변수: 스프라이트의 모양과, 현재 배경, 그리고 스프라이트의 크기를 변수로 사용할 수 있습니다. 스크립트가 단어를 일정 시간동안 말합니다. (말이 끝날때까지 스크립트는 정지됨)일정시간 끝나면 말풍선이 사라집니다. 스크립트가 단어를 말합니다. 말을 없애기 위해서는 스프라이트를 숨기거나, 빈칸을 말하게 해야 합니다. 스크립트가 단어를 일정 시간동안 생각합니다. (말이 끝날때까지 스크립트는 정지됨)일정시간 끝나면 말풍선이 사라집니다. 스크립트가 단어를 생각합니다. 말을 없애.. 2017. 11. 8.
스크래치로 물리실험하기-4. 스프링실험 안녕하세요. 승승이입니다.이번에는 스프링 실험을 하겠습니다. 스프링의 특징으로는 스프링이 늘어난 만큼 힘을 반대로 가한다는 것입니다. 그 점을 감안하여 다음과 같은 시스템을 생각해 봅니다. 여기서 거리 L은 영점(0,0)에서의 거리입니다.이것은 오로지 x좌표이므로 x=l이 됩니다.k값은 임의의 스프링 상수입니다. 스프링의 종류에 따라 상수가 클 수도 있고 작을 수 있습니다. 이것은 실험할 때 임의로 정하면 됩니다. 이제 프로그램으로 작성해 봅니다. 참 쉽죠? 시스템이 간단한 만큼 프로그램도 매우 간단합니다.가속하는 주는 부분만이 변경됩니다. 스크립트 보기: https://scratch.mit.edu/projects/184627840/ 2017. 11. 7.