본문 바로가기
프로그래밍/엔트리

[엔트리] 신호 처리

by 아임코딩 2023. 4. 27.
728x90
반응형

안녕하세요 아임코딩입니다.

 

유튜브 링크

https://youtu.be/O2pMMM4SnYU

 

이번에는 엔트리에서 신호를 처리하는 방법에 대해서 알아보겠습니다.

엔트리에서 신호는 오브젝트들 사이에 일어나는 상호작용 입니다.

 

일상생활에서 친구들에게 메세지를 보내는 것처럼 엔트리 프로그램에서도 오브젝트 간에 신호를 보낼 수 있습니다.

엔트리에서는 신호에 관련한 코드 블럭을 제공합니다.

 

신호를 처리하는 코드 블록

 

위의 그림과 같이 엔트리에서는 신호를 처리하는 코드블럭들을 제공합니다.

 

 

신호를 처리하는 코드 블럭 설명

 

  • __신호를 받았을 때 코드 블럭 : 특정한 신호를 받았을 때 처리하는 코드 블럭을 이어붙일 수 있습니다.
  • __신호 보내고 기다리기 코드 블럭 : 신호를 보낸 후 신호를 받은 블록들의 실행이 끝날 때까지 기다립니다.
  • __신호 보내기 : 특정한 신호를 정하여 보낼 수 있습니다.

 

이 코드들을 이용하기 위해서는 어떤 신호인지 신호를 생성하고 지정을 해줘야합니다.

신호를 생성하는 방법에 대해서 알아보겠습니다.

 

신호 추가하기 버튼

 

코드꾸러미 상단에 보면 속성 창이 있습니다.

해당 버튼을 누르면 신호를 추가할 수 있는 화면이 나옵니다.

신호 추가하기 버튼을 누르면 새로운 신호를 만들 수 있습니다.

 

 

신호 추가하는 방법

 

 

신호 추가하기 버튼을 클릭하면 신호의 이름을 입력하고 신호를 추가할 수 있습니다.

"안녕"이라는 이름을 가진 신호를 추가해보겠습니다.

신호 이름에 "안녕"을 입력하고 신호 추가 버튼을 클릭하면 됩니다.

 

 

"안녕" 신호 추가하기

 

 

"안녕"이라는 신호가 추가된 것을 확인할 수 있습니다.

이제 이 "안녕" 신호를 이용하여 오브젝트 사이에 신호를 처리하는 방법에 대해서 알아보겠습니다.

 

 

돌고래, 고양이 오브젝트 추가

 

 

오브젝트 간 신호를 처리하기 위해서 오브젝트를 추가해줍니다.

동물 오브젝트 중 핑크 돌고래와 고양이 오브젝트를 추가했습니다.

 

 

오브젝트가 추가된 화면

 

 

핑크 돌고래와 고양이 오브젝트가 추가된 것을 확인할 수 있습니다.

 

엔트리 봇에서 "안녕" 신호를 보내고 고양이와 돌고래 오브젝트에서 신호를 받으면 말을 하는 프로그램을 만들어보겠습니다.

 

엔트리봇 코드

 

엔트리봇은 프로그램을 시작하는 버튼을 누르면 "안녕" 신호를 보내도록 코드를 만들었습니다.

 

이 신호는 프로그램 내에 있는 모든 오브젝트에 전달됩니다.

현재 프로그램에는 엔트리봇, 핑크 돌고래, 고양이가 존재합니다.

엔트리봇 오브젝트가 "안녕" 신호를 보내면 모든 오브젝트에서 신호를 받습니다.

 

핑크 돌고래와 고양이에서 이 신호를 받았을 때 신호를 처리하는 코드를 작성하겠습니다.

핑크 돌고래와 고양이는 신호를 받으면 신호를 받았다고 말을 합니다.

오브젝트가 말을 하는 코드는 생김새 코드 블럭에 있습니다.

 

말하기 코드 블럭

 

 

생김새 코드 블럭 중 말하기 코드 블럭을 이용하여 오브젝트가 말하는 프로그램을 만들 수 있습니다.

 

 

고양이 코드 블럭

 

고양이 오브젝트의 코드에서는 "안녕" 신호를 받으면 "고양이 신호 받음!" 을 4초 동안 말하도록 코드를 만들었습니다.

 

 

 

돌고래 오브젝트

 

돌고래 오브젝트도 신호를 받으면 "돌고래 신호 받음!"을 출력하도록 코드를 만들었습니다.

 

이제 전체 프로그램을 실행해보겠습니다.

 

 

 

동영상 서비스가 종료되어 해당 콘텐츠를 재생할 수 없습니다.

 

프로그램이 시작하면 엔트리봇은 "안녕" 신호를 보냅니다.

고양이 오브젝트는 신호를 받으면 "고양이 신호 받음!"을 출력합니다.

돌고래 오브젝트는 신호를 받으면 "돌고래 신호 받음!"을 출력합니다.

위의 동영상에서 확인할 수 있듯이 의도한 대로 프로그램이 잘 동작하는 것을 확인할 수 있습니다.

이상으로 엔트리에서 신호를 처리하는 방법에 대해서 알아봤습니다.

728x90
반응형

'프로그래밍 > 엔트리' 카테고리의 다른 글

[엔트리] 조건 코드 블록  (0) 2023.04.30
[엔트리] 코드 반복하기  (0) 2023.04.27
[엔트리] 오브젝트 추가  (0) 2023.04.27
[엔트리] 오브젝트 클릭  (0) 2023.04.27
[엔트리] 마우스 클릭  (0) 2023.04.27