查看: 3813|回复: 5

[已经解决] 如何把角色行走图显示到战斗画面中?

[复制链接]
梦石
0
星屑
196
在线时间
229 小时
注册时间
2011-5-19
回帖
647
发表于 2014-7-20 10:54:53 | 显示全部楼层 |阅读模式

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

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

×
如题,鄙人的战斗系统是原版的,应该不会冲突。
(PS:只要显示图片,不要动画)
求解,多谢!
休息中……
梦石
0
星屑
196
在线时间
229 小时
注册时间
2011-5-19
回帖
647
 楼主| 发表于 2014-7-20 13:25:42 | 显示全部楼层
3楼脚本测试可用。
4楼的好像有问题,加进去没有显示。

点评

……不知道。没报错,只是没有显示图片。  发表于 2014-7-20 19:00
为啥我没有问题233  发表于 2014-7-20 13:28
休息中……
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-7-20 13:11:24 | 显示全部楼层

瞎写了一段:

[pre lang="ruby" line="1"]
class Spriteset_Battle
  
  alias ca_20140720 create_actors
  def create_actors
    ca_20140720
    s = @leader_sprite = Sprite.new(@viewport1)
    actor = $game_party.leader
    cn = actor.character_name
    s.bitmap = bitmap = Cache.character(cn)
    sign = cn[/^[\!\$]./]
    if sign && sign.include?('$')
      cw = bitmap.width / 3
      ch = bitmap.height / 4
    else
      cw = bitmap.width / 12
      ch = bitmap.height / 8
    end
    s.ox = cw / 2
    s.oy = ch
    index = actor.character_index
    sx = (index % 4 * 3 + 1) * cw
    sy = (index / 4 * 4) * ch
    s.src_rect.set(sx, sy, cw, ch)
    s.x = 50
    s.y = 50
    s.z = 100
  end
  
  alias da_20140720 dispose_actors
  def dispose_actors
    da_20140720
    @leader_sprite.dispose
  end
  
end[/pre]

评分

参与人数 2星屑 +8 梦石 +1 收起 理由
VIPArcher + 1 没看出哪里有问题啊。
xggzga117 + 8

查看全部评分

回复

使用道具 举报

虚構歪曲

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

贵宾

发表于 2014-7-20 13:11:23 | 显示全部楼层
  1. module Actor_Pictures
  2.   Cache = {}
  3.   # 文件名。和角色编号相同的数组编号。
  4.   FileName = []
  5.   # 例如 FileName[1] = 'Graphics/Battlers/Actor 1'
  6.   FileName[1] = 'Graphics/Battlers/Actor 1'
  7.   def self.need_refresh? battler
  8.     Actor_Pictures::FileName[battler.id] != Actor_Pictures::Cache[battler][1]
  9.   end
  10. end
  11.   
  12. class Game_Actor
  13.   def use_sprite?
  14.     true
  15.   end
  16.   def screen_x
  17.     # 自行计算坐标
  18.     (index + 1) * (544 / 4)
  19.   end
  20.   def screen_y
  21.     # 自行计算坐标
  22.     416
  23.   end
  24.   def screen_z
  25.     100
  26.   end
  27. end

  28. class Sprite_Battler
  29.   alias tone_update_bitmap update_bitmap
  30.   def update_bitmap *args
  31.     return tone_update_bitmap *args if battler.is_a? Game_Enemy
  32.     return unless battler.is_a? Game_Actor
  33.     Actor_Pictures::Cache[battler] ||= []
  34.     if Actor_Pictures::Cache[battler][1].nil? or
  35.         Actor_Pictures.need_refresh? battler
  36.       self.bitmap = Bitmap.new Actor_Pictures::FileName[battler.id]
  37.       Actor_Pictures::Cache[battler][0] = self.bitmap
  38.       Actor_Pictures::Cache[battler][1] = Actor_Pictures::FileName[battler.id]
  39.       init_visibility
  40.     end
  41.   end
  42. end
复制代码
UI> 依然是直接写好的传统 da☆ze ~

评分

参与人数 2星屑 +8 梦石 +1 收起 理由
taroxd + 1 认可答案
xggzga117 + 8 糖

查看全部评分

回复

使用道具 举报

梦石
0
星屑
196
在线时间
229 小时
注册时间
2011-5-19
回帖
647
 楼主| 发表于 2014-7-20 12:25:25 | 显示全部楼层
实例可以随便给个,位置什么的鄙人自己改。
休息中……
回复

使用道具 举报

…あたしは天

梦石
0
星屑
2308
在线时间
4033 小时
注册时间
2010-10-4
回帖
10548

开拓者贵宾

发表于 2014-7-20 10:59:53 | 显示全部楼层
本帖最后由 taroxd 于 2014-7-20 11:02 编辑

修改 Spriteset_Battle#create_actors 方法

由于你的提问过于模糊(比如没有说显示在哪个位置等等),我无法给出实例(其实就是懒

具体的实现交给楼下的大触吧。

P.S. 或者你可以使用 SideView 战斗系统

评分

参与人数 1星屑 +4 收起 理由
xggzga117 + 4 糖

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

在本版发帖返回顶部