고급강의실
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 클래스를 응용해보도록 하겠습니다.
?

  1. 게임제작강좌 A-Z 색인 (2016.1.24 ver)

    Date2016.01.12 Category초급강의실 By천무 Views7877 Votes1
    read more
  2. [야매 알만툴 MV 강좌] - 연출과 기능. 두마리 토끼를 동시에.

    Date2018.09.10 Category초급강의실 By케이디 Views2761 Votes0
    Read More
  3. RPG Maker MV에서 도트 느낌의 폰트 사용하기

    Date2018.07.15 Category초급강의실 By러닝은빛 Views5000 Votes1
    Read More
  4. [ MV ] 1-1 " RPG MAKER MV에 대하여 알아보자! "

    Date2018.07.01 Category초급강의실 By수성의물 Views1895 Votes0
    Read More
  5. [DLC 매뉴얼] GENE 도움말 한글화 Part.3 이용규약

    Date2018.04.25 Category초급강의실 By이니군 Views850 Votes0
    Read More
  6. [DLC 매뉴얼] GENE 도움말 한글화 Part.2 이벤트 타입과 메뉴 바 컨텐츠

    Date2018.04.25 Category초급강의실 By이니군 Views913 Votes0
    Read More
  7. [DLC 매뉴얼] GENE 도움말 한글화 Part.1 씬 빌더의 개요와 씬빌더 시작하기

    Date2018.04.24 Category초급강의실 By이니군 Views2223 Votes1
    Read More
  8. 느무느무 쉬운 XAS강좌!(VXA용)1.다운로드 및 규정.

    Date2017.11.28 Category초급강의실 By약빨은ㄱㅏㅅㅣ Views1611 Votes0
    Read More
  9. 저 같은 사람 생기지 말라고 만드는 XAS(액션알피지[액알])강 좌!(VX ACE용)

    Date2017.11.28 Category초급강의실 By약빨은ㄱㅏㅅㅣ Views1443 Votes0
    Read More
  10. [MV] Iavra Splash Video(스플래시/인트로영상 제작 시 스킵기능 부여 플러그인)

    Date2017.09.11 Category초급강의실 By이니군 Views1325 Votes0
    Read More
  11. RPG MAKER MV Tool Program-MADO 설치 및 적용기

    Date2017.09.08 Category초급강의실 By이니군 Views2536 Votes0
    Read More
  12. 커먼이벤트로 은행시스템 만들기(23:00 그림 링크 재수정)

    Date2017.08.28 Category초급강의실 By이니군 Views1708 Votes0
    Read More
  13. [RMMV] 크로노 엔진(Chrono Engine) 플러그인 사용법

    Date2017.07.16 Category고급강의실 By러닝은빛 Views3874 Votes2
    Read More
  14. 네코플에서 VXA 선택지 잘리는 버그 해결하는법

    Date2017.06.22 Category중급강의실 By심심치 Views1160 Votes2
    Read More
  15. 변수를 이용한 식물 재배

    Date2017.05.28 Category초급강의실 ByMoonJ Views3393 Votes2
    Read More
  16. 누구나 쉽게 따라할 수 있는 액션/슈팅 이벤트 만들기!

    Date2017.01.26 Category초급강의실 By이제리아 Views4530 Votes3
    Read More
  17. RPG란 무엇인가?가 하는 강의-1편:대쉬 속도와 걷는 속도를 어떻게 바꾸는가?-

    Date2016.10.31 Category중급강의실 ByRPG란무엇인가? Views2431 Votes0
    Read More
  18. 쯔꾸르 게임을 네코플레이어에 최적화 시켜보자! # 해상도 편

    Date2016.04.17 Category중급강의실 By양갱님 Views36387 Votes10
    Read More
  19. 게임의 퀼리티를 높이자! 3편-맵배치

    Date2016.04.08 Category초급강의실 Byifeve Views5324 Votes2
    Read More
  20. Input 객체의 키코드 확장

    Date2016.04.05 Category초급강의실 By러닝은빛 Views1501 Votes0
    Read More
  21. 초보가쓰는 초보용 Rpg게임 만들기 (xp)

    Date2016.03.13 Category초급강의실 ByMarine Views6395 Votes0
    Read More
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 Next
/ 10


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

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