스크래치에서 제거하기 어려운 버그를 해결하는 방법은 무엇입니까?

안녕하세요 여러분, 오늘 우리는 스크래치를 사용하여 프로그래밍할 때 발생하는 몇 가지 일반적인 버그에 대해 이야기할 것입니다. 나는 당신이 이러한 버그를 접했다고 생각합니다. 여기서 언급한 이름은 좀 더 전문적이지만 전체 기사를 읽을 수 있기를 바랍니다. 그것, 저자를 팔로우하고 칭찬하십시오!


첫 번째

자신의 부주의로 인해 버그가 발생하지 않도록 하려면 다음을 수행해야 합니다.

1: 논리가 올바른지 확인하기 위해 코드를 다시 읽으십시오.

2: 예를 들어 [목록]의 첫 번째 n이 {[목록]의 [목록]의 첫 번째 n으로 기록되는지 확인하려면 반환 부분을 읽으십시오.

그렇다면 지식의 문제다.


Scartch 초보자를 위한 자주 묻는 질문

크기 제한

        어느 시점에서 문자 크기를 초대형으로 설정하면 문자 크기가 이상적으로 설정되지 않는 경우가 있습니다. 이때 빈 모양을 만들도록 선택할 수 있습니다.

        이 도형은 그릴 필요 없이 그냥 비워두시면 됩니다. 그런 다음 먼저 도형을 이 빈 도형으로 전환하고 이때 원하는 크기를 설정한 다음 도형을 캐릭터의 도형으로 바꾸시면 됩니다. 설정에 성공했습니다.

이동 제한

        때때로 우리는 캐릭터가 아무리 움직여도 무대 영역 밖으로 이동할 수 없다는 것을 알게 됩니다. 이것은 매우 번거로운 일입니다. 우리는 캐릭터를 무대 영역 밖에 숨길 수 없습니다. 매우 큰 모양, 이 모양의 모양 크기는 필요합니다. 원래 캐릭터 모양의 모양 크기보다 크고 훨씬 더 큰 다음 실행을 반복하고 먼저 더 큰 모양으로 전환한 다음 이동 코드(예: x 증가 10)를 실행하고 마지막으로 우리 캐릭터의 원래 모양으로 전환한 다음 계속 움직이면 무대 영역을 벗어날 때까지 성공했음을 증명합니다.

복제 제한

        스크래치의 원래 버전에서는 게임의 클론 수가 300개를 초과할 수 없습니다. 즉, 모든 캐릭터의 총 클론 수가 300개를 초과할 수 없습니다. 301번째 클론이므로 클론 사용을 줄이고, 300클론을 넘지 않고 플레이어 경험에 영향을 미치지 않는 작품을 만드는 방법을 모색해야 합니다.

브러시 제한

        때때로 우리는 브러시로 도형을 그린 다음 브러시로 그린 도형 위로 문자를 이동하면 문자가 브러시로 그린 도형을 완전히 차단하는 것을 발견할 것입니다. 어떻게 해결해야 할까요? 정말 죄송합니다. 이 문제는 해결할 수 없습니다. 가능한 한 합성을 시도하거나 브러시를 사용하여 게임을 만들거나(HPP 작품은 순수 브러시입니다) 게임을 만들기 위해 브러시를 사용하지 마십시오.


스크래치 멀티스레딩 제한 사항

        새 버전의 스크래치(Scratch3.29.1)에서 테스트 중입니다. 프로그램에 특수 코드가 있으면(특수 코드가 무엇인지 모르겠습니다) Scratch는 너무 많은 프로그램을 실행할 수 없습니다. 예를 들면, 브로드캐스트를 보내면 수신자가 충분하면 수신자가 메시지를 수신하지 못하는 상황이 반드시 발생합니다.이 상황을 스크래치 멀티 스레드 제한이라고 합니다.

        그렇다면 Scratch 멀티 스레딩 제한의 간섭을 줄이는 방법은 무엇입니까?

덜 방송하고 클론을 사용하십시오

        우리 모두 알다시피, 스크래치의 멀티스레딩 제한으로 제한된 수는 매우 적지만 복제본은 300개를 복제할 수 있습니다! 이것은 클론으로 300개의 프로그램을 실행할 수 있음을 의미합니다! 이것은 우리가 발생한 제한 문제를 완벽하게 해결합니다. 이 작업을 구현하는 방법은 무엇입니까?

        캐릭터를 복제한 다음 이 캐릭터의 코드를 "복제 시작 시" 코드 아래에 넣으면 문제가 완벽하게 해결되고 멀티스레딩을 위한 공간이 확보됩니다. 그럼 여기서 끝이 아닌데 방송을 하고 싶으면 어떻게 해야 할까요? 우리 클론이 브로드캐스트를 받으면 클론인지 판단을 해야 하는데 주의하셔야 할 점은 우리의 브로드캐스트가 모든 유닛에게 전송되는데 이 유닛에는 본체와 클론, 즉 우리의 본체가 포함된다는 것입니다. 이것도 브로드캐스트를 받아 클론 여부를 판단하는 판단을 하게 되는데 이는 매우 안타까운 일입니다.온톨로지의 실행 코드가 멀티스레드 공간을 차지하게 되는데 이때 이 문제를 어떻게 해결할 수 있을까요?

        예를 들어 변수를 사용하는 것은 매우 간단합니다. 예를 들어 변수를 0으로 설정한 다음 복제는 복제할 때 이 변수 ​​= 1을 기다립니다. 즉, 코드를 실행하기 위해 변수가 1이 될 때까지 기다린 다음 방송을 하고 싶다면 이 변수를 1로 설정할 수 있으며 방송을 수신하는 클론은 다음에 무엇을 해야할지 알 수 있습니다. 클론이 감지하도록 하려면 "대기" 코드 뒤에 수행할 프로그램을 추가하기만 하면 됩니다. 즉, 이 방송을 두 번 이상 수신할 수 있는 경우 다음 프로그램을 사용할 수 있습니다.

클론이 시작될 때
        <현재 클론이 이 브로드캐스트의 수신자>인 경우
                반복하다
                        대기 <(변수)=1>
                        브로드캐스트 수행 후 실행할 코드
                        대기 < [(변수)=1 거짓] >

        이렇게 하면 완벽하게 문제가 해결되는데, 즉 방송이 방송되길 기다리면 되지만 아직 이 방법에 대한 설정이 필요하다. 위의 코드가 작동하도록 변수를 0으로 재설정합니다.


스크래치 실행 속도 문제

수제 빌딩 블록

다음 그림과 같은 자체 제작 빌딩 블록에는 잘 알려지지 않은 문제가 있습니다.

그림 1

그림 2

        먼저 소개하겠습니다. 이것은 큰 지도 엔진입니다. 그림 1과 그림 2의 효과는 같은 것 같지만 책임감 있게 말할 수 있습니다. 이 둘의 효과는 다릅니다! 자체 제작한 빌딩 블록은 "감지 가능한 엔터티"를 읽을 때 시간이 걸리기 때문에 그림 1에는 그러한 단계가 없습니다. 그림 1의 충돌 코드는 이상적이지만 그림 2의 코드는 매우 빈약합니다. 따라서 자체 제작 빌딩 블록 Boolean 값을 사용할 때는 원래대로 교체하는 것이 좋으며 일반적으로 덜 사용하는 것이 좋습니다.

방송

        예를 들어 방송사는 방송을 보내고 수신자는 방송을 받는데, 이 단계는 평범하지만 실제로는 중간에 시간이 걸린다. 이 문제, 방송에 문제가 생겼을 때 문제인지 확인해보세요.


스크래치 단점으로 인해 문제 발생

집에서 만든 빌딩 블록은 화면을 새로 고치지 않습니다.

        화면을 새로 고치지 않는 자체 제작 블록 아래에 실행하는 데 시간이 걸리는 빌딩 블록을 배치하면 Sc가 대기 시간 빌딩 블록이 있는지 여부를 신경 쓰지 않기 때문에 컴퓨터가 특히 멈춥니다. 주목

특수 키를 누르십시오

        지금까지 Sc는 기존의 키 외에 엔터, 쉬프트 등의 키도 감지할 수 있다. , 그러나 backsapce, esc, tab 등과 같은 일부 시스템 키는 감지할 수 없으므로 직접 시도하지 마십시오.


        저는 독학으로 프로그래밍을 하고 있으며, 이러한 점들은 모두 제가 공들여 연구한 것입니다. 물론 여기에 언급되지 않은 몇 가지 기능이 있습니다. 이 튜토리얼은 몇 가지 일반적인 문제에 대해서만 설명하기 때문에 모두가 저를 위해 북마크할 수 있기를 바랍니다. 감사합니다!

추천

출처blog.csdn.net/leyang0910/article/details/131946659