질문과 답변

Extra Form

 

많이 쓰이는 스크립트인데요.

텍스트가 무조건 맨윗부분에서만 나타나는데

맨아래에서만 뜨게하고자 하는데

문제는 스크립트맹이라..

잘살펴봐도 슬잘데기없는 투명도랑 폰트 사이즈 정도 밖에 안보이는데

self.contents = Bitmap.new(width - 32, height - 1) 이부분에 폭,높이가 보이길래 이건가 하고 수치 조정해도 그대로고 허공에 커서만 생겨나네요....
스크립트 고수님들 도와주세요ㅜ;

 


# ▶ 메세지 띄우기 - 준돌

class Window_JDmsg < Window_Base
  # ● 오브젝트 초기화
  def initialize
    super(0, 0, 640, 150)
    self.contents = Bitmap.new(width - 32, height - 1)
    self.contents.font.size = 32
  end

  def set_text(text,text_color)
    # 텍스트와 alignment의 적어도 한편이 전회와 다른 경우
    if text != @text
      # 텍스트를 재묘화
      self.contents.clear
      self.contents.font.color = text_color(text_color)
      self.contents.draw_text(4, 0, self.width - 40, 32, text, 1)
      @text = text
      @actor = nil
    end
    self.visible = true
  end
end

class Scene_Map
  alias jd_initialize initialize
  #───────────────────────
  # ♧ 오브젝트 초기화
  #───────────────────────
  def initialize
    jd_initialize
    $메세지 = Window_JDmsg.new
    $메세지.opacity = 0
    $메세지.z = 999
  end
  #───────────────────────
  # ♧ 프레임 갱신
  #───────────────────────
  alias jd_update update
  def update
    jd_update
    if $메세지.disposed?
      $메세지 = Window_Help.new
    end
    $메세지.contents_opacity -= 3
    if $메세지.contents_opacity< 50
      $메세지.opacity = 0
      $메세지.contents_opacity = 0
    end
    if $scene != self
      $메세지.dispose
    end
  end
end
 
def 메세지(text, x, y, text_color = "normal_color")
  $메세지.x = x
$메세지.y = y
  $메세지.contents_opacity = 255
  $메세지.set_text(text,text_color)
  if text_color == "노말"
  text_color = "normal_color"
  end
end

Comment '7'
  • ?
    허걱 2012.12.12 23:10
    super(0, 0, 640, 150)
    부분을
    super(0, 330, 640, 150)
    으로 고쳐보시기 바랍니다.
    330이라는 숫자는 게임 화면의 높이인 480 에서 윈도우의 높이인 150을 뺀값, Y좌표를 나타냅니다.
  • ?
    브라우니 2012.12.13 14:14
    정말 감사합니다 ㅎ 수정해 볼게요
  • ?
    브라우니 2012.12.13 14:17

    음 ㅜㅜ 안되는군요

     self.contents = Bitmap.new(width - 42, height - 1) 이부분으로 폭이랑 높이 수정이 되는데

    super(0, 0, 320, 75)위에 이거는 어떻게 쓰는건지는 모르겠지만 일단 뒤에 두자리 수치는 어떤수로 바꿔도 바뀌는건 없고 다만 0으로 바꿀때만 오류만 뜨네요 앞에 0이랑 0은 저거 몇으로 하든 역시 바뀌는것도 없고 시행도 잘됩니다

    설마 스크립트자체를 갈아야 하는건가요?? 스크립트 배우던가 해야지ㅜㅜ

  • ?
    허걱 2012.12.13 22:24
    계속 말하고 있는 Bitmap 부분은 그냥 두는게 좋지 않을까요?;;
    정확히 뭘 하고싶은지 잘 모르겠지만 단지 윈도우가 표시되는 위치만을 바꾸고 싶다면
    super(0,0,640,150) 부분만을 고쳐보시기 바랍니다.

    순서대로 각각 윈도우의 [X좌표, Y좌표, 넓이, 높이] 를 나타냅니다.
  • ?
    허걱 2012.12.13 22:29
    지금 보니... 실행 명령이
    메세지(text, x, y..) 군요
    메세지(text, x, y) 부분에서 좌표를 지정해주면 될듯 하네요.
  • ?
    허걱 2012.12.13 22:29
    참고로 self.contents = Bitmap.new(width - 32, height - 32) 라고 적어줘야 화살표가 안보입니다.
  • ?
    브라우니 2012.12.14 14:49
    음... 감사합니다 ㅜㅜ 하나씩 되는데로 해봐야겠어요

List of Articles
종류 분류 제목 글쓴이 날짜 조회 수
공지 묻고 답하기 가이드 습작 2014.06.14 12397
Board Pagination Prev 1 ... 4 5 Next
/ 5