조회 수 1876 추천 수 0 댓글 4
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제
이번시간에는 메서드를 조금 만지작 거려봅시다. 

일단 지난시간에 메서드, 즉 변수라는 개념을 간단하게 "상자"라고 했었는데요. 제가 변수라고 하지않는 이유는 
'변수'의 사전적의미가 '어떤 관계나 범위 안에서 여러 가지 값으로 변할 수 있는 수' 라고 네이버 사전에 등록되어있습니다.
게다가 학교에서 배우는 변수의 의미도 이것이기 때문에 게임제작중에 변수를 사용하시는 범위가  기것해야 아이템의 갯수정도로 사용하시는 분들이 많습니다.

1. 대입

rpg만들기 xp의 스크립트에디터 맨위에 섹션을 하나 작성하고. 간단하게 메서드를 사용해봅시다. 

a = 1
b = 2
p a + b
exit

이렇게 작성하고 테스트 플레이를 해보면 3 이라고 뜨고 확인을 누르면 종료됩니다.

일단 a와 b는 메서드의 이름입니다. 그리고 = 기호는 확실한 이름으로는 '대입 연산자'라고 하는데 어떤 수치나 이름, 메서드 등을 대입시켜줍니다. 우변은 메서드에 대입할 식이 됩니다. 
대입 연산자는 좌변이 메서드일때 우변을 식으로 메서드에 대입해 묶어줍니다. 이런식으로 a 는 1이 되었고 b는 2가 되었습니다.

그리고 p 라고 된것은 출력 명령어로 쓰이는데 출력 명령어에는 print와 p가 있습니다. 둘의 차이는 좀 있다가 다루겠습니다.

exit는 프로그램을 종료해주는 명령어입니다. exit를 쓰는 이유는 테스트만 하고 빠져나오기 위해 편의상 넣었습니다. 
만약 exit를 넣지않았다면 출력되는 창을 닫고나면 타이틀화면이 실행될겁니다.

다음을 봅시다.


a = 1
b = 2
p a + b+ c
exit

실행하면 에러가 납니다.
에러 메세지를 보면 c가 정의되어있지 않았다고 나오는군요. 
메서드를 출력하기 위해서는 메서드에 식이 정의되어야 하는데 만약 정의되지 않은 메서드를 출력하라고 한다면 에러가 나게 됩니다.

2. 자기대입

메서드가 자기자신에게 다시 대입하는것을 자기대입이라 합니다.
자기대입 연산자특별한것 없이 연산자식에 대입연산자를 붙이면 됩니다.
예를 들면 다음과 같겠습니다.

a = 1 
a += 3
a -= 2 
a *= 4 
a /= 3
p a 

첫행부터 보면 일단 a에 1을 대입하고 있습니다. 그리고 2행째에서 대입연산자가 뒤에 붙은 연산자를 볼수있는데 이게 자기대입연산자 라고 합니다. 두번째 항을 직역하면 a = a + 3 이지요. 따라서 위에 예를 다시 쓰면 이렇게 됩니다.

a = 1 
a = a + 3
a = a - 2 
a = a * 4 
a = a / 3
p a 

1행째에 1이 되고, 2행째에 4,  3행째 2, 4행째, 8, 5행까지와서야 2가 됩니다. 
3이 되는 이유는 전 강좌에서 말했듯이 지금 답은 나머지를 버린 형태입니다. 
소수점 아래로 구하고 싶으면 아무곳이나 부동소수점수를 하나 넣어주면 되겠군요. 

a = 1 
a += 3
a -= 2 
a *= 4 
a /= 3.0
p a 

그러면 2.666666666667이 출력됩니다.

3. 글로벌 메서드

로컬 메서드, 즉 일반 메서드는 일시적으로 사용하는 메서드인데 함수나 클래스 밖으로 나오게 되면 값은 nil , 즉 공백이 되어버립니다.
그래서 프로그램 어디에서든 쓸수있는 메서드를 '글로벌 메서드' 라고 합니다. 글로벌 메서드는 프로그램중 어딘가에서 사용되고 있어도 같은 이름으로 호출하면, 중복되어서라도 같은 메서드로써 활동하게 됩니다.
예를 들면.

