조회 수 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 7382 1
32 초급강의실 게임의 퀼리티를 높이자! 2편-진행불가 7 file ifeve 2016.01.25 13236 0
31 초급강의실 (ACE 기준)초보분들에게 유용한 10가지-1- 1 RPG란무엇인가? 2016.02.02 2688 0
30 고급강의실 [동영상] 스크립트 나도좀 잘해보자 -1- 1 file 천무 2016.02.04 1713 1
29 초급강의실 [동영상] 게임을만들자 (3편) - 필드에 보이는 몹 만들기- 1 file 천무 2016.02.10 1958 1
28 초급강의실 [동영상] 게임을만들자 (4편) - 마을과 상점을 만들자- file 천무 2016.02.10 1753 0
27 초급강의실 [동영상] 게임을만들자 (5편) - 퀘스트 만들기 - 3 file 천무 2016.02.11 3832 1
26 고급강의실 [MV플러그인] Action Sequence 강의 5 file 백난화백 2016.02.12 5646 1
25 고급강의실 [MV플러그인] Armor Scaling 강의 1 file 백난화백 2016.02.13 3599 2
24 초급강의실 [동영상] 게임을만들자 (6편) - 맵배치 초보강좌 - 2 file 천무 2016.02.17 2675 0
23 초급강의실 MV에서 이벤트로만 액션RPG를 만들기 1 file 델군 2016.02.19 3424 0
22 초급강의실 [동영상] 게임을만들자 (7편) - 열쇠로 여는 문 만들기 - 3 file 천무 2016.02.23 3140 0
21 초급강의실 [동영상] 게임을만들자 (8편) - 맵에 포그, 광원적용 - 2 file 천무 2016.02.27 2270 0
20 초급강의실 초보가쓰는 초보용 Rpg게임 만들기 (xp) 6 Marine 2016.03.13 6168 0
19 초급강의실 Input 객체의 키코드 확장 8 file 러닝은빛 2016.04.05 1265 0
18 초급강의실 게임의 퀼리티를 높이자! 3편-맵배치 2 ifeve 2016.04.08 4965 2
17 중급강의실 쯔꾸르 게임을 네코플레이어에 최적화 시켜보자! # 해상도 편 22 file 양갱님 2016.04.17 35729 10
16 중급강의실 RPG란 무엇인가?가 하는 강의-1편:대쉬 속도와 걷는 속도를 어떻게 바꾸는가?- 3 file RPG란무엇인가? 2016.10.31 2170 0
15 초급강의실 누구나 쉽게 따라할 수 있는 액션/슈팅 이벤트 만들기! 4 file 이제리아 2017.01.26 4056 2
14 초급강의실 변수를 이용한 식물 재배 3 file MoonJ 2017.05.28 3069 2
13 중급강의실 네코플에서 VXA 선택지 잘리는 버그 해결하는법 file 심심치 2017.06.22 923 2
Board Pagination Prev 1 ... 4 5 6 7 8 9 10 Next
/ 10






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

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