LED로 게임 만들기
엘이디(LED)를 이용해서 간단한 게임을 만들어 볼까요? 앞에서 배웠던 공 피하기 게임을 이용하여 만들겠습니다.
공에 맞으면 13번 핀과 연결된 빨간색 엘이디(LED)가 켜지게 만들고 싶습니다. 어떻게 만들면 될까요?
그림 3-19 스크립트에 그림 3-20처럼 엘이디(LED)를 켜는 블록을 잘 연결하면 됩니다.
어때요? 참 쉽죠? 이제 엘이디(LED)를 하나 더 사용하여 게임을 만들어 보겠습니다. 게임을 조금 더 재미있게 만들기 위해서 이런 생각을 했습니다.
‘20초마다 공이 하나 더 생겨서 움직이면 더 재미있겠다. 그리고 공이 하나 더 생길 때마다 노란색 엘이디(LED)가 깜빡이게 만들어보자.’
이런 아이디어를 가지고 직접 스크래치로 게임을 만들어 봅시다.
우선 공을 하나 더 만드는 방법을 알아보겠습니다. 그림 3-21의 나 자신을 복제하기 블록을 사용하면 됩니다.
제어 블록 모음에서 그림 3-22와 같은 스크립트(코드)를 하나 더 만들어서 초록색 깃발을 클릭해봅시다.
그림 3-23처럼 공이 하나 더 생겼습니다.
그런데 복제된 공은 움직이지 않습니다. 하나씩 문제를 해결해 봅시다. <복제되었을 때>라는 블록이 있습니다. 이 블록은 제어 블록 모음에 있습니다.
복제되었을 때 원래 공처럼 똑같이 움직이게 만들려면 <복제되었을 때> 블록에 원래 공처럼 움직이는 스크립트(코드)를 연결하면 됩니다. 그림 3-24와 같이 코딩하고 프로그램을 실행하면 복제된 공도 잘 움직이는 것을 볼 수 있습니다.
멋지게 문제를 잘 해결했습니다. 이제 다음 문제를 해결합시다. 어떻게 하면 20초마다 공이 하나씩 생기게 할 수 있을까요? 여기서 간단한 수학 공부를 하겠습니다. 바로 나머지 입니다.
공은 20초마다 생깁니다. 즉 [시간] 변수 값이 20, 40, 60 이렇게 변할 때마다 공이 하나 생깁니다. 이 수를 20으로 나누면 나머지가 어떻게 되나요? 나머지가 0이 됩니다. 어때요 감이 오나요?
[시간] 변수 값을 20으로 나누면 나머지가 0인 수가 될 때 공이 하나 더 만들어지면 됩니다. 이런 수를 20의 배수라고 합니다.
그림 3-25처럼 코딩을 하고 프로그램을 실행해 봅시다.
그림 3-26처럼 순식간에 공이 여러 개 복제되는 것을 볼 수 있습니다. 왜 이렇게 될까요?
[시간] 변수 값은 0으로 시작됩니다. 0에서 20으로 나누면 몫이 0이 되고 나머지도 0이 됩니다. 아무것도 없기 때문에 20으로 나눠도 나머지가 0이 됩니다. 그리고 컴퓨터는 아주 빠르게 일을 합니다. [시간] 변수 값이 0일 때 엄청나게 빠른 속도로 공을 복제합니다. 우리가 해결해야 할 문제는 다음과 같습니다.
우선 공이 하나만 복제되게 만들겠습니다. 어떻게 하면 될까요? <~초 기다리기> 블록을 사용하면 쉽게 문제를 해결할 수 있습니다. 복제를 하고 몇 초를 기다리면 [시간] 변수 값이 바뀝니다. 그리고 다음 20의 배수가 될 때까지 복제를 하지 않습니다.
'스크래치 > 아두이노 기초' 카테고리의 다른 글
스크래치 아두이노 스위치 (0) | 2019.04.25 |
---|---|
스크래치 아두이노 LED 게임 만들기 2 (0) | 2019.04.25 |
스크래치 아두이노 LED 깜빡이기 (0) | 2019.04.25 |
스크래치 아두이노 코딩하기 (0) | 2019.04.23 |
스크래치 아두이노 전자회로 기초 (0) | 2019.04.22 |