본문 바로가기
[ Block Coding ]/- 스크래치 공부

스크래치19장(복제하기 블록, 멈추기 블록, 창작게임)

by MRG 2020. 5. 29.
728x90
반응형
728x90

▣ 안녕하세요 ^^
저번 시간에 숙제는 잘해보셨나요?? ^^
알고리즘 순서도와 코딩 잘해보셨을 거라 생각하고 
오늘은 복제하기 블록을 배워보겠습니다. 

 

▣ 이렇게 제어를 들어가면 복제하기에 관련된 블록들이 있습니다. 
하나하나 사용해볼까요?

 

 

▣ 이렇게 코딩을 하면 어떻게 될까요?
블록에 순차적원리를 생각하면서 해석해보겠습니다.
깃발을 누르면 나 자신 복제하기가 작동되겠죠?
내가 코딩한 고양이 스프라이트를 의미합니다.
그다음에 어떤 블록이 작동될까요?
네 맞습니다.
복제되었을 때 블록이 작동됩니다. 
복제가 되는 순간
복제본들에 깃발에 역할로 말이죠.

▣ 이 블록이 시작됩니다.
그럼 복제가 되었을 때에 첫 블록은 1초 동안 랜덤으로 움직이기 블록이기 때문에 
랜덤으로 움직이게 됩니다. 

▣ 그럼 무한으로 복제를 하면 어떻게 될까요?
직접 한번 해보세요 ^^

▣ 네 당연히 0초에 속도로 무한복제 되기 때문에 
빠르게 복제본이 복제가 되고 바로바로 랜덤으로 움직이게 되는 모습을 보여줍니다. ^^
그런데 이대로 계속 하면 스크래치가 느려지는 걸 느끼실 수 있을 겁니다. 

▣ 우리가 게임을 할때에도 이렇게 많은 캐릭터들이 화면에 무한으로 생성된다면 
우리 컴퓨터가 계속 모든 코딩을 연산하고 우리한테 보여줘야하기 때문에 
무수하게 작업을 하겠죠?
그럼 컴퓨터 사양에 따라 정말 느려질겁니다. 
그럼 복제본이 이렇게 쌓이는걸 방지하려면 어떻게 해야 할까요?

 

 

▣ 분명히 숨기기를 하면 안 되냐고 하시는 분이 있을 겁니다. 
네 틀렸습니다.
우리가 형태 블록을 배울 때 중요하다고 이야기했듯이
숨기기 블록은 그냥 우리 눈에 안 보일 뿐
계속 그 자리에 있습니다. ^^
그럼 컴퓨터가 그 캐릭터를 숨기는 연산을 계속하고 있다는 이야기가 되죠.
그럼 어떻게 해야 할까요?
네 맞습니다.
복제본을 삭제하면 됩니다. 

 

 

▣ 이렇게 하게 되면 
복제가 되는 순간 1초 동안 랜덤으로 간 후에 
그다음 블록에 순차적으로 이 복제본 삭제하기 블록을 실행하기 때문에
삭제가 됩니다. 
그럼 아예 없어지는 걸 의미하는데,
이것도 사실 컴퓨터한테 상당히 무리하는 작업을 시키는 건데 이거에 대해서는
나중에 게임을 만들 때 한번 이야기하겠습니다.

▣ 자 직접 블록에 순차적 원리를 생각하며 
복제본한테 명령을 주고 삭제를 해보세요 ^^
바로 삭제되는 게 싫으신 분은 당연히 기다리기 블록을 넣으면 되겠죠?

▣ 자 그럼 복제하기 블록을 이용해서 무엇을 할 수 있을까요?
하나 예시로 만들어보겠습니다.

 

▣ 자 이렇게 코딩하면 어떻게 될까요?
깃발을 누르면 원본은 숨겨집니다.
그리고 0.5 단위로 복제가 됩니다.

▣ 그럼 복제가 되면 처음에 보이기 블록을 실행하겠죠?
왜 넣었을까요?
그건 원본이 숨겨져 있기 때문에
복제하게 되면 숨겨져 있는 상태로 복제되기 때문입니다. 
그래서 보이기블록을 넣었습니다.

