Project1
标题:
问一个关于脚步声的问题。
[打印本页]
作者:
伤墨
时间:
2009-7-25 12:29
标题:
问一个关于脚步声的问题。
我用的使这个脚步声的脚本 但是想让他的频率变慢 就是走两步响一下脚步声 下面这个是走一步响一下 要如何修改呢?
# 足音 Ver1.00
# 配布元・サポートURL
# http://members.jcom.home.ne.jp/cogwheel/
#==============================================================================
# ■ Game_Character (分割定義 2)
#------------------------------------------------------------------------------
# キャラクターを扱うクラスです。このクラスは Game_Player クラスと Game_Event
# クラスのスーパークラスとして使用されます。
#==============================================================================
class Game_Character
#--------------------------------------------------------------------------
# ● 足音
#--------------------------------------------------------------------------
def step_sound
if self == $game_player
vol = 75
else
vol = [75 - Math.sqrt(($game_player.real_x - self.real_x) ** 2 +
($game_player.real_y - self.real_y) ** 2) / 64, 0].max
end
if @character_name[/\[(\d+)\]/]
pattern1 = ($1 - 1) / 4
pattern2 = ($1 - 1) * 3 / 4
else
pattern1 = 1
pattern2 = 3
end
if @pattern == pattern1
case terrain_tag
when 0 # 床
Audio.se_play("Audio/SE/016-Jump02", vol, 120)
end
elsif @pattern == pattern2
case terrain_tag
when 0 # 床
Audio.se_play("Audio/SE/016-Jump02", vol, 100)
end
end
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
# ジャンプ中、移動中、停止中で分岐
if jumping?
update_jump
elsif moving?
update_move
else
update_stop
end
# アニメカウントが最大値を超えた場合
# ※最大値は、基本値 18 から移動速度 * 1 を引いた値
# ファイル名に[n]が入っている場合、通常の(n-1)/4の速度でパターン更新
if @character_name[/\[(\d+)\]/]
@anime_count = 20 if @anime_count > 0 and @pattern == @original_pattern
if @anime_count * ($1.to_i - 1) / 4 > 18 - @move_speed * 2
# 停止時アニメが OFF かつ 停止中の場合
if not @step_anime and @stop_count > 0
# パターンをオリジナルに戻す
@pattern = @original_pattern
# 停止時アニメが ON または 移動中の場合
else
# パターンを更新
@pattern = @pattern % ($1.to_i - 1) + 1
# 足音を鳴らす
if self.is_a?(Game_Player) or (@name[/\\[Ff]/] and
@stop_count == 0 and @locked == false and @character_name != "")
step_sound
end
end
# アニメカウントをクリア
@anime_count = 0
end
else
# 通常キャラのパターン更新処理(デフォルトの処理をコピペしただけ)
if @anime_count > 18 - @move_speed * 2
# 停止時アニメが OFF かつ 停止中の場合
if not @step_anime and @stop_count > 0
# パターンをオリジナルに戻す
@pattern = @original_pattern
# 停止時アニメが ON または 移動中の場合
else
# パターンを更新
@pattern = (@pattern + 1) % 4
if self.is_a?(Game_Player) or (@name[/\\[Ff]/] and
@stop_count == 0 and @locked == false and @character_name != "")
step_sound
end
end
# アニメカウントをクリア
@anime_count = 0
end
end
# ウェイト中の場合
if @wait_count > 0
# ウェイトカウントを減らす
@wait_count -= 1
return
end
# 移動ルート強制中の場合
if @move_route_forcing
# カスタム移動
move_type_custom
return
end
# イベント実行待機中またはロック状態の場合
if @starting or lock?
# 自律移動はしない
return
end
# 停止カウントが一定の値 (移動頻度から算出) を超えた場合
if @stop_count > (40 - @move_frequency * 2) * (6 - @move_frequency)
# 移動タイプで分岐
case @move_type
when 1 # ランダム
move_type_random
when 2 # 近づく
move_type_toward_player
when 3 # カスタム
move_type_custom
end
end
end
end
#==============================================================================
# ■ Game_Event
#------------------------------------------------------------------------------
# イベントを扱うクラスです。条件判定によるイベントページ切り替えや、並列処理
# イベント実行などの機能を持っており、Game_Map クラスの内部で使用されます。
#==============================================================================
class Game_Event < Game_Character
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_reader :name # 名前
#--------------------------------------------------------------------------
# ● オブジェクト初期化
# map_id : マップ ID
# event : イベント (RPG::Event)
#--------------------------------------------------------------------------
alias :initialize_spirit :initialize
def initialize(map_id, event)
@name = event.name
initialize_spirit(map_id, event)
end
end
复制代码
作者:
IamI
时间:
2009-7-25 12:52
这个试试看,随手写的,不保证质量……
# 足音 Ver1.00
# 配布元・サポートURL
# http://members.jcom.home.ne.jp/cogwheel/
#==============================================================================
# ■ Game_Character (分割定義 2)
#------------------------------------------------------------------------------
# キャラクターを扱うクラスです。このクラスは Game_Player クラスと Game_Event
# クラスのスーパークラスとして使用されます。
#==============================================================================
class Game_Character
#--------------------------------------------------------------------------
# ● 足音
#--------------------------------------------------------------------------
def step_sound
@count_orz = 0 if @count_orz == nil
@count_orz += 1
@count_orz = 0 if @count_orz == 2
return if @count_orz == 0
if self == $game_player
vol = 75
else
vol = [75 - Math.sqrt(($game_player.real_x - self.real_x) ** 2 +
($game_player.real_y - self.real_y) ** 2) / 64, 0].max
end
if @character_name[/\[(\d+)\]/]
pattern1 = ($1 - 1) / 4
pattern2 = ($1 - 1) * 3 / 4
else
pattern1 = 1
pattern2 = 3
end
if @pattern == pattern1
case terrain_tag
when 0 # 床
Audio.se_play("Audio/SE/016-Jump02", vol, 120)
end
elsif @pattern == pattern2
case terrain_tag
when 0 # 床
Audio.se_play("Audio/SE/016-Jump02", vol, 100)
end
end
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
# ジャンプ中、移動中、停止中で分岐
if jumping?
update_jump
elsif moving?
update_move
else
update_stop
end
# アニメカウントが最大値を超えた場合
# ※最大値は、基本値 18 から移動速度 * 1 を引いた値
# ファイル名に[n]が入っている場合、通常の(n-1)/4の速度でパターン更新
if @character_name[/\[(\d+)\]/]
@anime_count = 20 if @anime_count > 0 and @pattern == @original_pattern
if @anime_count * ($1.to_i - 1) / 4 > 18 - @move_speed * 2
# 停止時アニメが OFF かつ 停止中の場合
if not @step_anime and @stop_count > 0
# パターンをオリジナルに戻す
@pattern = @original_pattern
# 停止時アニメが ON または 移動中の場合
else
# パターンを更新
@pattern = @pattern % ($1.to_i - 1) + 1
# 足音を鳴らす
if self.is_a?(Game_Player) or (@name[/\\[Ff]/] and
@stop_count == 0 and @locked == false and @character_name != "")
step_sound
end
end
# アニメカウントをクリア
@anime_count = 0
end
else
# 通常キャラのパターン更新処理(デフォルトの処理をコピペしただけ)
if @anime_count > 18 - @move_speed * 2
# 停止時アニメが OFF かつ 停止中の場合
if not @step_anime and @stop_count > 0
# パターンをオリジナルに戻す
@pattern = @original_pattern
# 停止時アニメが ON または 移動中の場合
else
# パターンを更新
@pattern = (@pattern + 1) % 4
if self.is_a?(Game_Player) or (@name[/\\[Ff]/] and
@stop_count == 0 and @locked == false and @character_name != "")
step_sound
end
end
# アニメカウントをクリア
@anime_count = 0
end
end
# ウェイト中の場合
if @wait_count > 0
# ウェイトカウントを減らす
@wait_count -= 1
return
end
# 移動ルート強制中の場合
if @move_route_forcing
# カスタム移動
move_type_custom
return
end
# イベント実行待機中またはロック状態の場合
if @starting or lock?
# 自律移動はしない
return
end
# 停止カウントが一定の値 (移動頻度から算出) を超えた場合
if @stop_count > (40 - @move_frequency * 2) * (6 - @move_frequency)
# 移動タイプで分岐
case @move_type
when 1 # ランダム
move_type_random
when 2 # 近づく
move_type_toward_player
when 3 # カスタム
move_type_custom
end
end
end
end
#==============================================================================
# ■ Game_Event
#------------------------------------------------------------------------------
# イベントを扱うクラスです。条件判定によるイベントページ切り替えや、並列処理
# イベント実行などの機能を持っており、Game_Map クラスの内部で使用されます。
#==============================================================================
class Game_Event < Game_Character
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_reader :name # 名前
#--------------------------------------------------------------------------
# ● オブジェクト初期化
# map_id : マップ ID
# event : イベント (RPG::Event)
#--------------------------------------------------------------------------
alias :initialize_spirit :initialize
def initialize(map_id, event)
@name = event.name
initialize_spirit(map_id, event)
end
end
复制代码
作者:
fofolee
时间:
2009-7-25 19:45
最简单的方法,在声效上改动,把你的SE时间加长,即一半时间是脚步声,一班时间空白,即无声,等同于两步一声
作者:
伤墨
时间:
2009-7-26 07:56
都不行呢。
不过还是谢谢各位朋友了。
作者:
宇文暮
时间:
2009-7-29 15:21
提示:
作者被禁止或删除 内容自动屏蔽
作者:
玄月
时间:
2009-7-29 15:42
收工 - - II你看看,很简单的东西 = =
# 足音 Ver1.00
# 配布元・サポートURL
# http://members.jcom.home.ne.jp/cogwheel/
#==============================================================================
# ■ Game_Character (分割定義 2)
#------------------------------------------------------------------------------
# キャラクターを扱うクラスです。このクラスは Game_Player クラスと Game_Event
# クラスのスーパークラスとして使用されます。
#==============================================================================
class Game_Character
#--------------------------------------------------------------------------
# ● 足音
#--------------------------------------------------------------------------
def step_sound
@count_orz = 0 if @count_orz == nil
@count_orz += 1
@count_orz = 0 if @count_orz == 2
return if @count_orz == 0
if self == $game_player
vol = 75
else
vol = [75 - Math.sqrt(($game_player.real_x - self.real_x) ** 2 +
($game_player.real_y - self.real_y) ** 2) / 64, 0].max
end
if @character_name[/\[(\d+)\]/]
pattern1 = ($1 - 1) / 4
pattern2 = ($1 - 1) * 3 / 4
else
pattern1 = 1
pattern2 = 3
end
if @pattern == pattern1
case terrain_tag
when 0 # 床
Audio.se_play("Audio/SE/016-Jump02", vol, 120)
end
elsif @pattern == pattern2
case terrain_tag
when 0 # 床
#Audio.se_play("Audio/SE/016-Jump02", vol, 100)
end
end
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
# ジャンプ中、移動中、停止中で分岐
if jumping?
update_jump
elsif moving?
update_move
else
update_stop
end
# アニメカウントが最大値を超えた場合
# ※最大値は、基本値 18 から移動速度 * 1 を引いた値
# ファイル名に[n]が入っている場合、通常の(n-1)/4の速度でパターン更新
if @character_name[/\[(\d+)\]/]
@anime_count = 20 if @anime_count > 0 and @pattern == @original_pattern
if @anime_count * ($1.to_i - 1) / 4 > 18 - @move_speed * 2
# 停止時アニメが OFF かつ 停止中の場合
if not @step_anime and @stop_count > 0
# パターンをオリジナルに戻す
@pattern = @original_pattern
# 停止時アニメが ON または 移動中の場合
else
# パターンを更新
@pattern = @pattern % ($1.to_i - 1) + 1
# 足音を鳴らす
if self.is_a?(Game_Player) or (@name[/\\[Ff]/] and
@stop_count == 0 and @locked == false and @character_name != "")
step_sound
end
end
# アニメカウントをクリア
@anime_count = 0
end
else
# 通常キャラのパターン更新処理(デフォルトの処理をコピペしただけ)
if @anime_count > 18 - @move_speed * 2
# 停止時アニメが OFF かつ 停止中の場合
if not @step_anime and @stop_count > 0
# パターンをオリジナルに戻す
@pattern = @original_pattern
# 停止時アニメが ON または 移動中の場合
else
# パターンを更新
@pattern = (@pattern + 1) % 4
if self.is_a?(Game_Player) or (@name[/\\[Ff]/] and
@stop_count == 0 and @locked == false and @character_name != "")
step_sound
end
end
# アニメカウントをクリア
@anime_count = 0
end
end
# ウェイト中の場合
if @wait_count > 0
# ウェイトカウントを減らす
@wait_count -= 1
return
end
# 移動ルート強制中の場合
if @move_route_forcing
# カスタム移動
move_type_custom
return
end
# イベント実行待機中またはロック状態の場合
if @starting or lock?
# 自律移動はしない
return
end
# 停止カウントが一定の値 (移動頻度から算出) を超えた場合
if @stop_count > (40 - @move_frequency * 2) * (6 - @move_frequency)
# 移動タイプで分岐
case @move_type
when 1 # ランダム
move_type_random
when 2 # 近づく
move_type_toward_player
when 3 # カスタム
move_type_custom
end
end
end
end
#==============================================================================
# ■ Game_Event
#------------------------------------------------------------------------------
# イベントを扱うクラスです。条件判定によるイベントページ切り替えや、並列処理
# イベント実行などの機能を持っており、Game_Map クラスの内部で使用されます。
#==============================================================================
class Game_Event < Game_Character
#--------------------------------------------------------------------------
# ● 公開インスタンス変数
#--------------------------------------------------------------------------
attr_reader :name # 名前
#--------------------------------------------------------------------------
# ● オブジェクト初期化
# map_id : マップ ID
# event : イベント (RPG::Event)
#--------------------------------------------------------------------------
alias :initialize_spirit :initialize
def initialize(map_id, event)
@name = event.name
initialize_spirit(map_id, event)
end
end
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1