设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 2389|回复: 2
打印 上一主题 下一主题

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

[复制链接]

Lv1.梦旅人

梦石
0
星屑
50
在线时间
24 小时
注册时间
2015-12-23
帖子
22
跳转到指定楼层
1
发表于 2016-1-29 15:45:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

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

Lv2.观梦者 (版主)

脚本白痴

梦石
0
星屑
412
在线时间
902 小时
注册时间
2007-7-9
帖子
1403
2
发表于 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
回复 支持 反对

使用道具 举报

Lv2.观梦者

虚構歪曲

梦石
0
星屑
339
在线时间
1197 小时
注册时间
2010-12-18
帖子
3928

贵宾

3
发表于 2016-2-3 11:51:56 | 只看该作者
RUBY 代码复制
  1. # 足音 Ver1.00
  2. # 配布元・サポートURL
  3. # [url]http://members.jcom.home.ne.jp/cogwheel/[/url]
  4.  
  5. #==============================================================================
  6. # ■ Game_Character (分割定義 2)
  7. #------------------------------------------------------------------------------
  8. #  キャラクターを扱うクラスです。このクラスは Game_Player クラスと Game_Event
  9. # クラスのスーパークラスとして使用されます。
  10. #==============================================================================
  11.  
  12. class Game_Character
  13.   #--------------------------------------------------------------------------
  14.   # ● 足音
  15.   #--------------------------------------------------------------------------
  16.   def step_sound
  17.     if self == $game_player
  18.       vol = 75
  19.     else
  20.       vol = [75 - Math.sqrt(($game_player.real_x - self.real_x) ** 2 +
  21.             ($game_player.real_y - self.real_y) ** 2) / 64, 0].max
  22.     end
  23.     if @character_name[/\[(\d+)\]/]
  24.       pattern1 = ($1 - 1) / 4
  25.       pattern2 = ($1 - 1) * 3 / 4
  26.     else
  27.       pattern1 = 1
  28.       pattern2 = 3
  29.     end
  30.     if @pattern == pattern1
  31.       case terrain_tag
  32.       when 0 # 床
  33.         Audio.se_play("Audio/SE/016-Jump02", vol, 120)
  34.       end
  35.     elsif @pattern == pattern2
  36.       case terrain_tag
  37.       when 0 # 床
  38.         Audio.se_play("Audio/SE/016-Jump02", vol, 100)
  39.       end
  40.     end
  41.   end
  42.   #--------------------------------------------------------------------------
  43.   # ● フレーム更新
  44.   #--------------------------------------------------------------------------
  45.   def update
  46.     # ジャンプ中、移動中、停止中で分岐
  47.     if jumping?
  48.       update_jump
  49.     elsif moving?
  50.       update_move
  51.     else
  52.       update_stop
  53.     end
  54.     # アニメカウントが最大値を超えた場合
  55.     # ※最大値は、基本値 18 から移動速度 * 1 を引いた値
  56.     # ファイル名に[n]が入っている場合、通常の(n-1)/4の速度でパターン更新
  57.     if @character_name[/\[(\d+)\]/]
  58.       @anime_count = 20 if @anime_count > 0 and @pattern == @original_pattern
  59.       if @anime_count * ($1.to_i - 1) / 4 > 18 - @move_speed * 2
  60.         # 停止時アニメが OFF かつ 停止中の場合
  61.         if not @step_anime and @stop_count > 0
  62.           # パターンをオリジナルに戻す
  63.           @pattern = @original_pattern
  64.         # 停止時アニメが ON または 移動中の場合
  65.         else
  66.           # パターンを更新
  67.           @pattern = @pattern % ($1.to_i - 1) + 1
  68.           # 足音を鳴らす
  69.           if self.is_a?(Game_Player) or (@name[/\\[Ff]/] and
  70.               @stop_count == 0 and @locked == false and @character_name != "")
  71.             step_sound
  72.           end
  73.         end
  74.         # アニメカウントをクリア
  75.         @anime_count = 0
  76.       end
  77.     else
  78.     # 通常キャラのパターン更新処理(デフォルトの処理をコピペしただけ)
  79.       if @anime_count > 18 - @move_speed * 2
  80.         # 停止時アニメが OFF かつ 停止中の場合
  81.         if not @step_anime and @stop_count > 0
  82.           # パターンをオリジナルに戻す
  83.           @pattern = @original_pattern
  84.         # 停止時アニメが ON または 移動中の場合
  85.         else
  86.           # パターンを更新
  87.           @pattern = (@pattern + 1) % 4
  88.           if self.is_a?(Game_Player) or (@name[/\\[Ff]/] and
  89.               @stop_count == 0 and @locked == false and @character_name != "")
  90.             step_sound
  91.           end
  92.         end
  93.         # アニメカウントをクリア
  94.         @anime_count = 0
  95.       end
  96.     end
  97.     # ウェイト中の場合
  98.     if @wait_count > 0
  99.       # ウェイトカウントを減らす
  100.       @wait_count -= 1
  101.       return
  102.     end
  103.     # 移動ルート強制中の場合
  104.     if @move_route_forcing
  105.       # カスタム移動
  106.       move_type_custom
  107.       return
  108.     end
  109.     # イベント実行待機中またはロック状態の場合
  110.     if @starting or lock?
  111.       # 自律移動はしない
  112.       return
  113.     end
  114.     # 停止カウントが一定の値 (移動頻度から算出) を超えた場合
  115.     if @stop_count > (40 - @move_frequency * 2) * (6 - @move_frequency)
  116.       # 移動タイプで分岐
  117.       case @move_type
  118.       when 1  # ランダム
  119.         move_type_random
  120.       when 2  # 近づく
  121.         move_type_toward_player
  122.       when 3  # カスタム
  123.         move_type_custom
  124.       end
  125.     end
  126.   end
  127. end
  128.  
  129. #==============================================================================
  130. # ■ Game_Event
  131. #------------------------------------------------------------------------------
  132. #  イベントを扱うクラスです。条件判定によるイベントページ切り替えや、並列処理
  133. # イベント実行などの機能を持っており、Game_Map クラスの内部で使用されます。
  134. #==============================================================================
  135.  
  136. class Game_Event < Game_Character
  137.   #--------------------------------------------------------------------------
  138.   # ● 公開インスタンス変数
  139.   #--------------------------------------------------------------------------
  140.   attr_reader   :name                     # 名前
  141.   #--------------------------------------------------------------------------
  142.   # ● オブジェクト初期化
  143.   #     map_id : マップ ID
  144.   #     event  : イベント (RPG::Event)
  145.   #--------------------------------------------------------------------------
  146.   alias :initialize_spirit :initialize
  147.   def initialize(map_id, event)
  148.     @name = event.name
  149.     initialize_spirit(map_id, event)
  150.   end
  151. end

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-9-22 17:17

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表