▣ 그리고 y 위치는 고정으로 했고 x는 난수로 지정했습니다.
그래야 위에서 매번 y에 +위치로 나타나고 x 랜덤에 위치에서 떨어질 수 있기 때문입니다.
그리고 벽에 닿을 때까지 -y가 움직이고 복제본이 삭제가 됩니다.
이렇게 하면 미사일을 떨어뜨리는 게임을 스프라이트 
하나로만 만들 수 있겠죠?

▣ 제 코딩이 정답은 아닙니다. 
여러분들에 방법으로 만들어보세요. 
그리고 제가 만든 코딩을 먼저 따라 해서 해보시고 
하나하나 숫자를 적어서 어떻게 순차적으로 작동하는지
적어보시고 해석해보세요.
그리고 직접 다르게 만들어보세요.

 

▣ 이번에는 제어블록에 있는 멈추기 블록을 공부해보겠습니다.
이 블록은 무엇일까요?
네 말 그대로 멈추는 블록입니다. 
직접 코딩을 해서 확인해볼까요?

 

 

▣ 이렇게 고양이와 강아지를 무한으로 움직이게 한 다음에
스페이스를 누르면 모두 멈추기를 해보겠습니다.
그럼 어떻게 되나요?
네둘 다 멈추는 걸 볼 수 있습니다.
모두 멈추기 블록은 모든 스프라이트에 
있는 블록에 코딩을 바로 끝내는 블록이라고 생각하시면 될 거 같습니다.

 

▣ 멈추기 블록에 이렇게 다른 기능들도 있는데 
확인해 볼까요?

 

▣ 이 스프라이트에 있는 다른 스크립트 멈추기를 넣어서 
스페이스를 눌러보겠습니다.
그럼 고양이에 무한반복 움직이는 블록만 
끝나는 걸 볼 수 있습니다.
말 그대로 스크립트라는 건 우리가 코딩을 해서 블록을 넣은 가운데 부분을 이야기합니다. 

 

▣ 그럼 이 스크립트 멈추기 블록은 어떤 기능일까요?
네 말 그대로 함께 끼어있는 블록만 멈추게 됩니다. 

▣ 멈추기 블록 3개 가지 기능들을 하나하나 저런 식으로 코딩으로 확인해주세요.
멈추기 블록은 게임마다 멈춰야 하는 상황이 있기 때문에 
중요한 블록입니다. 
꼭 직접 만들어서 코딩해서 확인해주세요.

 

▣ 오늘도 알고리즘 순서도를 설계하는 걸 복습하겠습니다.
복제하기 블록에서 복제가 되는 과정도 단말과 처리 부분으로 도형을 만들면 되겠죠?
꼭 한번 알고리즘 순서도를 설계해보세요.

 

 

 

 

▣ 자 오늘 연습문제입니다. ^^
비행기 게임처럼 만들어보았습니다.
적 캐릭터와 아이템은 복제하기 블록을 사용하셔야 합니다. ^^
어떻게 적과 아이템이 어디서 어떻게 복제돼서 나오는지를 파악하시는 게 중요합니다.
그리고 언제 멈출지도 잘 보셔야 합니다. ^^
이건 여러분들은 선택입니다.
그리고 캐릭터와 아이템 적들은 여러분들이 원하는 이미지를 선택해서 만들어주세요.
소리도 반드시 넣으셔야 됩니다.
그래야 게임 답죠 ㅎㅎ
다시 이야기하지만 먼저 영상을 보고 패턴을 파악을 하고 알고리즘 순서도를 설계한 후에 코딩을 진행해주세요 ^^
혹시 너무 어려우시거나 피드백이 필요하신 분은 댓글 남겨주세요 ^^


▣ 오늘 이렇게 복제하기 블록과 멈추기 블록을 공부했습니다.
복제하기 블록을 활용하면 총을 쏘는 것도 가능합니다.
그것도 연구해보세요 ^^
중간중간 여러분들이 창작 게임 만들어 보시는 것도 잊지 마시고요 ^^
알고리즘 순서도 설계하는 거 잊지 마세요 ^^
질문 있으시면 댓글 남겨주시고요.
그럼 다음장에서 뵙겠습니다. 


▣ 포기하지 마세요!!! 저도 했습니다.!!! 파이팅!!!

728x90
반응형

댓글