A, B 버튼 이벤트 전달하기

조종기와 마퀸카트 간의 통신 중 이벤트를 전달해야 할 경우가 있다. 예를 들어 조종기에서 A버튼을 누루면, 마퀸카트에서 A버튼 누른 것처럼 동작해야 한다. 간단한 방법이 있다.

 

[고급 > 고급제어 > 이벤트 생성] 블록

d이벤트 생성 블록
사용 예

이렇게 블록을 만들면 마퀸카트에서 A, B버튼 누른 것처럼 할 수 있다.

 

 

반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,

기존 R/C CAR 구현의 문제점

가속도 센서를 감지하면 실행 블록 사용하여 간단하게 구현을 할 수 있다는 장점은 있다. 대신 빠르게 동작(제스처)을 하다 보면 조종기와 R/C CAR가 다를게 동작한다. 예를 들자면 조정기는 왼쪽 기울기 동작을 하고 있는데 R/C CAR는 오른쪽을 동작을 한다. 이유는 이벤트 감지 시 딱 한번 이벤트를 실행하기 때문이다. 또한 한 동작 구현이 5가지로 제한되어있다. 

업그레이드된 R/C CAR 구현하기

기존 5가지의 동작에서 대각선 방향이 추가된 9가지 동작을 구현했다. 한번 더 업그레이드 한다면 방향의 크기를 구현할 생각이다. 여기까지 하면 해야 할 것들이 많아져서 자유 미션은 9가지 동작으로 할 것이다.

 

코드 비교

동작(제스처) 감지하면 실행 블록 이용 - 5가지 동작
가속도센서 X. Y출을 이용하여 9가지 동작(제스처) 구현 블록 코드

FC(앞으로) , FL(왼쪽 앞으로), FR(오른쪽 앞으로), CL(외쪽), BL(왼쪽 뒤로), BC(뒤로), BR(오른쪽 뒤로), CR(오른쪽), CC(정지) 9가지 동작(제스처)에 맞게 R/C CAR에서 구현해 주면 된다. 특이한건 boundray 변수를 이용하여 가속도센서가 반응하는 크기를  조절한다. 보통 boundary과 -boundary을 코드로 표현할 때는 그대로 사용하면 되는데, 블록은 [0 빼기(-) boundary] 로 해야 한다.

반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,

메이크코드 블록 에디터에서 배열에 함수 넣기

아마도 처음 프로그램을 배우는 사람들은 뭔 소리야 할 것이다. 왜냐면 숫자 또는 문자만 넣은 것만 봤기 때문일 거다. 하지만 배열에 다 넣을 수 있다. 그래서 블록에서는 할 수 없어서 자바스크립트 에디터에서 해봤다. 된다.

 

문제는??

문제는 블록 에디터로 변경할 경우 에러가 난다. 어쩌고 저쩌고, 무시하고 블록 에디터로 변경하면 함수 이름들이 다 바뀐다. 원하지 않은 코드들이 추가된다.

 

왜 배열에 함수를??

자유 미션이 마퀸 카트를 만드는 것이다. R/C CAR 기능에 마리오 카트처럼 중간중간에 허스키렌즈로 아이템을 인식하면 랜덤으로 효과를 적용하는 것이다. 그 효과를 적용하기 위해서 여러 개의 함수를 만들어 배열에 넣고 랜덤으로 실행하려고 했다. 새로운 효과가 추가되면 함수 만들고 배열에 넣으면 끝이다. 이렇게 하지 않을 경우 함수를 만들고, 제어문을 추가하고, 자잘한 코드를 추가 또는 수정을 해야 한다. 

 

이번 자유미션은 후자의 방식으로

전부를 스크립트 코드를 쓰지 못하기 때문에 귀찮더라도 후자의 방식으로 해야겠다.

반응형
블로그 이미지

두리뭉실:해피파인더그룹

컴퓨터 코치 두리뭉실

,