조회 수 589 추천 수 5 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

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

단축키

Prev이전 문서

Next다음 문서

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


1탄에 뒤이어 2탄을 씁니다.
그런데 2탄이 나오기 까지 시간이 좀(조금 너무 지나치게 많이) 걸렸군요.
열심히 썼는데 처음 2일 동안 댓글도, 추천도, 조회도 너무 낮아서 시무룩 하는 바람에....
그럼 하지메(시작).


class Window_SP < Window_Base
  def initialize
    super(0, 0, 160, 64)
  end
end

1탄을 보신 분들은 위의 것을 완벽하게 파악하셨을 것입니다.
그럼 여기에 텍스트를 넣어야 하죠.

참고로, Ruby에선 (≒프로그래밍) 텍스트=스트링 입니다.

self.contents = Bitmap.new(width - 32, height - 32)
refresh

이 두가지를 super 아래에 추가해 봅시다.
윈도우 구성 설정에 contents(즉, 어떠한 것)를 추가 합니다.
contents 들은 스트링이 될수도 있고, 그외 그래픽이 될수도 있습니다.
이 contents 를 super에서 설정한 윈도우 사이즈에 맞게 거리를 두도록
설정 하는게 (width - 32, height - 32) 입니다. 원래 제작 되어 있던
윈도우를 보시면, 윈도우의 변(그러니까, 3D에선 모서리) 과
그 윈도우의 내용들(contents)과의 거리가 꽤 있다는것을 보실 겁니다.
여기서 윈도우의 변은 테두리가 아니고, 테두리 중에서도 가장 바깥에
있는 선을 예기하는 겁니다.


그리고 refresh. 아무것도 없고, 변수도 아니고 아무것도 아닌데 왜 나왔을까요.
사실 refresh 라는 이름은 별 의미가 없습니다. text 라고 지어도 되고,
chodingzul 이라고 지어도 됩니다. 하지만 이게 뭘 의미 하는 걸까요?
바로 메소드를 불러 오는 것입니다. 하지만 메소드가 없지요?
그래서 만드는 것입니다. 사실 initialize 메소드 내에 첨가 해도 되나,
initialize와 refresh를 분리하는 이유는, 다른 사람들이 조작 하기 편하게,
그리고 자기 자신도 다루기 편하게 하기 위해서 입니다.
분류해 두면 윈도우 조작 따로, 텍스트(위치, 스트링)조작 따로할수 있으니까요.

class Window_SP < Window_Base
  def initialize
    super(0, 0, 160, 64)
    self.contents = Bitmap.new(width - 32, height - 32)
    refresh
  end
  def refresh
  end
end

def가 메소드를 의미하는건 다 아시죠?
refresh 라는 메소드를 def로 지정 했습니다.

def refresh

모든 명령어(변수, 오브젝트 등등 제외)에는 end가 필요하죠.

end

그런데 정작 만들고 나면 아무것도 안뜰것입니다.

왜?

그야 당연하죠. 텍스트를 아직 안 넣었으니까요.

    self.contents.clear
    self.contents.font.color = system_color
    self.contents.draw_text(4, 0, 120, 32, "연금술사")

라고 refresh 메소드에 넣어 봅시다.
그러면 윈도우에 '연금술사'라고 텍스트가 나올것입니다.

그럼 설명

self.contents.clear

잡 컨텐츠가 있으면 안되죠. 일단 전부다 클리어 해야 합니다. 그것이 바로
위에 있는 clear 명령

self.contents.font.color = system_color

x = y일때, x 부분은 '텍스트 색깔 뭐?'라는 부분 이고, y는 '이거'라는 부분입니다.
system_color 라는 것은 기본 색이죠. 이것은 window_base를 참조 하시거나,
개인적으로 바꿀수 있습니다.

self.contents.draw_text(x, y, w, h, t, a)

draw_text 라는 것은, 제 추측에 의하면 아마 Ruby에 몇 안되는 상위 클래스중 하나,
window 클래스에 속하는 메소드(=명령어) 일것입니다. window 클래스는
window_base의 슈퍼 클래스이기도 합니다.
아무튼, 본론으로 돌아와서, 다시 설명

x = 텍스트 x
y = 텍스트 y
w = 글자란 폭
h = 글자란 높이
t = 선정할 텍스트
a = 정렬(align 을 기초로, 0, 1, 2 로 나눕니다. 정렬은 이 숫자들 순서)

