스프라이트가 마우스 포인터를 따라갈 때의 방향 제어

2353 단어 Scratch

스프라이트를 마우스 포인터에 따라 가고 싶습니다.



이것을 구현하려고 할 때 먼저 눈에 들어오는 블록은
  • 마우스 포인터로 이동
  • 마우스 포인터로 이동

  • 두 가지입니다.


    이것을 무한 루프 안에 넣어두면,
    항상 스프라이트는 마우스 포인터에 대해 가고, 게다가 방향도 바뀐다.
    포인터를 오른쪽으로 움직이면 오른쪽을 향하면서 따라 오고,
    포인터를 왼쪽으로 움직이면 왼쪽을 향하면서 따라 온다고 생각하지만, 그럴 수는 없다.

    문제





    아래 링크에서 "플래그"클릭 후 "1"을 클릭해보십시오.
    htps : // sc 등 tch. 미 t. 에즈/p로지ぇcts/158213042/
    따라서 오른쪽 방향이 기본 스프라이트 인 경우,
    포인터가 왼쪽으로 움직일 때,
    이동 중에는 왼쪽을 향해 주지만 이동이 끝나면 오른쪽으로 돌아갑니다.

    왼쪽 방향이 기본 스프라이트 인 경우 반대로,
    포인터가 오른쪽으로 이동하면 이동이 완료된 후 왼쪽을 향합니다.

    원인



    원인은, 「마우스의 포인터에 향한다」의 명령의 사양입니다.
    이 명령은 스프라이트와 포인터의 좌표가 일치하면,
    기본 방향을 향하도록 되어 있습니다.



    여기 스케치에서 그 사양을 확인할 수 있습니다.
    htps : // sc 등 tch. 미 t. 에즈/p로지ぇcts/170996249/

    이 사양에 의해, 앞의 무한 루프라면,
  • 스프라이트와 포인터가 겹치지 않으면 스프라이트가 그곳으로 이동합니다
  • 그 때, 스프라이트의 방향은 포인터쪽을 향한다
  • 스프라이트와 포인터가 겹치면 스프라이트가 더 이상 움직이지 않습니다
  • 이 때 "마우스 포인터로 향하는"명령 사양에 따라 스프라이트가 기본 방향이됩니다.

    되는 것입니다.

    해결책



    해결책은 다양하다고 생각합니다.
    처음 소개한 스케치에서는 2번~4번의 알고리즘은 모두 문제 없이 동작해 줍니다.
    그 중에서도 가장 간단한 것은 4번 알고리즘이 아닐까요?



    이번에는 회전 방향이 좌우뿐이므로,
    스프라이트와 포인터가 겹치는 조건을 써야 할 곳에는
    x 좌표가 일치하는 것으로 대체됩니다.

    회전 방향이 자유롭게 회전하는 경우,
    조건식은 x 좌표가 불일치이고 y 좌표도 불일치
    그렇다면 좋을 것입니다.
    이렇게하면 스프라이트와 포인터가 겹치면 스프라이트의 방향이 조작되지 않습니다.
    직전의 방향이 유지되게 됩니다.
  • 좋은 웹페이지 즐겨찾기