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

Project1

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

[已经解决] 用事件或者脚本控制地图中 待机 移动 跑动(高速跑动)

[复制链接]

Lv5.捕梦者

梦石
0
星屑
34877
在线时间
4148 小时
注册时间
2007-12-15
帖子
9983
跳转到指定楼层
1
发表于 2016-9-23 12:43:03 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
5星屑
本帖最后由 89444640 于 2016-10-15 11:30 编辑

更新一下测试工程,阿尔西斯是控制事件,在重力脚本存在于脚本存在于脚本库时,用事件控制显示角色停止时动画都不能。删掉即可正常显示角色停止时动画。




高速跑动这个可以先不考虑

首先MeowSnow同学提出了
Input.press?(Input::LEFT) or Input.press?(Input::RIGHT) or Input.press?(Input::UP) or Input.press?(Input::DOWN)
来控制角色待机与行走的状态。
试了一下效果不错。
但是仅限于只有待机与走动两种状态

如果需要有三种甚至更多的移动状态,那就无法用条件分歧判断了。
目前想法是,在一些地图上 有 待机 走动 慢速跑动 高速跑动四种类状态,因为不是act,暂不考虑走与跑的过渡、高速跑动这些不好实现的问题。
如何实现最低 三种状态 待机 走动 跑动

跑动是按空格键加速的脚本。
RUBY 代码复制
  1. #==============================================================================
  2. # ■ Game_Player
  3. #==============================================================================
  4. class Game_Player
  5. #--------------------------------------------------------------------------
  6. # ● フレーム更新
  7. #--------------------------------------------------------------------------
  8. alias xrxs25_update update
  9. def update
  10.    # 移動中、イベント実行中、移動ルート強制中、
  11.    # メッセージウィンドウ表示中のいずれでもない場合
  12.    unless moving? or $game_system.map_interpreter.running? or
  13.           @move_route_forcing or $game_temp.message_window_showing
  14.      if Input.press?(Input::C)
  15.        # 速度の変更
  16.        @move_speed = 5
  17.      else
  18.        @move_speed = 4
  19.      end
  20.    end
  21.    # 呼び戻す
  22.    xrxs25_update
  23. end
  24. end




无法用并行处理现实的,是重力ACT脚本的地图,
需要在ACT脚本用的地图中,可以实现待机 走 跑三种状态。因为只有一个角色,可以用脚本来控制角色图像。
这个脚本多少有点干扰正常rpg剧情,必须手动剧情结束后删,这个我没辙。

普通地图角色经常更改,因此需要在普通地图中,以单独使用事件,来控制待机、走、跑三种状态。
1当角色不移动时,判断角色当前朝向,更改成相应方向待机。
2当角色慢速移动时,更改为行走动作
3当角色按空格键加速时,更改为小幅度跑动。

重力脚本
见10楼 原来的发错了orz
RUBY 代码复制
  1.  

压缩文件中是ACT脚本中用到的素材。暂防一下注册就能下走的人,我手找,万一有漏的--b,请叫我补一下。
行走,跑动,待机三个图像都在里面。待机未调整完成,暂且用这个。


请各位帮忙,非常感谢。

最佳答案

查看完整内容

# A ボタンが押された場合 if Input.press?(Input::A) and not $ud_ok @twojump = 1 if @twojump == 0 and down1(((@x * 128 + @revise_x) / 128.0).round, ((@y * 128 + @revise_y) / 128.0).round, 5, true) if (not @apassed) and @twojump 0 @character_name = @twojump == 1 ? "主角 ACT用跳跃" : "主角ACT11两段跳" @jumpnow = [@jumpnow, JUMPMAX].min if not up1(((@x * 1 ...

Lv5.捕梦者

