조회 수 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 7383 1
192 중급강의실 한글암호 만들기 5 치와도라 2014.04.26 1856 0
191 중급강의실 픽쳐 서서히 등장! 픽쳐 서서히 퇴장! 4 치와도라 2015.04.29 965 2
190 고급강의실 타이틀에 동영상을 넣는 플러그인 사용법 5 file 러닝은빛 2016.01.08 2589 1
189 초급강의실 커먼이벤트로 은행시스템 만들기(23:00 그림 링크 재수정) 3 file 이니군 2017.08.28 1475 0
188 중급강의실 캐릭터레이더로 통맵만들기. 3 file 천무 2006.06.05 12300 23
187 고급강의실 캐릭터그래픽 픽셀 3  운 2014.07.19 3621 0
186 고급강의실 카카오소프트 님의 RGSS2 스크립트 강좌 2 Omegaroid 2014.03.27 1667 0
185 중급강의실 초보의 게임제작 도전기! #0 [RPG 만들기?] 치와도라 2015.05.05 1359 1
184 중급강의실 초보의 게임제작 도전기 #1-1[데이터 베이스 둘러보기] 2 치와도라 2015.05.05 1407 2
183 초급강의실 초보가쓰는 초보용 Rpg게임 만들기 (xp) 6 Marine 2016.03.13 6169 0
182 고급강의실 처음부터 전체화면으로 시작하기 3 file 러닝은빛 2015.12.21 4121 0
181 중급강의실 찰드 제작강의 "3" -툴의 완벽한 이해를 위한 그날까지 No.1 1 1 file 찰드 2011.09.02 3058 1
180 초급강의실 찰드 제작강의 "2" -툴을 처음 접하면- 4 ◈ÐÆЯΚ◈찰드 2008.09.29 5967 7
179 초급강의실 찰드 제작강의 "1" -겜제작을 시작할때- 5 ◈ÐÆЯΚ◈찰드 2008.08.28 6910 5
178 중급강의실 찰드 도트강의 "1" -케릭터 레이더의 이해 (1/2)- 6 ◈ÐÆЯΚ◈찰드 2009.08.16 6195 4
177 중급강의실 쯔꾸르 게임을 네코플레이어에 최적화 시켜보자! # 해상도 편 22 file 양갱님 2016.04.17 35734 10
176 고급강의실 죽노의 RGSS 이것저것(1) 6 죽은노예 2013.10.23 2129 1
175 중급강의실 저 게임만들고 싶어요!! -0- 기초 4 시버암 2014.06.13 1725 0
174 초급강의실 저 같은 사람 생기지 말라고 만드는 XAS(액션알피지[액알])강 좌!(VX ACE용) 약빨은ㄱㅏㅅㅣ 2017.11.28 1229 0
173 중급강의실 잠와서 실수가 많은 저 게임만들고 싶어요 -1- 데이터베이스-1- 1 시버암 2014.06.14 1166 0
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10






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

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