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

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 수정 삭제
제 강좌에 대해 의문을 가지실지 모르겠지만 제 강좌는 알만xp 도움말의 형식을 따와서 개인적인생각과 견해등을 옮겨넣는겁니다.
도움말을 옮겨오는 이유는 워낙 그게 예제도 잘되어있고 설명이 잘되어 있지만 번역이 좀 엉터리라 혼동할수있는경우가 많아서 입니다.
이것보다 더 자세한게 필요하시다면 직접 xp 도움말을 참조하세요.

그럼 강좌를 시작하면
역시 게임에서 가장 중요한건 그래픽의 표기겠지요.

1. 그래픽 모듈

rgss의 게임 라이브러리중에서 가장 중요한건 그래픽 모듈입니다. 어떤 작용을 하는가는 말그대로 게임내 그래픽 전부를 처리하는 메소드의 모임입니다. 뭐 그림의 표시라거나 캐릭터그래픽, 전투그래픽등 모든 그래픽은은 이 모듈의 손을 거친가도 하면 됩니다.

모듈이라고 하는건 같은 일을 하는 메서드를 모아놓은 상위 메서드 라고 생각하면 됩니다. 편의상 모듈이라고 부르면됩니다만,
기능면에서는 클래스와 흡사합니다만 모듈에 인스턴스를 만들거나 할 수 없습니다. 뭐 할필요도 없는게 사실이지요.

loop do
  Graphics.update
end

일단 이 식은 무한루프입니다. 일전에 배우셨지요. 두번째 행인 Graphics.update는 그래픽 모듈의 update 메서드를 불러오고있습니다.
참고로 하위의 메서드를 호출할때는 마침표 . 를 사용합니다. 

Graphics.update는 화면을 갱신해서 1프레임 넘어가게 됩니다. 이것이 게임실행의 기본이 되어서 그래픽을 연결시키는 구실을 하게됩니다.

이 식은 단지 화면을 아무것도 불러오지않는 상태에서 업데이트 하는것이기 때문에 아무것도 출력되지않습니다.


2. 스프라이트, 비트맵

이번엔 베틀러에서 그림을 불러와 화면에 출력해봅시다.

devil = Sprite.new
devil.bitmap = Bitmap.new("Graphics/Battlers/075-Devil01")

loop do
  Graphics.update
end


sprite.new는 sprite 의 서브클래스인 Viewport 클래스에서 new 인스턴스를 작성한것입니다.  
첫째항에서는 devil 변수에 어떤화상을 표시하기위한 기본개념이 되는 스프라이트인 방금작성한 new 인스턴스를 대입시키고 있습니다.
캐릭터라인이나 같은경우에는 정수나 문자와 같이 직접 쓸수있었지만 스프라이트에서는 Sprite.new 같이 작성해줄 필요가 있습니다.

2번째행에서는 베틀러 파일에서 075-Devil01이라는 파일을 읽어들이는 비트맵 클래스의 인스턴스를 새로 작성하고 있는 동시에 스프라이트의 전송파일로 배정하고 있습니다. 

참고로 Bitmap.new의 인수로 지정되는 이름에는 백슬래시보다는 슬래시를 사용하는게 좋습니다. 아무래도 캐릭터라인에서 백슬래시는 여러 의미를 가지기 때문에 되도록이면 에러를 면하자는 취지에서 슬래시사용을 권장하겠습니다.


3. 프롭터티

sprite 클래스의 bitmap 같은걸 프롭퍼티라고 부릅니다. 이것은 rgss 만의 언어이기 때문에 rgss2에서 스크립트가 공유가 되지않는게 이런경우때문이라고 할수있겠습니다.
게임 라이브러리에는 대입연산자를 이용해 내용설정이 가능하지만 이미 정의되어있는 메서드가 있습니다. 이런것들을 편의상 프롭퍼티라고 부르는데, 예를들어 스프라이트의 좌표를 나타내는 프롭퍼티는 x와 y가 있는데 이것의 값을 바꾸면 이렇게 됩니다.

devil = Sprite.new
devil.bitmap = Bitmap.new("Graphics/Battlers/075-Devil01")
devil.x = 320
devil.y = 240

loop do
  Graphics.update
end

3행과 4행에서 프롭퍼티 x에 320 이라는 값을 대입하고 있습니다.
좀 다듬어 보면

devil = Sprite.new
devil.bitmap = Bitmap.new("Graphics/Battlers/075-Devil01")
devil.ox = devil.bitmap.width / 2
devil.oy = devil.bitmap.height / 2
devil.x = 320
devil.y = 240

loop do
  Graphics.update
end

이제 중앙에 그림이 표시됩니다. 원점의 좌표를 ox, oy라고 합니다. 이것의 프롭퍼티를 설정하는것인데, 게임상 그림의 표시는 원점이 좌측 상단으로 지정되어져있습니다. 해석을 하면  width, height 라고 하는 것은 Bitmap 클래스의 메소드로, 각각 화상의 폭과 높이를 가져오는 것입니다. 그걸 2로 나누면 중앙에 원점을 놓게 되는것이지요.
?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수 추천 수
공지 초급강의실 게임제작강좌 A-Z 색인 (2016.1.24 ver) 2 file 천무 2016.01.12 7373 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
» 고급강의실 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
23 고급강의실 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 4351 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(김원배) | 사신지(김병국)