梦石
0
星屑
33213
在线时间
10497 小时
注册时间
2009-3-15
帖子
4756
2
发表于 2016-9-23 12:43:04 | 只看该作者
RUBY 代码复制
  1. # A ボタンが押された場合
  2.     if Input.press?(Input::A) and not $ud_ok
  3.       @twojump = 1 if @twojump == 0 and down1(((@x * 128 + @revise_x) / 128.0).round,
  4.       ((@y * 128 + @revise_y) / 128.0).round, 5, true)
  5.       if (not @apassed) and @twojump <= $airjump
  6.         @apassed = true
  7.         @jumpnow = JUMPMAX
  8.         se_name = @twojump == 1 ? "ACT 跳02.wav" : "ACT 跳01.wav"
  9.         Audio.se_play("Audio/SE/#{se_name}")
  10.         @twojump += 1
  11.       else
  12.         @jumpnow += 3        
  13.       end
  14.     else
  15.       @apassed = false
  16.     end
  17. #----------------------自由落体--------------------------------
  18. if not $ud_ok
  19.       @jumpnow -= 10
  20.       if @jumpnow < 0
  21.         $game_variables[1] = @jumpnow
  22.         #$game_switches[1] = true
  23.         @character_name = "主角ACT12下落" if $game_switches[1] != true
  24.         @jumpnow = [@jumpnow, -JUMPMAX].max
  25.         if not down1(((@x * 128 + @revise_x) / 128.0).round,
  26.           ((@y * 128 + @revise_y) / 128.0).round, -@jumpnow, true)
  27.           @jumpnow = 0
  28.           @twojump = 0
  29.           @character_name = "主角 行走 长袖" if $game_switches[1] != true
  30.           #$game_switches[1] = false
  31.         end
  32.       elsif @jumpnow > 0
  33.         @character_name = @twojump == 1 ? "主角 ACT用跳跃" : "主角ACT11两段跳"
  34.         @jumpnow = [@jumpnow, JUMPMAX].min
  35.         if not up1(((@x * 128 + @revise_x) / 128.0).round,
  36.           ((@y * 128 + @revise_y) / 128.0).round, @jumpnow, true)
  37.           @jumpnow = 0
  38.         end
  39.       end
  40.     end

点评

家里机子没最新的备份,只好等明天去单位再试了。  发表于 2016-10-14 08:27
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33213
在线时间
10497 小时
注册时间
2009-3-15
帖子
4756
3
发表于 2016-9-23 13:16:02 | 只看该作者
本帖最后由 soulsaga 于 2016-9-23 13:18 编辑

要事件能控制3种行走类型?

点评

语言描述是。当键上下左右按下时候判断变量为1更改图像为行走,当按着上下左右的同时按着空格 变量为2 更改为跑动。不按键或者按键弹起为待机  发表于 2016-9-23 14:01
按键操作变量再判断变量更改?  发表于 2016-9-23 13:59
嗯,有办法吗?把状态化为变量再判断是否有按键?  发表于 2016-9-23 13:34
回复

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

4
发表于 2016-9-23 13:21:48 | 只看该作者
XAS里面有跑步,你可以看看
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
34877
在线时间
4148 小时
注册时间
2007-12-15
帖子
9983
5
 楼主| 发表于 2016-9-23 13:42:24 | 只看该作者
yang1zhi 发表于 2016-9-23 13:21
XAS里面有跑步,你可以看看

半天找到个xp的还过过期了- -b继续找……

点评

谢谢~我先看下,不会用时候多orz  发表于 2016-9-23 13:48
http://pan.baidu.com/s/1kVdMe39  发表于 2016-9-23 13:46
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
34877
在线时间
4148 小时
注册时间
2007-12-15
帖子
9983
6
 楼主| 发表于 2016-9-23 13:59:08 | 只看该作者
89444640 发表于 2016-9-23 13:42
半天找到个xp的还过过期了- -b继续找……

看到了关于冲刺图像的描述
#--------------------------------------------------------------------------
# 主角冲刺方位图像?
#--------------------------------------------------------------------------
  def hero_dash_quarter_graphic?(actor)
    if moving?
    RPG::Cache.character(actor.character_name.to_s + "_dash_quarter", actor.character_hue) rescue return false
    end
  end
  
#--------------------------------------------------------------------------
# 主角方位图像?
#--------------------------------------------------------------------------
  def hero_quarter_graphic?(actor)
    RPG::Cache.character(actor.character_name.to_s + "_quarter", actor.character_hue) rescue return false
  end

#--------------------------------------------------------------------------
# 主角更换图像?
#--------------------------------------------------------------------------
  def hero_charge_graphic?(actor)
   nome = Database_Bullet::SELF_MOTIONS[@wp_tool_id]  
   RPG::Cache.character(actor.character_name + nome.to_s + "_Charge", actor.character_hue) rescue return false
  end
但是完全不会弄orz
好像还需要判断角色在地面而不在空中冲刺时才更改为跑动图像。
脚本盲没辙啊--b
回复

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1256
在线时间
6552 小时
注册时间
2010-12-30
帖子
8949
7
发表于 2016-9-23 14:02:51 | 只看该作者
本帖最后由 MeowSnow 于 2016-9-23 14:04 编辑

_(:з」∠)_可以继续用纯事件完成啊~把条件分歧套两次就好了,
如果按下方向键
    如果按下空格键——速度=5,切换跑步行走图
    不满足按下空格键——速度=4,切换走路行走图
不满足按下方向键——切换待机行走图
   

点评

那个,没说全,是在重力脚本中不行。  发表于 2016-9-23 14:11
_(:з」∠)_那把空格键设定为第一个分歧?  发表于 2016-9-23 14:06
试了不行--b  发表于 2016-9-23 14:04
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
34877
在线时间
4148 小时
注册时间
2007-12-15
帖子
9983
8
 楼主| 发表于 2016-9-23 14:14:40 | 只看该作者
