Project1

标题: 【讨论】关于脚步声的最优方法 [打印本页]

作者: fux2    时间: 2010-8-17 12:02
标题: 【讨论】关于脚步声的最优方法
最近研究出一种比较简便的方法可以给角色加脚步声,而且不动不会出声音

事件1
并行处理(这里判断Y>=4是因为我设置的水从Y>=4的地方开始)


事件2
与主角接触


效果感觉还不错,也比较简洁

不知道有没有更简单的脚本方法
作者: 笨鸟の先飞    时间: 2010-8-17 12:38
可不可以弄个并行处理的事件 当上被按下时***当左被按下时***
然后最后加SE等待一会(用设置移动路线)
作者: 退屈£无聊    时间: 2010-8-17 12:40
直接弄四个变量咯
1 = X
2 = Y
IF 1 = 3
2 = 4
ELSE SE PLAY
3 = 1
4 = 2
作者: fux2    时间: 2010-8-17 12:44
你们那样会站着不动的时候也出声音的
作者: 后知后觉    时间: 2010-8-17 16:34
利用地形标志简单的做了一个.
行走脚步声.rar (207.07 KB, 下载次数: 1320)
Game_Player 的 update
里面的相关内容改成这样

  1.       # 如果方向键被按下、主角就朝那个方向移动
  2.       @step_count = 0 if @step_count.nil?
  3.       if @step_count > 0
  4.         @step_count -= 1
  5.       end
  6.       case Input.dir4
  7.       when 2
  8.         @old_x = self.x
  9.         @old_y = self.y
  10.         move_down
  11.         if @old_x != self.x or @old_y != self.y
  12.           case $game_map.terrain_tag(self.x, self.y)
  13.           when 0
  14.             Audio.se_play("Audio/SE/stonerun3")
  15.           when 1
  16.             Audio.se_play("Audio/SE/step02")
  17.           when 2
  18.             if @step_count == 0
  19.               Audio.se_play("Audio/SE/inwater 2")
  20.               @step_count = 4
  21.             end
  22.           end
  23.         end
  24.       when 4
  25.         @old_x = self.x
  26.         @old_y = self.y
  27.         move_left
  28.         if @old_x != self.x or @old_y != self.y
  29.           case $game_map.terrain_tag(self.x, self.y)
  30.           when 0
  31.             Audio.se_play("Audio/SE/stonerun3")
  32.           when 1
  33.             Audio.se_play("Audio/SE/step02")
  34.           when 2
  35.             if @step_count == 0
  36.               Audio.se_play("Audio/SE/inwater 2")
  37.               @step_count = 4
  38.             end
  39.           end
  40.         end
  41.       when 6
  42.         @old_x = self.x
  43.         @old_y = self.y
  44.         move_right
  45.         if @old_x != self.x or @old_y != self.y
  46.           case $game_map.terrain_tag(self.x, self.y)
  47.           when 0
  48.             Audio.se_play("Audio/SE/stonerun3")
  49.           when 1
  50.             Audio.se_play("Audio/SE/step02")
  51.           when 2
  52.             if @step_count == 0
  53.               Audio.se_play("Audio/SE/inwater 2")
  54.               @step_count = 4
  55.             end
  56.           end
  57.         end
  58.       when 8
  59.         @old_x = self.x
  60.         @old_y = self.y
  61.         move_up
  62.         if @old_x != self.x or @old_y != self.y
  63.           case $game_map.terrain_tag(self.x, self.y)
  64.           when 0
  65.             Audio.se_play("Audio/SE/stonerun3")
  66.           when 1
  67.             Audio.se_play("Audio/SE/step02")
  68.           when 2
  69.             if @step_count == 0
  70.               Audio.se_play("Audio/SE/inwater 2")
  71.               @step_count = 4
  72.             end
  73.           end
  74.         end
  75.       end
  76.     end

复制代码

作者: 越前リョーマ    时间: 2010-8-17 21:40
$game_player.moving?
这个可以判断角色是否正在移动。
作者: swhswh    时间: 2010-8-25 22:33
标题: 走步发声的小设想(待改进)
本帖最后由 swhswh 于 2010-8-26 16:55 编辑

用并行处理的事件。
走步发声的设想,自己的,很简陋,拿出来大家看看怎么改进。
附上project
附图 Project1.rar (776.82 KB, 下载次数: 160)

*********************************
本人的废弃,有更优办法……
作者: ML4455739    时间: 2010-8-25 22:45
表示这是种巨卡的东西
不论Se大小、用什么办法补救打开依然卡一下
作者: clap_pl    时间: 2010-8-25 23:17
我给你改进下 这是从站长的一个教程里学来的
在你的公共事件里
用一个条件分歧就可以了
这个条件分歧的条件用其中的脚本写一句
$game_player.moving?
分歧的内容和你的一样 这样就不用判断键盘的上下左右了
作者: 火ZHI意志    时间: 2010-8-26 06:04

这样就可以解决了

作者: swhswh    时间: 2010-8-26 11:22
标题: 走步发声-事件版
本帖最后由 swhswh 于 2010-8-26 17:03 编辑

反复设计了好久,终于拿出来了一个能用的并行事件。
这个思路很简陋,拿出来“发布”实在有些心虚……
但是没见过别人拿出来一样的设计,所以应该算“原创”吧?
哪位高人有对这个思路的修正和完善,记得告诉我一声……
(等下啊,全方向……我再弄一下……)

------------------------以上为过去所说的话,不合时宜,可以完全忽略-----------------------------------------
下面发上来一个,不是我自己想的了,这方案……很好,竟不知道早有高人想出来了……
走步发声.rar (778.06 KB, 下载次数: 189)

当然不算什么原创了,只是拿出来让大家分享一下(高人请无视……)
假如还能改进的话当然更好……
作者: 越前リョーマ    时间: 2010-8-26 11:23
我记得按键判断有个全方向的来着……
作者: swhswh    时间: 2010-8-26 16:59
本帖最后由 swhswh 于 2010-8-26 17:03 编辑

当初不知道……哈哈……刚进6r,有些地方不熟悉……
反正这个帖子里的解法也是可以的,虽然不是自己的,
留着造福一下像我当初一样没有合适思路的其他人也未尝不可。
   
作者: 勇敢的馒头    时间: 2010-9-16 15:56
回复 后知后觉 的帖子
太赞了!!修改为8方向测试也成功,不过有个问题,就是鼠标触发没反应,求解决!~~

   
作者: 火ZHI意志    时间: 2010-9-18 20:27
我再次被完美的无视了…………………
作者: 精灵使者    时间: 2012-1-12 16:44
其实用坐标的变化比moving要好得多
可以使用坐标变换(用四个变量,前两个读取当前,后两个记忆上次)来控制发声。
至于发声的音效,可以用地形标志控制。VX的话可以用区域什么的。
作者: enghao_lim    时间: 2012-1-16 16:35
地形标志与step……==''
这样做不是省事很多了么?




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1