#============================================================================== # 「スタンド&ラン」(ACE) ver.1.2 # 製作者:奈々(なな) # へぷたなすくろーる http://heptanas.mamagoto.com/ # # ◇使用規約 # 使用される場合はスクリプト作成者として「奈々」を明記して下さい。 # このスクリプトを改変したり、改変したものを配布するなどは自由ですが # その場合も元のスクリプトの作成者として名前は載せて下さい。 # その他、詳しい利用規約はブログを参照して下さい。 # #------------------------------------------------------------------------------ # # 待機中の画像はファイル名の末尾に「_stand」と # 移動中の画像はファイル名の末尾に「_run」と付けて下さい。 # 「xxxxxx_stand」と「xxxxxx_run」の画像が対応します。 # 必ずセットで用意して下さい。 # # キャラクターの画像にはstandの画像を指定します。 # stand画像を指定したキャラクター(プレイヤーやイベント)は # 移動していないときはstand画像でゆっくりと足踏みします。 # 移動しているときはrun画像に切り替わります。 # standとrun以外の画像を指定したキャラクターは従来通りの動きをします。 # #============================================================================== #============================================================================== # ■ Game_CharacterBase #------------------------------------------------------------------------------ # キャラクターを扱う基本のクラスです。全てのキャラクターに共通する、座標やグ # ラフィックなどの基本的な情報を保持します。 #============================================================================== class Game_CharacterBase #-------------------------------------------------------------------------- # ● 公開インスタンス変数 #-------------------------------------------------------------------------- attr_accessor :step_anime # 足踏みアニメ #-------------------------------------------------------------------------- # ● グラフィックの変更 # character_name : 新しい歩行グラフィック ファイル名 # character_index : 新しい歩行グラフィック インデックス #-------------------------------------------------------------------------- def set_graphic(character_name, character_index) @tile_id = 0 @character_name = character_name @character_index = character_index @original_pattern = 1 if @character_name[-6, 6] == "_stand" @step_anime = true end end #-------------------------------------------------------------------------- # ● 歩行/足踏みアニメの更新 #-------------------------------------------------------------------------- def update_animation update_anime_count temp = real_move_speed temp = 1 if @character_name[-6, 6] == "_stand" if @anime_count > 18 - temp * 2 update_anime_pattern @anime_count = 0 end end end #============================================================================== # ■ Sprite_Character #------------------------------------------------------------------------------ # キャラクター表示用のスプライトです。Game_Character クラスのインスタンスを # 監視し、スプライトの状態を自動的に変化させます。 #============================================================================== class Sprite_Character < Sprite_Base #-------------------------------------------------------------------------- # ● オブジェクト初期化 # character : Game_Character #-------------------------------------------------------------------------- def initialize(viewport, character = nil) super(viewport) @character = character @balloon_duration = 0 @stand_delay = 0 @run_delay = 0 if @character if @character.character_name[-6, 6] == "_stand" @character.step_anime = true end end update end #-------------------------------------------------------------------------- # ● 転送元ビットマップの更新 #-------------------------------------------------------------------------- def update_bitmap if graphic_changed? @tile_id = @character.tile_id @character_name = @character.character_name @character_index = @character.character_index if @tile_id > 0 set_tile_bitmap else set_character_bitmap end else stand_and_run end end #-------------------------------------------------------------------------- # ● stand&runの判定と処理 #-------------------------------------------------------------------------- def stand_and_run if @character.moving? == true && @character_name[-6, 6] == "_stand" @run_delay += 1 if @run_delay >= 3 @run_delay = 0 @character_name[-6, 6] = "_run" @character.step_anime = false set_character_bitmap end elsif @character.moving? == false && @character_name[-4, 4] == "_run" @stand_delay += 1 if @stand_delay >= 15 @stand_delay = 0 @character_name[-4, 4] = "_stand" @character.step_anime = true set_character_bitmap end else @stand_delay = 0 @run_delay = 0 end end end