本帖最后由 89444640 于 2016-9-23 14:19 编辑
MeowSnow 发表于 2016-9-23 14:02
_(:з」∠)_可以继续用纯事件完成啊~把条件分歧套两次就好了,
如果按下方向键
    如果按下空格键——速度 ...


普通脚本中套成这样就能用了。


虽然会有个,按着空格和方向的时候,碰到障碍物就静止在跑步的某一个动作上orz
但是开了重力脚本的地图我就 - -b

点评

思路才对..  发表于 2016-9-23 14:26
那换个概念..例如按一下空白键切换成跑步速度和图像再按一下空白键就还原速度和行走图像如何?  发表于 2016-9-23 14:26
不能这样做是因为 和重力脚本有冲突?  发表于 2016-9-23 14:24
_(:з」∠)_原来如此,那就不知道怎么搞了……  发表于 2016-9-23 14:16
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33213
在线时间
10497 小时
注册时间
2009-3-15
帖子
4756
9
发表于 2016-10-8 14:41:24 | 只看该作者
本帖最后由 soulsaga 于 2016-10-8 15:41 编辑

这么久了还没有大神帮忙解決么..

话说很难理解呢..在重力脚地图用上面的事件会出现什么情況?
或且说在重力脚本地图对话时角色图像是怎样的情況?
是速度改变无效还是图像改变无效?

  1. $ud_ok = true #上下失效
  2. $airjump = 1  #空中连跳
  3. #用插入脚本暂时来消除重力系统bug,就是这个 $ud_ok = true/false
  4. #==============================================================================
  5. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  6. #==============================================================================

  7. # ————————————————————————————————————
  8. # 全方向ドット移動 Ver ε
  9. # 配布元・サポートURL
  10. # [url]http://members.jcom.home.ne.jp/cogwheel/[/url]

  11. #==============================================================================
  12. # ■ Game_Player
  13. #------------------------------------------------------------------------------
  14. #  プレイヤーを扱うクラスです。イベントの起動判定や、マップのスクロールなどの
  15. # 機能を持っています。このクラスのインスタンスは $game_player で参照されます。
  16. #==============================================================================
  17. class Game_Player < Game_Character
  18.   #--------------------------------------------------------------------------
  19.   # ● 定数
  20.   #--------------------------------------------------------------------------
  21.   UP    = 48                  # 上方向の余裕(0 < UP < 63)
  22.   DOWN  = -5                  # 这个是垂直方向微调 下方向の余裕(0 < DOWN <63)
  23.   SIDE  = 32                  # 左右方向の余裕(0 < SIDE <63)
  24.   SLANT = false               # 移動ルートの斜め移動時、速度修正
  25.   JUMPMAX = 100              
  26.   JUMPADD = 10              
  27.   #--------------------------------------------------------------------------
  28.   # ● 公開インスタンス変数
  29.   #--------------------------------------------------------------------------
  30.   attr_reader   :event                    # イベント時移動速度
  31.   attr_accessor :move_speed               # 移動速度
  32.   #--------------------------------------------------------------------------
  33.   # ● フレーム更新
  34.   #--------------------------------------------------------------------------
  35.   alias :update_original :update
  36.   def update
  37.     @data_count -= 1 if @data_count and @data_count > 0
  38.     # @walk:歩行速度 @dash:ダッシュ時移動速度
  39.     # @event:イベント時移動速度(0の時は、イベント時に速度変更をしない)
  40.     [url=home.php?mod=space&uid=348285]@walk[/url]  = 4
  41.     [url=home.php?mod=space&uid=81012]@Dash[/url]  = 5
  42.     @event = 4
  43.     @event = 5 if $game_variables[88] == 1 #88号变量为判断是否事件移动速度是否跑动
  44.     #==============================================================================
  45. # 本脚本来自[url]www.66RPG.com[/url],使用和转载请保留此信息
  46. #==============================================================================
复制代码

点评

42、43改为@walk=4 @Dash=5  发表于 2016-10-11 08:54
不懂啊,我完全是脚本盲  发表于 2016-10-10 15:21
意思是座标在一定以上(16像素以上)事件並不会执行?  发表于 2016-10-10 14:54
我在日站看到这个脚本的说明座標が一定以上(16ドット以上)ずれた状態ではイベントは開始しません 不知有没关系?  发表于 2016-10-10 14:53
直接事件并行处理无效,不能切换跑步动作与待机动作。  发表于 2016-10-9 10:55
回复

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33213
在线时间
10497 小时
注册时间
2009-3-15
帖子
4756
10
发表于 2016-10-10 20:16:44 | 只看该作者
本帖最后由 soulsaga 于 2016-10-10 20:53 编辑

不知为何我测试没问题呢..
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-5-3 16:05

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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