메뉴

메뉴화면에 '해야 할 일' 알려주는 창 넣기

by 하진 posted Apr 23, 2012
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

지난 서버 롤백 때 날아가서 다시 올립니다.


메뉴화면에서 보수(걸음수)창과 플레이시간 창을 치우고, 대신 플레이어에게 '다음 할 일'을 알려주는 창을 넣는 것입니다.

지정변수에 따라 다른 문구를 표시할 수 있습니다. 매우 간단한 수정이지만 초짜인 저는 헤매야 했지요.....ㅋㅋㅋ

질답게시판에서 Lighna 님과 습작 님이 적극 조언해주셨습니다. 감사합니다!



사용법

1) Scene_Menu의 '# 플레이 시간 윈도우를 작성' 부분을 지우거나, x/y 한 축을 999로 해서 멀리 치웁니다.

2) 그 아래 '# 보수 윈도우의 작성' 부분을

    @steps_window = Window_NextQuest.new

    @steps_window.x = 0

    @steps_window.y = 224

   로 바꿉니다.

3) 섹션창의 Window_PlayTime 아래에 새 섹션을 추가해 Window_NextQuest로 이름붙이고,

이하 붙여넣기합니다.



#==============================================================================

# ■ Window_NextQuest

#------------------------------------------------------------------------------

#  메뉴 화면에서 다음 해야 할 일을 알려주는 윈도우입니다.

#==============================================================================


class Window_NextQuest < Window_Base

  #--------------------------------------------------------------------------

  # ● 오브젝트 초기화

  #--------------------------------------------------------------------------

  def initialize

    super(0, 0, 160, 192)

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

    refresh

  end

  #--------------------------------------------------------------------------

  # ● 리프레쉬

  #--------------------------------------------------------------------------

  def refresh

    self.contents.clear

    self.contents.font.color = system_color

    self.contents.draw_text(4, 0, 150, 32, "해야 할 일")

    self.contents.font.color = normal_color

    self.contents.font.size = 16

line = []

line_width = 0

text = ""

text2 = ""

bitmap = Bitmap.new(1,1)

case $game_variables[4]

 when 0

  text = "집으로 올라가자."

 when 1

  text = "집 안으로 들어가자."

 when 2

  text = "전화를 받자."


end

for i in text.scan(/./)

  rect = bitmap.text_size(i)

  if line_width + rect.width > 150

    line_width = 0

    line.push(text2)

    text2 = ""

    text2 += i

    line_width += rect.width

    else

    text2 += i

    line_width += rect.width

  end

end

line.push(text2)

for i in 0...line.size

  self.contents.draw_text(4, 25 + 22 * i, 150, 32, line[i])

end

  end

end



case $game_variables[4]가 지정변수 ID 넣는 곳입니다.([]안에 변수번호를 넣습니다. 여기서는 0004번 변수)

즉 지정변수가 1일 때, '해야 할 일' 창에 '집으로 올라가자.' 가 표시되고

2일 때 '집 안으로 들어가자.', 3일 때 '전화를 받자.' 가 표시되는 것입니다. 문장이 길어져도 자동줄바꿈이 됩니다. 습작님의 마법주문이 있거든요.

이하로 계속 늘려나가시면 됩니다.


써보시고 혹시 문제 있으면 알려주세요. 다시 확인해보고 썼지만 잘못 썼을 수가 있으니까요... 도움이 되길 바랍니다!