매크로

조회 수 11253 추천 18 댓글 114


안녕하세요~ 바람처럼 입니다..?오랫만에 강좌란에서 뵙게 되는군요...^^


이번 강좌에서는 업그레이드된?프렙 3.7 의 강력한 기능들을 몇번에 나누어 소개하고자 합니다....


이번에 업그레이된 프렙은 예전의 프렙과는 사뭇 다른 모습을 보여줍니다.


프렙을 이용하면서 아쉬웠던 기능들이 대거 지원되면서 신세계가 열렸다고 할수 있겠죠...


저와함께 차근차근 강력한 프렙의 세계로 떠날 준비가 되셨나요?


당연한 말이지만 아래 설명드리는 내용들은 모두 프렙 3.7 이상에서만 동작합니다~^^





1. 변수의 정의 (Variables)


스크립트를 포함한 모든 프로그래밍 언어의 기본은 변수 입니다.?


이 기본적인 변수를 프렙은 이제서야 드디어 지원하네요~ㅎㅎ


변수는 고정된 값이 아닌 변화하는 값을 보관하기 위한 장소라고 정의할 수 있겠죠.


따라서 우리가 지정하려고 하는 값이 다양하게 변화하더라도 변수를 이용하면 쉽게 처리할 수 있습니다.


또한, 변수를 이용해 사칙연산을 비롯한 다양한 연산이 가능하므로 좀더 편리하게 시퀀스를 구현할 수 있습니다.





2. 변수명 (Naming Convention)


프렙에서 변수명 규칙은, 영문 및 숫자, _(언더바) 그리고 특수한 경우에 사용하는 @ 로 구성되어 있습니다.


아쉽게도 한글변수명은 사용 하지 못하며, @로 시작하는 특수한 환경변수는 사용자가 지정할 수 없습니다.


변수의 첫번째 문자로 숫자가 올 수 없으며, 영문 대소문자는 구분됩니다.


예를 들자면 다음과 같은 변수명을 이용할 수 있습니다.


Test123 ?/ ?this_means_war ?/ ?DoYouKnowKimchi ?/ One2Three4Five





3. 변수정의 (Definition)


변수의 정의는 기존과 마찬가지로 컨트롤 항목에서 찾아볼 수 있습니다.


https://i.imgur.com/yGMNzDX.png


이 항목을 클릭해서 다양한 변수를 정의 합니다.


https://i.imgur.com/tnkBIJC.png


이 때, 변수정의 왼쪽 - 는 삭제, 오른쪽 + 는 위에 한줄을 더 삽입하는 역할을 합니다.





4. 변수형식 (Type)


프렙은 3가지 종류의 변수형태를 지원하며, 아래 표와 같습니다.


https://i.imgur.com/zTBuFkU.png



Number ? ?: 숫자형 입니다. 양수/음수 및 정수/실수값을 지정합니다.


Rectangle : 영역형 입니다. (x1 y1 x2 y2) 의 4개 좌표값으로 사각형 모양의 영역을 지정합니다.


String ? ? ? ?: 문자형 입니다. 한글을 포함한 모든 문자 지정이 가능하며,?

? ? ? ? ? ? ? ? ? ?ESC 문자 \ 을 이용하여 탭, 리턴, 백스페이스 등의 특수문자도 지정가능 합니다.





5, 환경변수 (Special Variables)


앞서 변수명 설명에서 @ 로 시작하는 특수한 변수가 있다고 말씀 드렸던 것이 바로 환경변수 입니다.


https://i.imgur.com/h4NmiBR.png



@repeat ? ? : 현재 레코드 반복횟수를 저장합니다.


@loop ? ? ? ?: 현재 루프 카운트를 저장합니다.


@lastif ? ? ? ?: 마지막 if 문의 성공/실패 여부를 저장합니다.


@rotation ? ?: 현재 디바이스의 회전방향을 저장합니다.


@cpuusage: 현재 디바이스의 CPU 부하를 저장합니다.


@lastmatch : 마지막 성공한 wait image 의 좌표를 저장합니다.