$global

이렇게 $를 앞에 달고 나오는 메서드가 글로벌 메서드가 되며 어디든지에서 쓰입니다. 
실제 게임상에 데이터 베이스가 글로벌 메서드들이라고 할수있겠군요.

글로벌 메서드는 어디서든 불러올수있어 제작자의 편의를 돕기도 하지만 로컬 메서드 작성이 귀찮다고 글로벌 메서드로만 작성하게되면 자칫 프로그램이 엉켜버려 에러가 날수도있기 때문에 꼭 필요할때만 글로벌 메서드를 사용해줍시다.

?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수 추천 수
공지 초급강의실 게임제작강좌 A-Z 색인 (2016.1.24 ver) 2 file 천무 2016.01.12 7372 1
32 고급강의실 RGSS 스크립트 강좌 입문 13 - 클래스(Class) 5 마니아 2013.09.16 2317 2
31 고급강의실 RGSS 스크립트 강좌 입문 12 - 연상 배열(Associative Array) 4 마니아 2013.09.16 1600 1
30 고급강의실 RGSS 스크립트 강좌 입문 11 - 배열(Array) 6 마니아 2013.09.16 1701 1
29 고급강의실 RGSS 스크립트 강좌 입문 10 - 그래픽 표시 4 마니아 2013.09.16 2183 0
28 고급강의실 RGSS 스크립트 강좌 입문 9 - 오브젝트(Object) 4 마니아 2013.09.16 1642 0
27 고급강의실 RGSS 스크립트 강좌 입문 7 ~ 8 - 함수(Function) 3 마니아 2013.09.16 1924 0
26 고급강의실 RGSS 스크립트 강좌 입문 6 - 루프(Loop) 2 마니아 2013.09.16 1586 0
25 고급강의실 RGSS 스크립트 강좌 입문 5 - 조건분기 4 마니아 2013.09.16 2131 0
24 고급강의실 RGSS 스크립트 강좌 입문 4 - 캐릭터 라인 4 마니아 2013.09.16 2274 1
» 고급강의실 RGSS 스크립트 강좌 입문 3 - 메서드(Method) 4 마니아 2013.09.16 1876 0
22 고급강의실 RGSS 스크립트 강좌 입문 2 - 수 3 마니아 2013.09.16 2256 0
21 고급강의실 RGSS 스크립트 강좌 입문 1 - 기초 개념 8 마니아 2013.09.16 4348 0
20 고급강의실 뮤's 실전 스크립팅 강좌 [5. 실전! 반복문을 응용하자!] 2 마니아 2013.09.16 1411 0
19 고급강의실 뮤's 실전 스크립팅 강좌 [4. 실전! 플래싱 메시지를 만들어보자] 3 마니아 2013.09.16 2081 0
18 고급강의실 뮤's 실전 스크립팅 강좌 [3. 기초 문법 다지기 (하)] 6 마니아 2013.09.16 1145 0
17 고급강의실 뮤's 실전 스크립팅 강좌 [2. 기초 문법 다지기 (중)] 3 마니아 2013.09.16 1371 0
16 고급강의실 뮤's 실전 스크립팅 강좌 [1. 기초 문법 다지기 (상)] 6 마니아 2013.09.16 2351 0
15 고급강의실 RGSS2 강좌 1 비형랑 2012.10.01 2528 0
14 중급강의실 [RPGVX ACE] 소재규격과 강의수록 1 2 비형랑 2012.10.01 3273 0
13 초급강의실 [RPG VX ACE] 초심자강의 1 1 비형랑 2012.10.01 3168 2
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 Next
/ 10






[개인정보취급방침] | [이용약관] | [제휴문의] | [후원창구] | [인디사이드연혁]

Copyright © 1999 - 2016 INdiSide.com/(주)씨엘쓰리디 All Rights Reserved.
인디사이드 운영자 : 천무(이지선) | kernys(김원배) | 사신지(김병국)