SqueakByExample:11.2: Difference between revisions

From 흡혈양파의 번역工房
Jump to navigation Jump to search
(SBE morph조작하기 페이지 추가)
 
(번역수정)
 
(2 intermediate revisions by the same user not shown)
Line 1: Line 1:
==morphs 조작하기==
==morph 의 조작==


morph 는 객체이기 때문에 Smalltalk에서 다른 모든 객체들처럼 조작할 수 있습니다: 메시지를 보내서 우리는 morph의 속성을 바꿀 수 있고 morph의 서브클래스를 만드는 것등을 할 수 있습니다.
morph 는 객체이기 때문에, 스몰토크에서 다른 모든 객체를 다루듯이 조작할 수 있습니다: 메시지를 보내는 것으로 morph 의 속성을 바꿀 수 있고 morph 의 서브클래스를 만드는 작업등을 할 수 있습니다. 모든 morph 는 현재 화면에 열려있지 않은 상태여도, 위치와 크기를 가지고 있습니다. 모든 morph 는 편의상, 화면에서 사각형의 영역을 가지고있는것으로 가정되고, 규칙적인 모양이 아니라고 해도, 위치와 크기의 값은 대상이되는 morph 를 둘러싸는 최소크기의 직사격형 상자가 되며, 이 상자를 morph 의 bounding box 또는 "bounds" 라고 합니다. Postion 메서드는 morph 의 상단 좌측 모서리의 위치를 기술하는 점(point)의 값을 반환합니다. morph 에 대한 좌표체계의 기준점은 화면 좌상단 구석에 있으며, 화면에서 하단으로 증가하는 경우는 ''y'' 좌표, 화면에서 우측으로 증가하는 경우는 ''x'' 좌표가 됩니다. extent 메서드도 postion 메서드처럼 point 를 반환합니다만, 위치값을 반환하는것이 아니라 morph 의 폭과 높이에 대한 값을 반환합니다.


모든 morph는 화면에 현재 열려있지 않을지라도, 위치와 크기를 갖고 있습니다. 모든 morph는 편리를 위해 화면의 직사각형 영역(region)을 차지하기 위한 것으로 고려될 수 있으며, 만약 모양(shapes)이 불규칙할 지라도 morphs의 위치(position)과 크기(size)는 그것들을 둘러싼 가장 작은 직사각형 “box(상자)”에 한정되며, 이 상자는 morph의 bounding box(묶기 상자)로 알려져 있거나 단지 morph의 “bound’로 알려져 있습니다. Position 메소드는 morph의 상단 좌측 모서리(또는 morph의 묶기 상자의 상단 좌측 모서리)의 위치를 기술하는 점(point)을 리턴합니다. 좌표 시스템(the coordinate system)의 원점(origin)은 화면에서 하단으로 증가하는 y좌표, 화면에서 우측으로 이동하는 x좌표로 볼 때, 화면의 상단 좌측 모서리입니다. Extent 메소드 또한 점(point)을 리턴 하지만, 이 점(point)는 위치보다는, morph의 너비(width)와 높이(height)를 지정합니다.


{{CommentSqueak|다음 코드를 워크스페이스에 입력한 후 {{Template:HighlightGray|do it}} 을 실행하십시오.}}


{{CommentSqueak|다음 코드를 워크스페이스에 타이핑 한 후 {{Template:HighlightGray|do it}} 을 실행합니다.}}
<syntaxhighlight lang="smalltalk">
<syntaxhighlight lang="smalltalk">
joe := Morph new color: Color blue.
joe := Morph new color: Color blue.
Line 15: Line 14:




joe position을 타이핑 한 후 {{Template:HighlightGray|print it}} 을 실행합니다. joe를 제거하려면, joe position: (joe position + (10@3)) 을 반복적으로 실행합니다.
joe position 을 입력한 후 {{Template:HighlightGray|print it}} 을 실행합니다. joe 를 움직이기 위해서, joe position: (joe position + (10@3)) 을 반복적으로 실행합니다.


