본문 바로가기
엔트리

[엔트리] 신호 처리

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