대체 적으로, x 나 y 는 0으로 둡니다. 위에 있던 예제는 RXP 기본에서 퍼왔기
때문에 x 부분이 4인것입니다. 이건 개인 취향입니다.
그리고 w는 원하시는 만큼, 개인적으론 160-32(=128) 또는 160-64(96)을 추천합니다.
그리고 글자 크기가 보통이고 한줄인 이상, h 부분은 32정도로 해두세요.
그리고 중요한것은 t !
스트링은 "과 " 사이에 쓰셔야 합니다. 그 외에 방법은 다음 탄에 자세하게 설명할 것입니다.
여기선 일반 적인 텍스트를 썼지만, 특이하게 변수를 스트링으로 옮기거나(.to_s 를 사용하면
가능합니다), 아니면 언제든지 변경되는 텍스를 사용하는 경우가 있기에(예 : 시간), 그걸
3탄에서 설명하려 합니다.

어쨋든! 그리고 a는 0이나 1로 두세요. 이건 정렬입니다.


아마 이정도면 텍스트가 있는 윈도우는 다 만드실수 있을겁니다.
윈도우에 특이한 능력을 부여하고 싶다구요? 그건 4탄에서 기대하시기 바랍니다.




1탄 - 윈도우 제작
2탄 - 텍스트 삽입
3탄 - 특이한 텍스트들
4탄 - 윈도우의 특수 능력
5탄 - 윈도우의 활용

1탄 - 윈도우의 크기등을 조절할수 있다.
2탄 - 텍스트가 있는 윈도우를 만들수 있다.
3탄 - 바뀌는 텍스트, 수치변수 스트링을 사용할수 있다.
4탄 - 윈도우를 커맨드나 셀렉트 형식으로 만들수 있다.
5탄 - 윈도우를 다 만들었다. 그럼 실제 상황에서 써먹자.
?

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
344 언어/기타 ddr 같은 음악게임 Ress 2006.02.11 554
» RPG Maker [RXP]윈도우 만들기 2탄-텍스트 삽입 file 『연금술사』 2006.02.11 589
342 언어/기타 1맵=1bgm? 고정관념을 깨자! rukia 2006.02.10 710
341 RPG Maker rpg에서의 전투에 부가요소+ 無正死人 2006.02.09 727
340 언어/기타 무한알피지 같은 것에서 캐릭터를 고를 때... 2006.02.09 514
339 언어/기타 [울스M프로젝트?!-┏]Html 기초부터 탄탄히 ! -4- 울스M 2006.02.08 357
338 언어/기타 삼국지 같은 게임을 만들때 필요할수 있는 시스템.. SKT_Terr god 2006.02.08 614
337 RPG Maker 엠블레이스 같은 게임을..? SKT_Terr god 2006.02.08 557
336 언어/기타 프린세스메이커3를 만들어보자!!③.엔딩편 Ress 2006.02.06 1077
335 RPG Maker 게임에 대해 생각해보는 점 Polaris君 2006.02.05 484
334 RPG Maker 유명한 게임들에 대한 고찰 『연금술사』 2006.02.05 1044
333 언어/기타 머털도사2 천년의 약속처럼.. 로안 2006.02.05 688
332 RPG Maker RPGXP 초보강좌 [전투에서의 이벤트] file 우리의만두 2006.02.04 543
331 언어/기타 용사가 마왕을 처치한다는 얘기, 그 후의 이야기 우리의만두 2006.02.04 690
330 RPG Maker [RXP]윈도우 만들기 3탄-특이한 텍스트들(변수편) 『연금술사』 2006.02.03 625
329 언어/기타 덩키의 게임제작 과정공론 『덩키동크』 2006.02.03 893
328 언어/기타 마법 쓸때 사용하는 촉매 옵져버☆ 2006.02.03 536
327 RPG Maker 2개이상의 캐릭조종 Ress 2006.02.02 715
326 RPG Maker [미약한 팁]RM2000->XP로 오면서 약간 달라진 점 Ress 2006.02.02 697
325 RPG Maker [rpg2000]페이지의 순서와 이벤트의 출력 [夢想家] 2006.02.02 426
Board Pagination Prev 1 ... 29 30 31 32 33 34 35 36 37 38 ... 51 Next
/ 51






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

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