查看: 2708|回复: 2

[已经过期] 求一个脚步声范例

[复制链接]
梦石
0
星屑
50
在线时间
24 小时
注册时间
2015-12-23
回帖
13
发表于 2016-1-29 15:45:45 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
    要一个简单的脚步声范例,不要事件的,谢谢!  
   在论坛里的都不会用,所以直接求范例啦!

脚本白痴

梦石
0
星屑
422
在线时间
903 小时
注册时间
2007-7-9
回帖
1259
发表于 2016-1-29 16:56:10 | 显示全部楼层
事件的简单易用 为什么一定要脚本呢

正统向RPG-大雄的高井山奇谈
https://rpg.blue/thread-369758-1-1.html
哆啦A梦RTP风格素材
https://rpg.blue/forum.php?mod=viewthread&tid=394608
回复

使用道具 举报

虚構歪曲

梦石
0
星屑
354
在线时间
1196 小时
注册时间
2010-12-18
回帖
3842

贵宾

发表于 2016-2-3 11:51:56 | 显示全部楼层
[pre lang="ruby"]# 足音 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[/pre]

评分

参与人数 1星屑 +66 收起 理由
hys111111 + 66 认可答案

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部