이번 장에서는 마우스를 이용하여 자유롭게 그림을 그릴 수 있는 페인트 툴을 만들어 보겠습니다. Pen을 이용하여 선의 크기와 색상을 변경할 수 있고, 전체를 지울 수 있는 간단한 기능을 넣어 보겠습니다.

1. 변수 생성 및 설정

color는 현재 칠해질 색상을 저장하며 size는 선의 굵기를 저장합니다. 스크래치에서 color 값은 0 (빨강) 부터 시작하여 숫자가 커질 수록 무지개 색의 '빨주노초파남보'를 나타내며 다시 200에서 빨강으로 설정됩니다.

아래와 같이 슬라이더의 범위를 설정하는 창이 출력되면 Min에 0을 Max에 200을 입력하고 [OK]를 클릭합니다.

2. 스프라이트 생성


마우스 커서만 보여지게 하기 위해 시작시 스프라이트를 숨기기(hide) 때문에 좌측처럼 점만 하나 찍은 후에 페인트 에디터의 [OK] 버튼을 클릭하여 저장합니다.
3. 스크립트 생성
전체 스크립트의 모습은 아래와 같으며, 그리 복잡하지 않습니다.

1) 초기화
시작버튼이 클릭되면 페인터의 초기화를 위해 아래와 같은 작업을 합니다.
[hide]
스프라이트를 숨깁니다.
[set color to (100)]
현재 색상을 100으로 설정합니다. 기본으로 다른 색상을 원할 경우에는 100이외의 다른 값으로 변경하셔도 됩니다.
[set size to (3)]
현재 선 굵기를 3으로 설정합니다. 위의 color와 같이 다른 값으로 설정하셔도 됩니다.
[pen up]
그리기 모드를 해제합니다.
[clear]
캔버스를 지웁니다.
2) 루프
시작 후에는 forever 내에서 무한으로 아래의 작업을 반복합니다.
[set pen size to (size)], [set pen color to (color)]
사용자에 의해 펜의 색상과 크기가 변경되었을 경우에 다시 설정합니다.
[go to [mouse-pointer]]
스프라이트의 현재 위치를 마우스 포인터의 위치로 설정합니다.
[if <mouse down?>]
마우스가 클릭되었을 경우에는 [pen down]으로 선을 그리고 클릭되지 않은 상태면 [pwn up]으로 선을 그리지 않습니다.
3) 캔버스 삭제
[when [c] key pressed]
키보드에서 c 키가 눌러 졌을 경우에는 [clear]로 전체 캔버스를 지웁니다.
이제 완성되었습니다. 시작 버튼을 눌러 color와 size의 값들을 변경해 가면서 그림을 그려 봅니다.
전체 소스는 아래의 압축파일을 다운로드 받으세요
'프로그래밍 강좌 > 스크래치' 카테고리의 다른 글
4.1 [중급] 대전게임 케릭터 만들기 (0) | 2008.03.21 |
---|---|
3.7 [초급] 다트 게임 (0) | 2008.02.12 |
3.5 [초급] 키보드로 움직이는 우주선 (0) | 2008.01.28 |
3.4 [초급] 춤추는 댄서 (0) | 2008.01.25 |
3.3 [초급] 스크래치 사이트에서 공유하기 (3) | 2008.01.22 |