기타

캐릭터 소개화면

by 좀비사냥꾼 posted Mar 29, 2009
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
스크립트에서 수정을 해주셔야합니다.

캐릭터의 키, 몸무게, 나이등을 스크립트에 적어주세요.

아래에 있는 커스터마이즈에서 하실수있습니다.

그리고 캐릭터 그래픽을 반드시 넣어주셔야합니다.

Graphic/face 폴더안에 그래픽을 넣어주세요

그래픽의 이름도 스크립트에서 제대로 수정하셔야합니다.

















====================================================== # ■ VX-RGSS2-1 캐릭터소개화면 [Ver.1.0.0] by Claimh #------------------------------------------------------------------------------ #  ·스테이터스 화면시에 어떠한 버튼을 누르는 것으로,
#    각 캐릭터의 상세 설명 화면을 표시할 수 있습니다.
#   ·버튼은 HELP의 Input를 보고, 확인해 주세요.
#   ·표준에서는, 캐릭터의 연령, 출신지, 신장, 체중,
#    그 외의 문장 설명을 대응하고 있습니다.
#   ·이외에 추가하고 싶은 경우는, 개조해 주세요. #============================================================================== module Chara_Review #---------------------------------------------------------------------------- # 설정START #---------------------------------------------------------------------------- # 캐릭터 소개로 전환하는 버튼(디폴트:C) CHENGE_KEY = Input::C #-------------------------------------------------------------------------- # ● 연령(액터 ID의 순서에 넣어 가 주세요)
#-------------------------------------------------------------------------- CHARA_AGE = { # アクターID => "나이" 1 => "??", 2 => "??", 3 => "??", 4 => "??", 5 => "??", 6 => "??", 7 => "??", 8 => "??" } #-------------------------------------------------------------------------- # ● 출신지(사는곳) #-------------------------------------------------------------------------- CHARA_FROM = { # アクターID => "출신지" 1 => "??", 2 => "??", 3 => "??", 4 => "??", 5 => "??", 6 => "??", 7 => "??", 8 => "??" } #-------------------------------------------------------------------------- # ●신장(키) #-------------------------------------------------------------------------- CHARA_H = { # アクターID => "신장" 1 => "??", 2 => "??", 3 => "??", 4 => "??", 5 => "??", 6 => "??", 7 => "??", 8 => "??" } #-------------------------------------------------------------------------- # ● 체중(몸무게) #-------------------------------------------------------------------------- CHARA_W = { # アクターID => "체중" 1 => "??", 2 => "??", 3 => "??", 4 => "??", 5 => "??", 6 => "??", 7 => "??", 8 => "??" } #-------------------------------------------------------------------------- # ● 그 외 문장(n를 넣으면 개행합니다)
#-------------------------------------------------------------------------- CHARA_INFO = { # アクターID:1 1 => "???", # アクターID:2 2 => "???", # アクターID:3 3 => "???", # アクターID:4 4 => "???", # アクターID:5 5 => "???", # アクターID:6 6 => "???", # アクターID:7 7 => "???", # アクターID:8 8 => "???" } #-------------------------------------------------------------------------- # ● 버스트 업 화상 (소개화면에 표시할 캐릭터 그래픽) #-------------------------------------------------------------------------- # 얼굴 그래픽이 아니고, 버스트 업 화상을 사용한다
BSTUP = true # 버스트 업 화상의 파일명(Graphics/Face) BSTUP_FILE = { # 액터ID:1 1 => "Actor1-1", # 액터ID:2 2 => "Actor2-2", # 액터ID:3 3 => "Actor3-3", # 액터ID:4 4 => "Actor4-4" } #---------------------------------------------------------------------------- # カスタマイズEND #---------------------------------------------------------------------------- end #============================================================================== # ■ Window_Charactor #------------------------------------------------------------------------------ #  キャラ紹介画面 #============================================================================== class Window_Charactor < Window_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 # actor : アクター #-------------------------------------------------------------------------- def initialize(actor) super(0, 0, 544, 416) self.contents = Bitmap.new(width - 32, height - 32) refresh(actor) end #-------------------------------------------------------------------------- # ● リフレッシュ #-------------------------------------------------------------------------- def refresh(actor) self.contents.clear return if actor.nil? if Chara_Review::BSTUP refresh_bstup(actor) # バストアップの描画 else refresh_face(actor) # 顔グラフィックの描画 end end #-------------------------------------------------------------------------- # ● リフレッシュ(BSTUP) #-------------------------------------------------------------------------- def refresh_bstup(actor) draw_face_picture(Chara_Review::BSTUP_FILE[actor.id], 0, 0) self.contents.font.color = system_color self.contents.draw_text(280, 30, 80, WLH, "Name:") self.contents.draw_text(280, 60, 80, WLH, "Age:") self.contents.draw_text(280, 90, 80, WLH, "From:") self.contents.draw_text(280, 120, 80, WLH, "Height:") self.contents.draw_text(280, 150, 80, WLH, "Weight:") self.contents.font.color = normal_color draw_actor_name(actor, 380, 30) self.contents.draw_text(380, 60, 80, WLH, Chara_Review::CHARA_AGE[actor.id]) self.contents.draw_text(380, 90, 180, WLH, Chara_Review::CHARA_FROM[actor.id]) self.contents.draw_text(380, 120 , 200, WLH, Chara_Review::CHARA_H[actor.id]) self.contents.draw_text(380, 150, 250, WLH, Chara_Review::CHARA_W[actor.id]) draw_enter_text(20, 300, 500, WLH, Chara_Review::CHARA_INFO[actor.id]) end #-------------------------------------------------------------------------- # ● リフレッシュ(FACE) #-------------------------------------------------------------------------- def refresh_face(actor) draw_actor_face(actor, 8, 32) self.contents.font.color = system_color self.contents.draw_text(200, 30, 80, WLH, "Name:") self.contents.draw_text(200, 60, 80, WLH, "Age:") self.contents.draw_text(200, 90, 80, WLH, "From:") self.contents.draw_text(200, 120, 80, WLH, "Height:") self.contents.draw_text(200, 150, 80, WLH, "Weight:") self.contents.font.color = normal_color draw_actor_name(actor, 300, 30) self.contents.draw_text(300, 60, 80, WLH, Chara_Review::CHARA_AGE[actor.id]) self.contents.draw_text(300, 90, 180, WLH, Chara_Review::CHARA_FROM[actor.id]) self.contents.draw_text(300, 120 , 200, WLH, Chara_Review::CHARA_H[actor.id]) self.contents.draw_text(300, 150, 250, WLH, Chara_Review::CHARA_W[actor.id]) draw_enter_text(20, 200, 500, WLH, Chara_Review::CHARA_INFO[actor.id]) end end class Window_Base < Window #-------------------------------------------------------------------------- # ● 改行を認識して表示 #-------------------------------------------------------------------------- def draw_enter_text(x, y, width, height, text) info_box = text.split(/n/) for i in 0...info_box.size self.contents.draw_text( x, y+i*WLH, width, WLH, info_box[i]) break if (y+i*WLH) > (self.height-WLH) end end #-------------------------------------------------------------------------- # ● ピクチャ表示(Graphics/Face) #-------------------------------------------------------------------------- def draw_face_picture(file_name, x, y) bitmap = Cache.face(file_name) cw = bitmap.width ch = bitmap.height src_rect = Rect.new(0, 0, cw, ch) self.contents.blt(x, y, bitmap, src_rect) end end #============================================================================== # ■ Scene_Charactor #------------------------------------------------------------------------------ #  キャラ紹介画面の処理を行うクラスです。 #============================================================================== class Scene_Charactor < Scene_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 # actor_index : アクターインデックス #-------------------------------------------------------------------------- def initialize(actor_index = 0) @actor_index = actor_index end #-------------------------------------------------------------------------- # ● 開始処理 #-------------------------------------------------------------------------- def start super create_menu_background @actor = $game_party.members[@actor_index] @status_window = Window_Charactor.new(@actor) end #-------------------------------------------------------------------------- # ● 終了処理 #-------------------------------------------------------------------------- def terminate super dispose_menu_background @status_window.dispose end #-------------------------------------------------------------------------- # ● 元の画面へ戻る #-------------------------------------------------------------------------- def return_scene $scene = Scene_Status.new(@actor_index) end #-------------------------------------------------------------------------- # ● 次のアクターの画面に切り替え #-------------------------------------------------------------------------- def next_actor @actor_index += 1 @actor_index %= $game_party.members.size $scene = Scene_Charactor.new(@actor_index) end #-------------------------------------------------------------------------- # ● 前のアクターの画面に切り替え #-------------------------------------------------------------------------- def prev_actor @actor_index += $game_party.members.size - 1 @actor_index %= $game_party.members.size $scene = Scene_Charactor.new(@actor_index) end #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- def update update_menu_background @status_window.update if Input.trigger?(Input::B) Sound.play_cancel return_scene elsif Input.trigger?(Input::R) Sound.play_cursor next_actor elsif Input.trigger?(Input::L) Sound.play_cursor prev_actor end super end end #============================================================================== # ■ Scene_Status #============================================================================== class Scene_Status #-------------------------------------------------------------------------- # ● フレーム更新 #-------------------------------------------------------------------------- alias update_chara update def update if Input.trigger?(Chara_Review::CHENGE_KEY) Sound.play_decision $scene = Scene_Charactor.new(@actor_index) end update_chara end end