고급강의실
2013.09.17 09:43

나뚜루's - Sprite 클래스 파헤치기 [1]

조회 수 2127 추천 수 0 댓글 3
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제
Sprite 클래스는

화면에 그림이나 글자를 띄울 때 사용되는 클래스입니다.

Bitmap 클래스와 항상 연동되는 클래스죠.

그런데 이 Sprite 클래스는 처음에는 사용하기가 매우 까다롭습니다.

저 또한 그랬구요.

과연 Sprite 클래스는 어떻게 써야 잘 써지는 걸까요?

파헤쳐봅시다~~





우선, 스프라이트 클래스를 하나 만듭니다.

sprite = Sprite.new

그런데 스프라이트 클래스를 만들면 항상 따라오는게 있습니다.

바로 Bitmap 클래스죠!!!

sprite.bitmap = Bitmap.new(폭, 높이)

폭, 높이는 직접 지정해주셔야됩니다.

만약, 모든 곳에 그림이나 글자를 띄우고 싶다면 폭이 640, 높이가 480이 되어야겠죠.

자 이렇게 만들면 다 됬습니다.라고 생각하시면 오산입니다.

맨 처음에 스프라이트 만들때부터 빠진게 있습니다.

바로 뷰포트!!!

듣보잡으로 생각하시는 분들이 많을겁니다.

저 또한 이걸 알기 전까지는.. 정말 고생 많이 했습니다.

자, 이 뷰포트가 도데체 어떻게 쓰이는걸까요!? 궁금하지 않습니까!?

뷰포트는, 스프라이트 범위를 잡아주는 겁니다.

우물 안 개구리라고 생각하시면 됩니다.

우물 안에서는 개구리가 마음대로 돌아다닐 수 있지만,

우물 밖으로는 절대 나갈 수 없죠.

뷰포트 또한 그런 역할을 해줍니다.

또, 뷰포트에는 z좌표라는게 존재합니다.

아니 이럴수가!! x좌표와 y좌표만 알던 저에겐 정말 듣보잡이었습니다 ㅠ_ㅠ

3차원을 생각해보세요.

가로, 세로, 높이가 있죠?

가로와 세로가 x축, y축이고, 그럼 높이는 뭘까요?

높이가 바로 z축이라고 생각하시면 편합니다. (실제로 이런지는 잘 모르지만 그렇게 생각하세요.)

그냥 스프라이트를 하나 만들어서, 그림을 표시하려고 하면

그림을 표시해도 아무것도 안뜹니다. 왜냐!!!

타일의 z좌표가 훨씬 높기 때문이죠.

타일의 z좌표가 훨씬 높으므로, 이 스프라이트는 묻힐수밖에 없습니다.

그럴때, 뷰포트를 이용해서 z좌표를 높여, 타일보다 높은 위치에 있도록 만드는게 바로 뷰포트죠!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

스프라이트에서 뷰포트는 아주 중요한겁니다.

스프라이트를 제대로 만드려면,

viewport = Viewport.new(0, 0, 640, 480)
(여기서 0, 0, 640, 480은 차례대로 x좌표, y좌표, 폭, 넓이 입니다.)

sprite = Sprite.new(viewport)
(스프라이트 클래스는 뷰포트를 *인수로 갖습니다.)

sprite.bitmap = Bitmap.new(640, 480)

*인수 : 특정 함수에서 필요로 하는 것이라고 보면 됩니다. 인수는 생략될 수 있는 인수도 있고, 반드시 필요한 인수도 있습니다.
예) 생략될 수 있는 인수 : Sprite 클래스의 뷰포트.
      생략될 수 없는 인수 : Bitmap 클래스의 폭, 넓이 혹은 파일명

자, 드디어 제대로 된 Sprite 클래스를 하나 만들었네요.

다음 시간에는 이 Sprite 클래스를 응용해보도록 하겠습니다.
?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수 추천 수
공지 초급강의실 게임제작강좌 A-Z 색인 (2016.1.24 ver) 2 file 천무 2016.01.12 7877 1
191 중급강의실 캐릭터레이더로 통맵만들기. 3 file 천무 2006.06.05 12396 23
190 중급강의실 액알강의[3] - 주석을 통한 설정 1 file 비밀소년 2006.07.21 5395 4
189 중급강의실 액알강의[2] - 일어서기위해 비밀소년 2006.07.30 5237 3
188 중급강의실 액알강의[1] - 베틀러 비밀소년 2006.08.07 8521 7
187 초급강의실 찰드 제작강의 "1" -겜제작을 시작할때- 5 ◈ÐÆЯΚ◈찰드 2008.08.28 6992 5
186 초급강의실 찰드 제작강의 "2" -툴을 처음 접하면- 4 ◈ÐÆЯΚ◈찰드 2008.09.29 6048 7
185 중급강의실 찰드 도트강의 "1" -케릭터 레이더의 이해 (1/2)- 6 ◈ÐÆЯΚ◈찰드 2009.08.16 6265 4
184 중급강의실 [RPG2003] 한단계 도약 : 되풀이 처리 3 A. 미스릴 2011.02.21 2819 1
183 중급강의실 [RPG2003] 한단계 도약 : 변수 번호의 스위치 6 A. 미스릴 2011.02.21 2591 0
182 중급강의실 [RPG2003] 한단계 도약 : 변수 번호의 변수 A. 미스릴 2011.02.22 2723 0
181 중급강의실 찰드 제작강의 "3" -툴의 완벽한 이해를 위한 그날까지 No.1 1 1 file 찰드 2011.09.02 3124 1
180 중급강의실 데스티니 패치 연구 1~3 2 1 file 나라뜨 2012.05.05 1200 0
179 초급강의실 [RPG VX ACE] 초심자강의 1 1 비형랑 2012.10.01 3230 2
178 중급강의실 [RPGVX ACE] 소재규격과 강의수록 1 2 비형랑 2012.10.01 3324 0
177 고급강의실 RGSS2 강좌 1 비형랑 2012.10.01 2559 0
176 고급강의실 뮤's 실전 스크립팅 강좌 [1. 기초 문법 다지기 (상)] 6 마니아 2013.09.16 2399 0
175 고급강의실 뮤's 실전 스크립팅 강좌 [2. 기초 문법 다지기 (중)] 3 마니아 2013.09.16 1422 0
174 고급강의실 뮤's 실전 스크립팅 강좌 [3. 기초 문법 다지기 (하)] 6 마니아 2013.09.16 1194 0
173 고급강의실 뮤's 실전 스크립팅 강좌 [4. 실전! 플래싱 메시지를 만들어보자] 3 마니아 2013.09.16 2145 0
172 고급강의실 뮤's 실전 스크립팅 강좌 [5. 실전! 반복문을 응용하자!] 2 마니아 2013.09.16 1435 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(김원배) | 사신지(김병국)