안녕하세요~ 바람처럼 입니다..?오랫만에 강좌란에서 뵙게 되는군요...^^
이번 강좌에서는 업그레이드된?프렙 3.7 의 강력한 기능들을 몇번에 나누어 소개하고자 합니다....
이번에 업그레이된 프렙은 예전의 프렙과는 사뭇 다른 모습을 보여줍니다.
프렙을 이용하면서 아쉬웠던 기능들이 대거 지원되면서 신세계가 열렸다고 할수 있겠죠...
저와함께 차근차근 강력한 프렙의 세계로 떠날 준비가 되셨나요?
당연한 말이지만 아래 설명드리는 내용들은 모두 프렙 3.7 이상에서만 동작합니다~^^
1. 변수의 정의 (Variables)
스크립트를 포함한 모든 프로그래밍 언어의 기본은 변수 입니다.?
이 기본적인 변수를 프렙은 이제서야 드디어 지원하네요~ㅎㅎ
변수는 고정된 값이 아닌 변화하는 값을 보관하기 위한 장소라고 정의할 수 있겠죠.
따라서 우리가 지정하려고 하는 값이 다양하게 변화하더라도 변수를 이용하면 쉽게 처리할 수 있습니다.
또한, 변수를 이용해 사칙연산을 비롯한 다양한 연산이 가능하므로 좀더 편리하게 시퀀스를 구현할 수 있습니다.
2. 변수명 (Naming Convention)
프렙에서 변수명 규칙은, 영문 및 숫자, _(언더바) 그리고 특수한 경우에 사용하는 @ 로 구성되어 있습니다.
아쉽게도 한글변수명은 사용 하지 못하며, @로 시작하는 특수한 환경변수는 사용자가 지정할 수 없습니다.
변수의 첫번째 문자로 숫자가 올 수 없으며, 영문 대소문자는 구분됩니다.
예를 들자면 다음과 같은 변수명을 이용할 수 있습니다.
Test123 ?/ ?this_means_war ?/ ?DoYouKnowKimchi ?/ One2Three4Five
3. 변수정의 (Definition)
변수의 정의는 기존과 마찬가지로 컨트롤 항목에서 찾아볼 수 있습니다.
이 항목을 클릭해서 다양한 변수를 정의 합니다.
이 때, 변수정의 왼쪽 - 는 삭제, 오른쪽 + 는 위에 한줄을 더 삽입하는 역할을 합니다.
4. 변수형식 (Type)
프렙은 3가지 종류의 변수형태를 지원하며, 아래 표와 같습니다.
Number ? ?: 숫자형 입니다. 양수/음수 및 정수/실수값을 지정합니다.
Rectangle : 영역형 입니다. (x1 y1 x2 y2) 의 4개 좌표값으로 사각형 모양의 영역을 지정합니다.
String ? ? ? ?: 문자형 입니다. 한글을 포함한 모든 문자 지정이 가능하며,?
? ? ? ? ? ? ? ? ? ?ESC 문자 \ 을 이용하여 탭, 리턴, 백스페이스 등의 특수문자도 지정가능 합니다.
5, 환경변수 (Special Variables)
앞서 변수명 설명에서 @ 로 시작하는 특수한 변수가 있다고 말씀 드렸던 것이 바로 환경변수 입니다.
@repeat ? ? : 현재 레코드 반복횟수를 저장합니다.
@loop ? ? ? ?: 현재 루프 카운트를 저장합니다.
@lastif ? ? ? ?: 마지막 if 문의 성공/실패 여부를 저장합니다.
@rotation ? ?: 현재 디바이스의 회전방향을 저장합니다.
@cpuusage: 현재 디바이스의 CPU 부하를 저장합니다.
@lastmatch : 마지막 성공한 wait image 의 좌표를 저장합니다.
@screen ? ? : 현재 디바이스의 화면 크기를 저장합니다.
@clipboard ?: 클립보드 내용을 저장합니다.
6. 변수변경자 (Modifier)
기본적으로 변수명은 한단어로 구성되는게 원칙 입니다만, 프렙에선 몇가지 변경자를 두어 . 으로 구분하고 있습니다.
주로 영역 및 좌표와 관계되는 영역형식의 변수에서 사용됩니다.
앞서 설명드린 Rectangle 형식의 변수는 4개의 좌표로 구성되어 있습니다.
이 값들을 따로 참조할때 사용되는 용도로 많이 사용됩니다.
알기쉽게 설명 드리자면, var=rect:(10 20 30 40) 로 정의된 var 라는 변수가 있다고 할 때
각각의 변경자 값은 다음과 같습니다.
var.left == 10 ?/ var.top == 20 ?/ ?var.right == 30 ?/ ?var.bottom == 40
var.x == 20 ?/ ?var.y == 30
var.width == 20 ?/ ?var.height == 20
String 형식의 변수 길이를 구하는 length 변경자도 있습니다.
문자열 길이는 영문/한글 구분없이 한글자를 1로 계산 합니다.
예를 들자면, var=str:"대한민국" ?일경우 var.length 값은 4 가 됩니다.
마찬가지로 var=str:"Test Length" 일경우 var.length 값은 11 이 됩니다.
추가적으로, 문자열을 숫자로 바꿔주는 asnum 과, 문자열을 영역으로 바꿔주는 asrect 가 있습니다.
또한 반대로 숫자,영역을 문자열로 바꿔주는 asstr 도 있으니 필요에 따라 사용해 주시면 되겠습니다.
7. Number 형식 변수의 연산자
숫자형 변수에서 사용 가능한 연산자 입니다.
기본적인 사칙연산과 비트연산자 등을 지원하고 있습니다.
8. Rectangle 형식 변수의 연산자
영역형식의 변수에서 사용 가능한 연산자 입니다.
마찬가지로 사칙연산을 제공하고 있습니다만?한가지 특이한 사항은, 전체 변수에 한번에 연산을 할 수도 있고
위에서 설명드린 각각의 구성요소에 따로따로 연산을 할 수도 있다는 점입니다.
또한, 영역을 다루는 만큼 & | 연산자는 비트연산을 수행하는 것이 아닌
교집합 및 합집합 개념으로 영역 연산이 이루어 진다는 점은 꼭 명심하고 사용하셔야 합니다.
9. String 형식 변수의 연산자
문자형 변수에서 사용 가능한 연산자 입니다.
+ 연산자는 두개의 문자열을 합칠때 사용하는 연산자 입니다.
sub 연산자는 substring, 즉 문자열 안에서 원하는 부분만을 발췌할 때 사용하는 연산자 입니다.
문자열은 행단위 혹은 열단위로 구분지어 발췌할 수 있으며, 뒷쪽에서 역으로 발췌도 가능합니다.
idx 연산자는 index, 즉 특정 문자열 내에 찾고자 하는 문자열이 몇번째 위치하는지 알아내는 연산자 입니다.
read 연산자는 파일내용을 읽어 변수에 대입하는 연산자 입니다.
10. 기타함수
다양한 용도로 사용가능한 부가적인 함수들 입니다.
?
toast ?: 해당 변수값을 화면에 출력합니다. 모든 형태의 변수를 사용가능 합니다.
clean : 정의된 모든 변수를 모두 초기화 합니다. 단, @로 시작하는 환경변수는 예외 입니다.
어떠셨나요? 프렙의 변수는 단순한 변수가 아닌것 같죠?
OOP 언어인 C++ 이나 자바등의 클래스와 메소드를 보는 듯한 기분입니다.
덕분에 엄청 강력한 기능들로 프렙을 마음껏 작성할 수 있게 되었네요~
다음편 강좌인 응용편에서는, 이런 변수의 강력한 기능을 실제로 어떻게 이용할 수 있는지
다양한 경우의 예제를 가지고 진행하도록 하겠습니다.
여기까지 따라 오시느라 고생 많으셨습니다....
감사합니다~^_^
프렙이 많이 새로워졌군요.
과연 어떤식으로 응용을 하실지 궁금해집니다 ^^