#==============================================================================
# 「スタンド&ラン」(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