查看: 2523|回复: 35

[已经解决] 求幫助同伴跟隨系統的改造

[复制链接]
梦石
0
星屑
6830
在线时间
1251 小时
注册时间
2011-12-18
回帖
1127
发表于 2017-5-4 21:56:59 | 显示全部楼层 |阅读模式

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

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

×
本帖最后由 sdgn 于 2017-5-5 14:19 编辑

請問同伴跟隨系統...
如何改造到同伴跟主腳行走圖的位置 重疊 或者 距離靠近到能改造的極限?
跟隨者的顯示優先全最好是在主腳行走圖之上
望有人能相助~

拜託了~

OTZ
梦石
0
星屑
55
在线时间
20 小时
注册时间
2008-3-7
回帖
10
发表于 2017-5-5 12:15:04 | 显示全部楼层
呃,为什么要这样做啊?

点评

我有我的需求  发表于 2017-5-5 14:18
回复

使用道具 举报

梦石
0
星屑
6375
在线时间
1473 小时
注册时间
2015-7-25
回帖
609

极短25参与开拓者

发表于 2017-5-5 21:14:45 | 显示全部楼层
本帖最后由 魔法丶小肉包 于 2017-5-6 12:50 编辑

有没有bug未知......慎用
脚本和事件需要一起设置
脚本作为插件脚本使用,事件如图
脚本:
[pre lang="ruby"]class Game_Followers
  def update
    if gathering?
      move
      @gathering = false
    end
    each {|follower| follower.update }
  end
end[/pre]
事件:
QQ图片20170505211415.png
事件中的脚本为:$game_player.followers.gather


编辑内容:
1.上面那张图的事件可以不需要使用了
2.再次缩短了同伴与主角的距离(这次应该是极限距离了吧...)
[pre lang="ruby"]class Game_Followers
  def update
      move
      @gathering = false
      each {|follower| follower.update }
  end
end[/pre]

点评

朝向问题看底下新开的那楼  发表于 2017-5-6 13:31
不知道如何讓同伴的面向方向跟主腳同步  发表于 2017-5-6 13:24
目前原地改變方向還是有問題... 我找看看哪裡能改  发表于 2017-5-6 13:24
非常感謝~  发表于 2017-5-6 13:22
已在此楼编辑  发表于 2017-5-6 12:52

评分

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

查看全部评分