@screen ? ? : 현재 디바이스의 화면 크기를 저장합니다.


@clipboard ?: 클립보드 내용을 저장합니다.





6. 변수변경자 (Modifier)


기본적으로 변수명은 한단어로 구성되는게 원칙 입니다만, 프렙에선 몇가지 변경자를 두어 . 으로 구분하고 있습니다.


주로 영역 및 좌표와 관계되는 영역형식의 변수에서 사용됩니다.


https://i.imgur.com/EgrycpN.png


앞서 설명드린 Rectangle 형식의 변수는 4개의 좌표로 구성되어 있습니다.


이 값들을 따로 참조할때 사용되는 용도로 많이 사용됩니다.



https://i.imgur.com/2QHfwzy.png

알기쉽게 설명 드리자면, 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 형식 변수의 연산자


숫자형 변수에서 사용 가능한 연산자 입니다.


https://i.imgur.com/ul1Z4d0.png


기본적인 사칙연산과 비트연산자 등을 지원하고 있습니다.





8. Rectangle 형식 변수의 연산자


영역형식의 변수에서 사용 가능한 연산자 입니다.


https://i.imgur.com/ODdyD8R.png


마찬가지로 사칙연산을 제공하고 있습니다만?한가지 특이한 사항은, 전체 변수에 한번에 연산을 할 수도 있고


위에서 설명드린 각각의 구성요소에 따로따로 연산을 할 수도 있다는 점입니다.


또한, 영역을 다루는 만큼 & | 연산자는 비트연산을 수행하는 것이 아닌


교집합 및 합집합 개념으로 영역 연산이 이루어 진다는 점은 꼭 명심하고 사용하셔야 합니다.





9. String 형식 변수의 연산자


문자형 변수에서 사용 가능한 연산자 입니다.


https://i.imgur.com/MybTVB7.png


+ 연산자는 두개의 문자열을 합칠때 사용하는 연산자 입니다.


sub 연산자는 substring, 즉 문자열 안에서 원하는 부분만을 발췌할 때 사용하는 연산자 입니다.


문자열은 행단위 혹은 열단위로 구분지어 발췌할 수 있으며, 뒷쪽에서 역으로 발췌도 가능합니다.


idx 연산자는 index, 즉 특정 문자열 내에 찾고자 하는 문자열이 몇번째 위치하는지 알아내는 연산자 입니다.


read 연산자는 파일내용을 읽어 변수에 대입하는 연산자 입니다.





10. 기타함수


다양한 용도로 사용가능한 부가적인 함수들 입니다.


https://i.imgur.com/G2joxEO.png ?


toast ?: 해당 변수값을 화면에 출력합니다. 모든 형태의 변수를 사용가능 합니다.


clean : 정의된 모든 변수를 모두 초기화 합니다. 단, @로 시작하는 환경변수는 예외 입니다.







어떠셨나요? 프렙의 변수는 단순한 변수가 아닌것 같죠?


OOP 언어인 C++ 이나 자바등의 클래스와 메소드를 보는 듯한 기분입니다.


덕분에 엄청 강력한 기능들로 프렙을 마음껏 작성할 수 있게 되었네요~


다음편 강좌인 응용편에서는, 이런 변수의 강력한 기능을 실제로 어떻게 이용할 수 있는지


다양한 경우의 예제를 가지고 진행하도록 하겠습니다.


여기까지 따라 오시느라 고생 많으셨습니다....



