본문 바로가기
엔트리/엔트리 팁

엔트리 그리기 버그 발생 원인 및 고치는 방법

by 할거없네 2020. 4. 21.

안녕하세요. 승승이입니다.

요즘 엔트리에서 발생하고 있는 '그리기'버그가 발생하는 조건과, 그것을 임시적이지만 고치는 방법에 대해서 간략하게 설명합니다.

 

 

 

 

 

현재 그리기 블록에 보시면 붓을 그리기 시작하고 멈추고, 지우는 블록이 있습니다.

그런데 어느 조건에 처하면 그리기는 지우기가 되지 않는 버그가 현재 발생하고 있습니다.

 

일단 정상적인 동작을 확인해 봅니다.

 

 

만약 선분 하나를 그려보겠습니다. 바로 (0,0)에서 마우스까지의 선을 계속해서 그리는 겁니다.

 

 

선분을 그려주지만 이전에 그렸던 선분은 그대로 있습니다.

그래서 이걸 지우고 다시 그려주기 위해서 '모든 붓 지우기'블록을 사용합니다.

 

이렇게 만들어 주면 아래와 같이 동작합니다.

 

여기까지는 문제없이 동작합니다.

 


그러나 선분이 1개가 아닌 2개라면 어떻게 될까요?

한번 그려주겠습니다.

코딩은 위와 같습니다. 0에서 마우스좌표까지 이동해서 그리고, (10,10)으로 간다음 다시 마우스까지 선분을 그리는 겁니다.

 

보시다시피 '모든붓 지우기'가 동작을 안하는 버그가 발생합니다.

즉 이 버그는 그리기 시작하기, 멈추기가 두번 연속이 되면 발생하는 버그 인거 같네요.

여러가지 테스트를 해보니까 '시작하기'가 두번 들어가면 버그가 발생합니다.

 

그래서 '그리기 시작하기'와 '그리기 멈추기'를 대신하는 방법을 찾으면 버그는 해결할 수 있습니다.


다행히도 방법이 있는데요, 바로 '투명도 조절'입니다.

 

투명도가 100이면 완전히 투명해지고, 0이면 투명도가 없는 붓이 됩니다.

즉, 그리기를 멈추기는 완전히 투명하게, 그리기 시작하기는 투명도를 없애는 것으로 임시로 해결이 가능합니다.

처음에 그리기를 한번 시작한 후에, 펜을 떼야 하는 시점과 다시 펜을 그리기 시작하는 것은 '투명도'로 구현할 수 있습니다.

 

위와 같이 그리기 시작하기와 멈추기를 '투명도'로 바꿔서 실행하면,

이처럼 버그를 고칠 수 있습니다.

 

댓글