笨肉包的游戏讨论群932812135 (实时更新) 喜欢的话欢迎加入~
目前的坑
??? #像素风OC游戏 准备中 短篇-约5小时
花城梦之心 #像素风OC游戏 系统开发+素材绘制中
【不可思议的迷宫】幽灵契约外传:歌莉娅 v0.4 游戏文件已更新
同时更新中~ (沉迷摸鱼中~更新速度较慢请见谅w)
这是属于笨肉包一个人的旅行~(这只肉包又在摸鱼!
旅途的最终目标~ ???(保密~
回复

使用道具 举报

梦石
0
星屑
6830
在线时间
1251 小时
注册时间
2011-12-18
回帖
1127
 楼主| 发表于 2017-5-5 21:47:32 | 显示全部楼层
本帖最后由 sdgn 于 2017-5-5 21:50 编辑

測試後確定可以用~
其實是想要實現類是GTA那樣模組化的搭乘效果...
二來可以做出類似紙娃娃系統~

另外例如要讓行走圖有防護罩之類的效果就不用準備額外版本

点评

不過主要是針對工具的搭乘 或附加特效... 有一點點的偏移是還可以...  发表于 2017-5-6 12:23
那倒是  发表于 2017-5-6 12:22
这个想法确实是有意思,但是我运行了一下之后发现,移动的时候是会产生偏移的,也就是按照你的思路,人物走的时候,衣服会不和人物同步吧。...  发表于 2017-5-6 12:01
回复

使用道具 举报

梦石
0
星屑
6375
在线时间
1473 小时
注册时间
2015-7-25
回帖
609

极短25参与开拓者

发表于 2017-5-5 22:01:55 | 显示全部楼层
跟随的同伴显示优先度大于主角
[pre lang="ruby"]class Spriteset_Map
  def create_characters
    @character_sprites = []
    $game_map.events.values.each do |event|
      @character_sprites.push(Sprite_Character.new(@viewport1, event))
    end
    $game_map.vehicles.each do |vehicle|
      @character_sprites.push(Sprite_Character.new(@viewport1, vehicle))
    end
    $game_player.followers.reverse_each do |follower|
      @character_sprites.push(Sprite_Character.new(@viewport2, follower))
    end
    @character_sprites.push(Sprite_Character.new(@viewport1, $game_player))
    @map_id = $game_map.map_id
  end
end[/pre]

点评

Spriteset_Map类中create_viewports方法里@viewport2.z = 50 可以改成@viewport2.z = $game_variables[1],这样viewport2的z值就由1号变量控制了  发表于 2017-5-5 23:35
不好意思忽然想到~ 請問@viewport候面的數字要怎麼寫才變成用全域變數(量)取代? 我想用特定的變量的代換做即時切換优先度  发表于 2017-5-5 22:59
好的~ 非常感謝~  发表于 2017-5-5 22:29
11行的@viewport2,可以改成@viewport1或@viewport3,默认脚本中是@viewport1,这里已经改过了  发表于 2017-5-5 22:28
請問這段的改哪一行可以變更优先度? 感謝  发表于 2017-5-5 22:21

评分

参与人数 1星屑 +15 收起 理由
sdgn + 15

查看全部评分

笨肉包的游戏讨论群932812135 (实时更新) 喜欢的话欢迎加入~
目前的坑
??? #像素风OC游戏 准备中 短篇-约5小时
花城梦之心 #像素风OC游戏 系统开发+素材绘制中
【不可思议的迷宫】幽灵契约外传:歌莉娅 v0.4 游戏文件已更新
同时更新中~ (沉迷摸鱼中~更新速度较慢请见谅w)
这是属于笨肉包一个人的旅行~(这只肉包又在摸鱼!
旅途的最终目标~ ???(保密~
回复

使用道具 举报

梦石
0
星屑
6830
在线时间
1251 小时
注册时间
2011-12-18
回帖
1127
 楼主| 发表于 2017-5-5 22:28:13 | 显示全部楼层
抱歉 OTZ ...
順便問一下原始行走圖的操作腳本能不能改造成讀取跟某變數一樣數字的型走圖?
例如:WALK[變量].png
[]內的值由我根據需要自由帶入 來變化行走圖(事件設定比較方便)
回复

使用道具 举报

梦石
0
星屑
6375
在线时间
1473 小时
注册时间
2015-7-25
回帖
609

极短25参与开拓者

发表于 2017-5-5 23:18:18 | 显示全部楼层
本帖最后由 魔法丶小肉包 于 2017-5-6 11:31 编辑

自由定义主角行走时和停下时的行走图
[pre lang="ruby"]class Game_Interpreter
  def move_p(name_moving,name,a=0,b=0)
    if $game_player.moving?
    character_name = name_moving
    character_index = $game_variables[a]
    $game_player.set_graphic(character_name, character_index)
    else
    character_name = name
    character_index = $game_variables
    $game_player.set_graphic(character_name, character_index)
    end
  end
end[/pre]
在事件中同样设置并行处理,然后输入事件脚本
move_p(name_moving,name,a,b)
括号内为4个参数,前两个必填,后两个选填,
name_moving:移动的时候显示的行走图文件名
name:停下时显示的行走图文件名
a:移动时显示的行走图文件名的索引所代入的变量ID,不填则为0
b:停下时显示的行走图文件名的索引所代入的变量ID,不填则为0

举例:move_p("evil","Actor1")

自由定义跟随的同伴的行走图
[pre lang="ruby"]class Game_Interpreter
  def move_p(id,name_moving,name,a=0,b=0)
    if $game_player.moving?
    character_name = name_moving
    character_index = $game_variables[a]
    $game_player.followers[id].set_graphic(character_name, character_index)
    else
    character_name = name
    character_index = $game_variables
    $game_player.followers[id].set_graphic(character_name, character_index)
    end
  end
end[/pre]
事件中脚本:move_p(id,name_moving,name,a=0,b=0)
加了一个参数,其他参数不变
id:跟随同伴的id(注意:跟随同伴id是从0开始的,比如跟在主角后面的第一人,id是0)
举例:move_p(0,"evil","Actor1")

点评

非常感謝~ 我研究看看  发表于 2017-5-6 13:22
求收徒弟  发表于 2017-5-6 11:48
感恩 OTZ  发表于 2017-5-6 11:48
已在此楼编辑,楼主看一下吧  发表于 2017-5-6 11:33
有點問題... 小生是想改同伴的行走圖... 旦不知道該如何宣告.... OTZ 感謝您  发表于 2017-5-5 23:55
笨肉包的游戏讨论群932812135 (实时更新) 喜欢的话欢迎加入~
目前的坑
??? #像素风OC游戏 准备中 短篇-约5小时
花城梦之心 #像素风OC游戏 系统开发+素材绘制中
【不可思议的迷宫】幽灵契约外传:歌莉娅 v0.4 游戏文件已更新
同时更新中~ (沉迷摸鱼中~更新速度较慢请见谅w)
这是属于笨肉包一个人的旅行~(这只肉包又在摸鱼!
旅途的最终目标~ ???(保密~
回复 1 0

使用道具 举报

梦石
0
星屑
6375
在线时间
1473 小时
注册时间
2015-7-25
回帖
609

极短25参与开拓者

发表于 2017-5-6 13:28:58 | 显示全部楼层
跟随同伴的朝向始终与主角保持一致
[pre lang="ruby"]class Game_Follower < Game_Character
  def chase_preceding_character
    unless moving?
      sx = distance_x_from(@preceding_character.x)
      sy = distance_y_from(@preceding_character.y)
      if sx != 0 && sy != 0
        move_diagonal(sx > 0 ? 4 : 6, sy > 0 ? 8 : 2)
      elsif sx != 0
        move_straight(sx > 0 ? 4 : 6)
      elsif sy != 0
        move_straight(sy > 0 ? 8 : 2)
      end
    end
    set_direction($game_player.direction)
  end
end[/pre]

点评

非常感謝... 原來是要這樣改 (筆記  发表于 2017-5-6 14:31

评分

参与人数 3星屑 +60 梦石 +1 收起 理由
RaidenInfinity + 1 认可答案
sdgn + 15 认可答案
七重 + 45 優しいすぎるわ

查看全部评分

笨肉包的游戏讨论群932812135 (实时更新) 喜欢的话欢迎加入~
目前的坑
??? #像素风OC游戏 准备中 短篇-约5小时
花城梦之心 #像素风OC游戏 系统开发+素材绘制中
【不可思议的迷宫】幽灵契约外传:歌莉娅 v0.4 游戏文件已更新
同时更新中~ (沉迷摸鱼中~更新速度较慢请见谅w)
这是属于笨肉包一个人的旅行~(这只肉包又在摸鱼!
旅途的最终目标~ ???(保密~
回复 1 0

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部