감사합니다~^_^




  • H2SIT 2015.05.11 16:50

    자꾸 공부 하고 싶어 집니다. 그러나 머리는 더욱 아파 옵니다. ㅎㅎ

  • 세나합시당 2015.05.11 22:07
    대학다닐때도 안한 프로그램 공부를 게임때문에 하게 될줄이야 ㅠㅠ
  • 폭렬 2015.05.20 10:49

    공부합니다....가 필요합니다^^

  • 하로해 2015.05.21 11:38

    어렵군요 ^^ 많은 공부를 해야겠내요

  • 냐냐냐 2015.05.22 13:23

    우와.. ㅠㅠ 엄청 어렵네요 공부좀 더해야될거같네요 ㅠㅠ

  • 사랑에지치다 2015.05.24 02:28

    이런걸 어떻게 아시는지 대단하세요

  • 안녕아귀 2015.05.24 10:10

    자세히 써주셨는데 배경지식이 없어 한번에 안들어오는데

    열심히 정독하겠습니다.

  • 이루리 2015.05.25 00:24

    잘 배우고있습니다 고맙습니다

  • 깜별 2015.05.26 00:47
    어렵네요. 쉽게설명해주신거같은데 더배우겠습니다ㅡ
  • DevilM 2015.05.28 06:46
    좋은정보 감사합니다 더 공부해봐야겠네요
  • 안녕아귀 2015.05.30 10:09

    무엇이든 동기와 계기가 중요한거 같습니다.

    프로그램에 관심이 평소에 주욱 있어왔는데

    프랩덕분에 매우 흥미롭게 접근하고 있습니다.

  • qthing 2015.06.03 11:30

    머리가.ㅎㅎ 진짜 어렵내요.개념을 먼저 잡아야 것어요.ㅠㅠ

  • 야놔봐 2015.06.08 00:32

    머리가 아파오네요 ㅠ.ㅠ. 수고하셨습니당

  • 아르티 2015.06.10 02:27

    좋은 강좌 감사합니다. 변수에 대해 궁금한것이 하나있는데 연산자의 Example을 보면?+를 사용할 때 var=num: var+1로 되어있는데 그 위에서 처럼 var = num : 0.0이라고 선언해놓으면 var = var +1 처럼 간편하게 쓸 수는 없는건가요??

  • 라츠엘 2015.06.10 02:35

    좋은 정보에 감사 드립니다. 밑에 글인 프렙의 만능 해결사부터 많은 것을 배워 갑니다.

  • 까람까람 2015.06.15 06:57

    이런걸 어찌 알아내시는 지.. 좋은 정보 감사합니다.^^

    여러번 정독해야겠어요..^^;

  • 비니78 2015.06.22 12:57
    정말 감사합니다. 정말 유익하네요
  • 프리니바투스 2015.06.25 09:48

    좋은 글 감사합니다^^

  • N천N 2015.07.05 16:04
    암만봐도 이해못하는 바보 ㅠ_ㅠ
  • 소울아이 2015.07.08 13:04

    좋은 글 감사드려요 ^^

  • 하드스타보드 2015.07.20 02:53

    뭐가이렇게어려운거야...ㅠ.ㅠ

  • 사랑해요한예 2015.07.23 23:38

    감사합니다

  • 품안 2015.07.30 12:34
    변수라는게있어서 더 복잡해진거같지만 어느정도 어떤건지는이해가되네요 감사합니다
  • 르위 2015.08.16 11:53

    이런기능이 추가 되었군요.....으아아아악... 머리야!

    그래도 좋은글에 감사합니다!

  • 블루ryun 2015.09.15 11:05

    var = num : 0    -->  변수명 = 타입 : 값

    이런 식이군요.  이걸 몰라서 이해를 못하고 있었는데...한번 해봐야겠네요.

  • 선릉댄서 2015.10.21 08:51

    아 공부가 더 어려워 지는군요...

  • 쭈찌쑤 2015.10.23 14:08

    나름 프렙은 간단한건 터치로 만들고 아님 이미지 앤 터치로도 만들 수준은 된다고 생각하고 변수를 접했는데...넘 어렵네요.ㅜㅜ

  • 뱅어 2015.11.02 22:47

    프로그래밍 배울때로 돌아간 느낌...

  • 프렙입문초보 2015.11.10 16:21

    프랩 매크로시 다른곳터치할떄 폰의 메뉴와뒤로가기버튼이 동작이안되는데 어떻게해야하는지 이럴떄마다 강제종료해야되서

  • 싸이즈나와 2015.11.13 23:52

    유용한 자료 감사합니다 ㅎㅎ

  • 이카루스1 2015.11.19 22:06

    어렵네요 많은도움되었습니다.

  • 제임스소프트 2016.03.01 03:32

    변수 사용을 해봤는데 변수값 세팅이 잘 안되고 초기화가 되버리던데 왜그런지 잘 모르겠네요.


    값 지정이나 계산식을 어떻게 넣어야 되는지 한번 써놓으면 다시 초기상태로 바뀌어버려요. 전혀 기록이 안되어 있네요 ㅠㅠ

  • 뜨또 2016.04.03 13:26

    와우 ...

  • 나무군14 2016.04.11 23:46

    감사합니다

  • 강아지땅콩 2016.04.29 17:39

    안녕하세요. 바람처럼님.

    sub 연산자에 대해 자세히 알고싶어 질문 드립니다.

    게임내에서 0 ~ (n-1)번째 캐릭이 있는데 강한 캐릭번호를 문자열로(두자리씩) 저장하고 순서대로 원하는 캐릭번호를 불러오고 싶은데 가능할지 문의 드립니다.

    예를 들어 CharNum = str:"00040710121416182125283134" 라는 문자열을 만듭니다.

    의미는 00, 04, 07, 10, 12, 14, 16, 18, 21, 25, 28, 31, 34 번 캐릭의 번호를 순서대로 저장한거죠.

    그래서 sub 연산자로 처음에는 0순위인 00번을 불러오고 날개등을 다 소모하면 다음순위(1)인 04번을 불러오는 식으로요.

    물론 문자열로 불러왔으니 숫자로 변경해야겠죠.

    간단하게 배열처럼 원하는 자리의 값을 불러오려고 하는것입니다. 다이나믹 함수는 좀 이해하기 어렵네요.

    위처럼 구현할 수 있게 sub연산자 사용방법에 대해 자세히 설명 부탁드립니다.

    감사합니다.

  • profile
    바람처럼 2016.04.29 23:25
    1. CharNum = str:"00040710121416182125283134"
    2. Index = num:0

    3. Char = str:CharNum sub (0 0 Index 2)
    4. Char 에 들어온 캐릭번호를 필요한곳에 사용
    5. Index = num:Index + 2
    6. goto 3

    이런식으로 하시면 될듯 합니다~
  • 강아지땅콩 2016.04.30 09:20
    정말 감사합니다.
    Sub(a b c d)연산자에 대한 구조를 자세히 알고 싶습니다.
    괄호 안에 들어가는 a, b, c, d 는. 각각 무엇을 의미하고 어떤 결과를 가져오는지요.
    어떤 구조의 변수에서 어떻게 발췌를 해 오는지요
  • profile
    바람처럼 2016.04.30 11:29
    sub 연산자는 substring 의 약자로서 부분 문자열을 가져오는 역할을 합니다...

    위의 설명에도 각 인자의 역할이 잘나와 있지만 부연설명을 드리자면

    sub (ls ln cs cn) 이라고 할때, ls=시작줄, ln=줄수, cs=시작칸, cn=칸수를 각각 의미합니다...

    sub (1 2 5 10) 이라고 하면, 첫째줄부터 2줄을 가져온후, 6번째 칸부터 10개를 가져온다는 의미입니다

    sub (0 0 3 2) 는 줄은 무시하고 현재값의 4번째 칸부터 2개를 가져옵니다...

    이때 주의하실 점은, 줄은 1부터, 칸은 0부터 시작한다는 점입니다..

    ls, cs 값이 0보다 작을 경우는 앞이 아닌 뒤에서 카운팅을 합니다~
  • 강아지땅콩 2016.04.30 15:44
    정말 감사합니다
    딱 알고싶었던 내용입니다.
    덕분에 프렙에 입문해 잘 사용하고 있습니다
  • 쩌는뒝구 2016.06.01 23:23
    천재시드아...
  • haedun 2016.08.06 13:37

    감사합니다.

  • 처키엄마 2016.08.09 12:36

    좋은 강좌 감사합니다~ 열심히 공부할게요~^^


  • 크룽미누 2016.08.09 22:13

    좋은 정보 감사요

  • 페이소 2016.08.21 14:22

    거의 유일무의한 변수 강의글 감사합니다. 예제와 예제에 대한 설명이 있으면 초보자들이 좀 더 쉽게 접근할 수 있을 것 같아요 ㅎ

  • 영웅님 2016.09.07 07:03

    자세하게 설명해 주셔서 감사합니다.^^

    초보들이 배우기 아주 좋습니다. ㅎㅎ

  • 국화77 2016.10.07 12:43

    와우 어렵네요~ 공부 많이 해야겠네요 좋은 강좌 감사드립니다

  • 국수야놀자 2016.10.22 18:33

    어렵내요 공부 열심히 해야 겠네요~

  • 다랄난 2016.11.06 02:10
    으...어렵네요 감사합니다
  • 너스피 2016.11.14 14:42

    ....어렵네요 ㅜㅜ 열심히 읽어봐야될듯..

  • 투빠더 2016.11.18 12:43

    그냥 사용할때는 몰랐는데..하나하나 자세히 보다 보니..


    그리 간단하지만은 않은것 같네요 


    프로그램쪽을 전혀 모르니 말이 넘 어려움 ㅜㅜ


    잘 이해 할수있어야 강좌하시는분들도 보람 느끼실터인데..


    열심히 정독하고 이해해 보겠습니다!