size로 유사한 것을 수행하는 것도 가능합니다. joe extent는 joe의 size를 답변으로 내놓으며 joe를 키우려면, joe extent: (joe extent * 1.1)를 실행합니다. Morph의 색상을 변경하려면, 그 morph에 인수로서 원하는 Color 오브젝트와 함께 color: 메시지를 발송합니다. 예를 들면 joe color: Color orange 입니다. 투명도(transparency)를 추가하려면 joe color: (Color orange alpha: 0.5)를 시도하십시오.
크기에 대해서도 같은 작업을 할 수 있습니다. joe extent 는 joe 의 크키를 반환하며, joe 의 크기를 크게 하려면, joe extent: (joe extent * 1.1) 를 실행합니다. Morph 의 색상을 변경하려면, 대상이 되는 morph 에 인자로 전달을 원하는 Color 객체와 함께 color: 메시지를 전송합니다. 예를 들면 joe color: Color orange 같은 내용이 되겠군요. 투명도를 추가하려면 joe color: (Color orange alpha: 0.5) 를 시도해보세요.




{{CommentSqueak|bill이 joe를 따르게 만들려면, 이 코드를 반복적으로 실행하십시오.}}
{{CommentSqueak|bill이 joe를 따르게 만들려면, 이 코드를 반복적으로 실행하십시오.}}
<syntaxhighlight lang="smalltalk">
<syntaxhighlight lang="smalltalk">
bill position: (joe position + (100@0))
bill position: (joe position + (100@0))
</syntaxhighlight>
</syntaxhighlight>


만약 여러분이 마우스를 사용하여 joe를 이동시키고 이 코드를 실행하신다면, bill은 이동되어 joe의 오른쪽으로 으로 100픽셀에 놓이게 될 것입니다.
 
만약 마우스를 써서 joe 를 이동시키고 이 코드를 실행한다면, bill 은 joe 의 우측 100 pixel 로 이동할겁니다.
 
 


==Notes==
==Notes==

Latest revision as of 15:02, 14 September 2013

morph 의 조작

morph 는 객체이기 때문에, 스몰토크에서 다른 모든 객체를 다루듯이 조작할 수 있습니다: 메시지를 보내는 것으로 morph 의 속성을 바꿀 수 있고 morph 의 서브클래스를 만드는 작업등을 할 수 있습니다. 모든 morph 는 현재 화면에 열려있지 않은 상태여도, 위치와 크기를 가지고 있습니다. 모든 morph 는 편의상, 화면에서 사각형의 영역을 가지고있는것으로 가정되고, 규칙적인 모양이 아니라고 해도, 위치와 크기의 값은 대상이되는 morph 를 둘러싸는 최소크기의 직사격형 상자가 되며, 이 상자를 morph 의 bounding box 또는 "bounds" 라고 합니다. Postion 메서드는 morph 의 상단 좌측 모서리의 위치를 기술하는 점(point)의 값을 반환합니다. morph 에 대한 좌표체계의 기준점은 화면 좌상단 구석에 있으며, 화면에서 하단으로 증가하는 경우는 y 좌표, 화면에서 우측으로 증가하는 경우는 x 좌표가 됩니다. extent 메서드도 postion 메서드처럼 point 를 반환합니다만, 위치값을 반환하는것이 아니라 morph 의 폭과 높이에 대한 값을 반환합니다.


Squeak comment.png다음 코드를 워크스페이스에 입력한 후 do it 을 실행하십시오.

joe := Morph new color: Color blue.
joe openInWorld.
bill := Morph new color: Color red .
bill openInWorld.


joe position 을 입력한 후 print it 을 실행합니다. joe 를 움직이기 위해서, joe position: (joe position + (10@3)) 을 반복적으로 실행합니다.

크기에 대해서도 같은 작업을 할 수 있습니다. joe extent 는 joe 의 크키를 반환하며, joe 의 크기를 크게 하려면, joe extent: (joe extent * 1.1) 를 실행합니다. Morph 의 색상을 변경하려면, 대상이 되는 morph 에 인자로 전달을 원하는 Color 객체와 함께 color: 메시지를 전송합니다. 예를 들면 joe color: Color orange 같은 내용이 되겠군요. 투명도를 추가하려면 joe color: (Color orange alpha: 0.5) 를 시도해보세요.


Squeak comment.pngbill이 joe를 따르게 만들려면, 이 코드를 반복적으로 실행하십시오.

bill position: (joe position + (100@0))


만약 마우스를 써서 joe 를 이동시키고 이 코드를 실행한다면, bill 은 joe 의 우측 100 pixel 로 이동할겁니다.


Notes