스크립트 그림자문자 사용하기.. 바탕색이 무슨색이건 상관없이 글자가 잘보인다!!!
2007.11.05 11:10
extra_vars1 | KGC |
---|---|
extra_vars2 | RPGXP |
extra_vars3 | 대화관련 |
extra_vars4 | 1 |
extra_vars5 | 133055 |
extra_vars6 | 1214027990 |
extra_vars7 | 2 |
extra_vars8 | |
extra_vars9 | |
extra_vars10 | |
extra_vars11 | |
extra_vars12 |
문자에 테두리를 표시하는 스크립트입니다..
하는 김에 그림자 문자도 묘화 가능합니다.
draw_text 대신에 사용할 수 있습니다.
주의:전투중에 「테두리 문자」를 사용하면(자) 쓸데없게 렉걸릴수도 있습니다..
전투중은 가능한 한 「그림자 문자」또는 draw_text 을 사용해 주세요.
그럼 추가해보도록 하죠~
이번에 작업할 스크립트 섹션은 'Bitmap(신규)'입니다..Bitmap이란 섹션을 만드세요..
그런후 아래스크립트를 고대로 복사해 붙여넣으시기바랍니다..
#==============================================================================
# ■ Bitmap
#------------------------------------------------------------------------------
# Bitmap클래스 메소드 추가
#==============================================================================
class Bitmap
#--------------------------------------------------------------------------
# ● 테두리 문자 묘화
#--------------------------------------------------------------------------
def draw_frame_text(x, y, width, height, string, align = 0,
frame_color = Color.new(0, 0, 0))
# 원의 색을 보존해 두는
origin_color = font.color.dup
# 인연 잡기
font.color = frame_color
draw_text(x - 1, y - 1, width, height, string, align)
draw_text(x - 1, y + 1, width, height, string, align)
draw_text(x + 1, y - 1, width, height, string, align)
draw_text(x + 1, y + 1, width, height, string, align)
# 원의 색에 되돌려 묘화
font.color = origin_color
draw_text(x, y, width, height, string, align)
end
#--------------------------------------------------------------------------
# ● 그림자 문자 묘화
#--------------------------------------------------------------------------
def draw_shadow_text(x, y, width, height, string, align = 0,
shadow_color = Color.new(0, 0, 0))
# 원의 색을 보존해 두는
origin_color = font.color.dup
# 그림자 묘화
font.color = shadow_color
draw_text(x + 2, y + 2, width, height, string, align)
# 원의 색에 되돌려 묘화
font.color = origin_color
draw_text(x, y, width, height, string, align)
end
end
한 가지 단점이 있습니다.
draw_text메소드는 두 개가 있습니다.
draw_text(x, y, width, height, str[, align])
이 경우 draw_frame_text를 써줘도 되는 경우입니다.
draw_text(rect, str[, align])
이 경우는 써주면 에러나는 경우입니다.
예를 들면 Window_Command섹션에서는
self.contents.draw_text(rect, @commands[index])
를 써주기 때문에 교체할 수 없고, 따라서 커맨드윈도우를 사용하는 타이틀 메뉴와는 호환이 되지 않습니다.
따라서 그 경우를 위해 아래 스크립트를 넣어줍니다.
#==============================================================================
# ■ Bitmap
#------------------------------------------------------------------------------
# Bitmap클래스 메소드 추가
#==============================================================================
class Bitmap
#--------------------------------------------------------------------------
# ● 테두리 문자 묘화
#--------------------------------------------------------------------------
def draw_frame_rectext(rect, string, align = 0,
frame_color = Color.new(0, 0, 0))
# 원의 색을 보존해 두는
origin_color = font.color.dup
# 인연 잡기
font.color = frame_color
draw_text(rect.x - 1, rect.y - 1, rect.width, rect.height, string, align)
draw_text(rect.x - 1, rect.y + 1, rect.width, rect.height, string, align)
draw_text(rect.x + 1, rect.y - 1, rect.width, rect.height, string, align)
draw_text(rect.x + 1, rect.y + 1, rect.width, rect.height, string, align)
# 원의 색에 되돌려 묘화
font.color = origin_color
draw_text(rect, string, align)
end
#--------------------------------------------------------------------------
# ● 그림자 문자 묘화
#--------------------------------------------------------------------------
def draw_shadow_rectext(rect, string, align = 0,
shadow_color = Color.new(0, 0, 0))
# 원의 색을 보존해 두는
origin_color = font.color.dup
# 그림자 묘화
font.color = shadow_color
draw_text(rect.x + 2, rect.y + 2, rect.width, rect.height, string, align)
# 원의 색에 되돌려 묘화
font.color = origin_color
draw_text(rect.x, rect.y, rect.width, rect.height, string, align)
end
end
이것으로 완료입니다.
그리고는 ,
draw_text(…)
을
draw_frame_text(…)
이나
draw_shadow_text(…)
에 고쳐 쓰면 , 테두리 문자·그림자 문자가 묘화 됩니다.
주:draw_text(rect, string[, align])형식에는 대응하고 있지 않습니다.
대응하도록 고친 스크립트는
draw_text(…)
을
draw_frame_rectext(…)
이나
draw_shadow_rectext(…)
에 고쳐 쓰면 , 테두리 문자·그림자 문자가 묘화 됩니다.
이제 아래 스크립트로 섹션 Window_Command를 갈아치워줍니다. 왜? 타이틀의 메뉴와 병용하려고.
#==============================================================================
# ■ Window_Command
#------------------------------------------------------------------------------
# 일반적인 커멘드 선택을 실시하는 윈도우입니다.
#==============================================================================
class Window_Command < Window_Selectable
#--------------------------------------------------------------------------
# ● 오브젝트 초기화
# width : 윈도우의 폭
# commands : 커멘드 캐릭터 라인의 배열
#--------------------------------------------------------------------------
def initialize(width, commands)
# 커멘드의 개수로부터 윈도우의 높이를 산출
super(0, 0, width, commands.size * 32 + 32)
@item_max = commands.size
@commands = commands
self.contents = Bitmap.new(width - 32, @item_max * 32)
refresh
self.index = 0
end
#--------------------------------------------------------------------------
# ● 리프레쉬
#--------------------------------------------------------------------------
def refresh
self.contents.clear
for i in 0...@item_max
draw_item(i, normal_color)
end
end
#--------------------------------------------------------------------------
# ● 항목의 묘화
# index : 항목 번호
# color : 문자색
#--------------------------------------------------------------------------
def draw_item(index, color)
self.contents.font.color = color
rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
self.contents.draw_frame_rectext(rect, @commands[index])
end
#--------------------------------------------------------------------------
# ● 항목의 무효화
# index : 항목 번호
#--------------------------------------------------------------------------
def disable_item(index)
draw_item(index, disabled_color)
end
end
#이것으로 저 부분 역시 완료입니다.
-메소드 사양(클래스:Bitmap)-
draw_frame_text(x, y, width, height, str[, align, color])
draw_shadow_text(x, y, width, height, str[, align, color])
[x, y, width, height, str, align]draw_text (와)과 같이.
[color]그림자의 색.
출저 : KGC
하는 김에 그림자 문자도 묘화 가능합니다.
draw_text 대신에 사용할 수 있습니다.
주의:전투중에 「테두리 문자」를 사용하면(자) 쓸데없게 렉걸릴수도 있습니다..
전투중은 가능한 한 「그림자 문자」또는 draw_text 을 사용해 주세요.
그럼 추가해보도록 하죠~
이번에 작업할 스크립트 섹션은 'Bitmap(신규)'입니다..Bitmap이란 섹션을 만드세요..
그런후 아래스크립트를 고대로 복사해 붙여넣으시기바랍니다..
#==============================================================================
# ■ Bitmap
#------------------------------------------------------------------------------
# Bitmap클래스 메소드 추가
#==============================================================================
class Bitmap
#--------------------------------------------------------------------------
# ● 테두리 문자 묘화
#--------------------------------------------------------------------------
def draw_frame_text(x, y, width, height, string, align = 0,
frame_color = Color.new(0, 0, 0))
# 원의 색을 보존해 두는
origin_color = font.color.dup
# 인연 잡기
font.color = frame_color
draw_text(x - 1, y - 1, width, height, string, align)
draw_text(x - 1, y + 1, width, height, string, align)
draw_text(x + 1, y - 1, width, height, string, align)
draw_text(x + 1, y + 1, width, height, string, align)
# 원의 색에 되돌려 묘화
font.color = origin_color
draw_text(x, y, width, height, string, align)
end
#--------------------------------------------------------------------------
# ● 그림자 문자 묘화
#--------------------------------------------------------------------------
def draw_shadow_text(x, y, width, height, string, align = 0,
shadow_color = Color.new(0, 0, 0))
# 원의 색을 보존해 두는
origin_color = font.color.dup
# 그림자 묘화
font.color = shadow_color
draw_text(x + 2, y + 2, width, height, string, align)
# 원의 색에 되돌려 묘화
font.color = origin_color
draw_text(x, y, width, height, string, align)
end
end
한 가지 단점이 있습니다.
draw_text메소드는 두 개가 있습니다.
draw_text(x, y, width, height, str[, align])
이 경우 draw_frame_text를 써줘도 되는 경우입니다.
draw_text(rect, str[, align])
이 경우는 써주면 에러나는 경우입니다.
예를 들면 Window_Command섹션에서는
self.contents.draw_text(rect, @commands[index])
를 써주기 때문에 교체할 수 없고, 따라서 커맨드윈도우를 사용하는 타이틀 메뉴와는 호환이 되지 않습니다.
따라서 그 경우를 위해 아래 스크립트를 넣어줍니다.
#==============================================================================
# ■ Bitmap
#------------------------------------------------------------------------------
# Bitmap클래스 메소드 추가
#==============================================================================
class Bitmap
#--------------------------------------------------------------------------
# ● 테두리 문자 묘화
#--------------------------------------------------------------------------
def draw_frame_rectext(rect, string, align = 0,
frame_color = Color.new(0, 0, 0))
# 원의 색을 보존해 두는
origin_color = font.color.dup
# 인연 잡기
font.color = frame_color
draw_text(rect.x - 1, rect.y - 1, rect.width, rect.height, string, align)
draw_text(rect.x - 1, rect.y + 1, rect.width, rect.height, string, align)
draw_text(rect.x + 1, rect.y - 1, rect.width, rect.height, string, align)
draw_text(rect.x + 1, rect.y + 1, rect.width, rect.height, string, align)
# 원의 색에 되돌려 묘화
font.color = origin_color
draw_text(rect, string, align)
end
#--------------------------------------------------------------------------
# ● 그림자 문자 묘화
#--------------------------------------------------------------------------
def draw_shadow_rectext(rect, string, align = 0,
shadow_color = Color.new(0, 0, 0))
# 원의 색을 보존해 두는
origin_color = font.color.dup
# 그림자 묘화
font.color = shadow_color
draw_text(rect.x + 2, rect.y + 2, rect.width, rect.height, string, align)
# 원의 색에 되돌려 묘화
font.color = origin_color
draw_text(rect.x, rect.y, rect.width, rect.height, string, align)
end
end
이것으로 완료입니다.
그리고는 ,
draw_text(…)
을
draw_frame_text(…)
이나
draw_shadow_text(…)
에 고쳐 쓰면 , 테두리 문자·그림자 문자가 묘화 됩니다.
주:draw_text(rect, string[, align])형식에는 대응하고 있지 않습니다.
대응하도록 고친 스크립트는
draw_text(…)
을
draw_frame_rectext(…)
이나
draw_shadow_rectext(…)
에 고쳐 쓰면 , 테두리 문자·그림자 문자가 묘화 됩니다.
이제 아래 스크립트로 섹션 Window_Command를 갈아치워줍니다. 왜? 타이틀의 메뉴와 병용하려고.
#==============================================================================
# ■ Window_Command
#------------------------------------------------------------------------------
# 일반적인 커멘드 선택을 실시하는 윈도우입니다.
#==============================================================================
class Window_Command < Window_Selectable
#--------------------------------------------------------------------------
# ● 오브젝트 초기화
# width : 윈도우의 폭
# commands : 커멘드 캐릭터 라인의 배열
#--------------------------------------------------------------------------
def initialize(width, commands)
# 커멘드의 개수로부터 윈도우의 높이를 산출
super(0, 0, width, commands.size * 32 + 32)
@item_max = commands.size
@commands = commands
self.contents = Bitmap.new(width - 32, @item_max * 32)
refresh
self.index = 0
end
#--------------------------------------------------------------------------
# ● 리프레쉬
#--------------------------------------------------------------------------
def refresh
self.contents.clear
for i in 0...@item_max
draw_item(i, normal_color)
end
end
#--------------------------------------------------------------------------
# ● 항목의 묘화
# index : 항목 번호
# color : 문자색
#--------------------------------------------------------------------------
def draw_item(index, color)
self.contents.font.color = color
rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)
self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
self.contents.draw_frame_rectext(rect, @commands[index])
end
#--------------------------------------------------------------------------
# ● 항목의 무효화
# index : 항목 번호
#--------------------------------------------------------------------------
def disable_item(index)
draw_item(index, disabled_color)
end
end
#이것으로 저 부분 역시 완료입니다.
-메소드 사양(클래스:Bitmap)-
draw_frame_text(x, y, width, height, str[, align, color])
draw_shadow_text(x, y, width, height, str[, align, color])
[x, y, width, height, str, align]draw_text (와)과 같이.
[color]그림자의 색.
출저 : KGC
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
30 | 이벤트커맨드 스크립트 사용법 모음 [2] | Evangelista | 2009.01.27 | 937 |
29 | 액터선택지이벤트제작 간편화 스크립트 [1] | Evangelista | 2009.01.14 | 1024 |
28 | 액터선택지이벤트제작 간편화 스크립트 | Evangelista | 2009.01.14 | 294 |
27 | 현재 파티내 캐릭터를 선택지로 처리할 때 간편히 하자. | Evangelista | 2008.12.29 | 774 |
26 | [VX] 메시지 표시를 한번에 표시로 전환하기 | Evangelista | 2008.12.02 | 754 |
25 | [VX] 조건분기로 키입력의 처리 실행 | Evangelista | 2008.12.02 | 641 |
24 | [VX] 파티 선두 캐릭터 액터ID를 변수에 넣기 | Evangelista | 2008.12.02 | 576 |
23 | vx 한글이름입력 [1] | 가가상 | 2008.03.03 | 1111 |
22 | 파티 선두 캐릭터 id 변수에 넣기 | Evangelista | 2008.01.08 | 663 |
21 | 대미지 한계설정 / 한계돌파장비 [1] | Evangelista | 2008.01.07 | 293 |
20 | 물가에가면 캐릭터를 반사시켜주는 스크립트 [11] | 창조도시 | 2007.11.05 | 3649 |
19 | 물가에가면 캐릭터를 반사시켜주는 스크립트 | 창조도시 | 2007.11.05 | 745 |
18 | 창고 시스템 [3] | 창조도시 | 2007.11.05 | 1040 |
17 | 창고 시스템 | 창조도시 | 2007.11.05 | 859 |
16 | 한글이름입력기 v1.76 | 창조도시 | 2007.11.05 | 873 |
15 | 기차 파티 스크립트 [2] | 창조도시 | 2007.11.05 | 781 |
» | 그림자문자 사용하기.. 바탕색이 무슨색이건 상관없이 글자가 잘보인다!!! | 창조도시 | 2007.11.05 | 812 |
13 | 대화창에 이름&얼굴 띄우기 새로운방식. [2] | 창조도시 | 2007.11.05 | 2377 |
12 | 대화창에 이름&얼굴 띄우기 새로운방식. | 창조도시 | 2007.11.05 | 1535 |
11 | 게임도중에 글씨체를 바꿔보자. | 창조도시 | 2007.11.05 | 498 |