List of Articles
제목 글쓴이 최근변경 추천
[ Frep 1편 ] 초보자가 알아야하는 기본 매크로 팁 326 파더 2022.02.12 29/0
[ Frep 2편 ] 어떻게 만들지 구상하기! 168 파더 2022.01.04 21/0
[ Frep 3편 ] 앱과 친해지기... 183 파더 2022.01.04 28/0
[ Frep 4편 ] 실전 눈뜨자마자의 동영상촬영... 147 파더 2020.12.22 30/0
[ Frep 5편 ] 실전! 세븐나이츠 매크로 만들기 179 파더 2020.12.22 38/0
[ Frep 6편 ] 세븐나이츠 스킬 추가 하기!! 67 파더 2020.12.23 12/0
프렙의 만능 해결사... 터치의 모든것~ (1/2) 180 바람처럼 2021.06.19 36/0
프렙의 만능 해결사... 터치의 모든것~ (2/2) 116 바람처럼 2021.06.19 36/0
프렙의 꽃... 웨이트 이미지 (Wait Image) 163 바람처럼 2020.12.23 47/0
프렙의 단순작업 도우미... 프로시져 (Procedure) 123 바람처럼 2020.12.23 20/0
세나 프랩 간단하게..강좌 117 김부관 2020.12.24 19/0
간단하게 만드는 7-9쫄 기반 세븐나이츠 3쫄 교체(1) 77 제이먼청 2023.07.27 10/0
간단하게 만드는 7-9쫄 기반 세븐나이츠 3쫄 교체(2) 41 제이먼청 2020.12.24 8/0
간단하게 만드는 7-9쫄 기반 세븐나이츠 3쫄 교체(3) 76 제이먼청 2020.12.24 9/0
[Frep] 쫄교체 매크로 동영상 강좌 1 101 제이먼청 2023.01.22 15/0
[Frep] 쫄교체 매크로 동영상 강좌 2 76 제이먼청 2023.07.21 6/0
세나] 프렙으로 대동단결 2탄 - 프렙 강좌(1) 19 옹스컴 2023.07.27 1/0
[몬길] frep 매크로 아주 간단하게 따라하며 만들기 1편 195 오렌지케이크 2021.05.25 24/0
[몬길] frep 매크로 아주 간단하게 따라하며 만들기 2편 94 오렌지케이크 2024.01.04 10/0
프렙 3.7 의 새로운 기능... 변수(Variables) 기초편 114 바람처럼 2021.01.04 18/0
Board Pagination Prev 1 2 Next
/ 2

전체 최신 인기글

전체 주간 인기글