맵에 도착하면 그 맵의 이름이 우측 상단에 떴다가 스르르 사라지게 하는 기능입니다.
(뜨는 네임은 작성된 맵 이름이 뜨기 때문에 맵 이름을 만들 때 굉장히 고심해야 할겁니다. 뭐 사실
막 지어도 되지만.ㅡ.ㅡ;; 막 지으면 이 스크립트를 적용한 보람이..후우..)
섹션 : Window_Map_Main (스크립트 맨 아래 Main 위에 마우스 오른버튼 찔러서 '삽입' 누르시면
삽입할 새로 세션을 만들 수 있습니다. 이름을 입력하고 아래 소스를 전부 넣어주시면 됩니다)
수정이 아니라 새로 만드는 것임을 주목해주세요. 게다가 위치도 Main 섹션 위에 넣어야 합니다.
소스는 전부 넣어주시면 됩니다.
내용중 "-"+text+"-", 라고 나오는 부분이 실제로 뜨게 하는 부분인데.
- 맵이름 - 으로 나옵니다. - 를 빼시려면 위에 내용을 text 라고만 써 넣으면 되겠죠.
#==============================================================================
# ■ Window_Map_Name
#------------------------------------------------------------------------------
# 맵명을 표시하는 윈도우입니다.
#==============================================================================
class Window_Map_Name < Window_Base
#--------------------------------------------------------------------------
# ● 오브젝트 초기
#--------------------------------------------------------------------------
def initialize
super(460, 0, 180, 64)
self.contents = Bitmap.new(width-32, height-32)
@showing_time = 0
@text_color = Color.new(255,255, 0,255) # 지명문자색
end
#--------------------------------------------------------------------------
# ● 텍스트 설정
# text : 윈도우에 표시하는 문자열
# align : alignment (0..왼쪽 , 1..중앙 , 2..오른쪽)
#--------------------------------------------------------------------------
def set_text(text, align = 2)
# 텍스트와 alignment의 적어도 한편이 전회와 다른 경우
if text != @text or align != @align
# 텍스트를 표기
self.contents.clear
@showing_time = 100
@text = text
@align = align
@actor = nil
self.contents_opacity = 255
x = 4
y = 0
self.contents.font.color = Color.new( 0, 0, 0, 192)
self.contents.draw_text(x+2, y+2, self.width - 40, 32, "-"+text+"-",align=1)
self.contents.font.color = Color.new( 64, 64, 64, 192)
self.contents.draw_text(x-1, y-1, self.width - 40, 32, "-"+text+"-", align=1)
self.contents.draw_text(x+1, y-1, self.width - 40, 32, "-"+text+"-", align=1)
self.contents.draw_text(x-1, y+1, self.width - 40, 32, "-"+text+"-", align=1)
self.contents.draw_text(x+1, y+1, self.width - 40, 32, "-"+text+"-", align=1)
self.contents.font.color = @text_color
self.contents.draw_text(x, y, self.width - 40, 32, "-"+text+"-", align=1)
else
@showing_time -= 1
if @showing_time < 16
# 페이드아웃 하기 시작한다
self.contents_opacity = @showing_time * 16
elsif @showing_time <= 0
# 일정시간을 보냈으므로 표시를 지운다
self.contents.clear
end
end
self.visible = true
end
end
#==============================================================================
# ■ Scene_Map
#==============================================================================
class Scene_Map
#--------------------------------------------------------------------------
# ● 메인처리
#--------------------------------------------------------------------------
alias xrxs20_main main
def main
# 지명 윈도우를 작성
@map_name_window = Window_Map_Name.new
@map_name_window.opacity = 0
# ?
xrxs20_main
# 지명 윈도우를 해방
@map_name_window.dispose
end
#--------------------------------------------------------------------------
# ● 프레임 갱신
#--------------------------------------------------------------------------
alias xrxs20_update update
def update
# 지명 윈도우의 갱신
@map_name_window.set_text($game_map.name,1)
xrxs20_update
end
end
#==============================================================================
# ■ Scene_Title
#==============================================================================
class Scene_Title
#--------------------------------------------------------------------------
# ● 메인처리
#--------------------------------------------------------------------------
alias xrxs20_main main
def main
$map_infos = load_data("Data/MapInfos.rxdata")
for key in $map_infos.keys
$map_infos[key] = $map_infos[key].name
end
xrxs20_main
end
end
#==============================================================================
# ■ Game_Map
#==============================================================================
class Game_Map
#--------------------------------------------------------------------------
# ● 맵명을 취득
#--------------------------------------------------------------------------
def name
$map_infos[@map_id]
end
end