Project1

标题: 第6-10角色战斗画面里如何显示出来? [打印本页]

作者: fhxy    时间: 2018-6-21 11:57
标题: 第6-10角色战斗画面里如何显示出来?
本帖最后由 fhxy 于 2018-6-21 12:05 编辑

问题1:第6-10角色在战斗画面里如何显示出来?
问题2:第6-10角色在战斗画面的使用特技物品的指令图如何显示出来?
请高手指教一下。
修改Game_Actor类的内容第6-10角色在战斗画面也显示不出来。
  #--------------------------------------------------------------------------
  # ● 取得战斗画面的 X 坐标
  #--------------------------------------------------------------------------
  def screen_x
    case self.index
    when 0
      return 500
    when 1
      return 500
    when 2
      return 500
    when 3
      return 500
    when 4
      return 500
    when 5
      return 430
    when 6
      return 430
    when 7
      return 430
    when 8
      return 430
    when 9
      return 430

    else
      return 640
    end
  end
  #--------------------------------------------------------------------------
  # ● 取得战斗画面的 Y 坐标
  #--------------------------------------------------------------------------
  def screen_y
    case self.index
    when 0
      return 130
    when 1
      return 200
    when 2
      return 270
    when 3
      return 340
    when 4
      return 410
    when 5
      return 130
    when 6
      return 200
    when 7
      return 270
    when 8
      return 340
    when 9
      return 410
    else
      return 1000
    end
  end
  #--------------------------------------------------------------------------
  # ● 取得战斗画面的 Z 坐标
  #--------------------------------------------------------------------------
  def screen_z
    # 返回计算后的队伍 Z 坐标的排列顺序
    case self.index
    when 0
      return 10
    when 1
      return 9
    when 2
      return 8
    when 3
      return 7
    when 4
      return 5
    when 5
      return 4
    when 6
      return 3
    when 7
      return 2
    when 8
      return 1
    when 9
      return 0
    else
      return 0
    end
  end
end。

截图如下:

附上我改的菜单图,可以显示10人状态

作者: soulsaga    时间: 2018-6-21 13:20
Spriteset_Battle脚本里的
    @actor_sprites.push(Sprite_Battler.new(@viewport2))
    @actor_sprites.push(Sprite_Battler.new(@viewport2))
    @actor_sprites.push(Sprite_Battler.new(@viewport2))
    @actor_sprites.push(Sprite_Battler.new(@viewport2))

往下加..
作者: fhxy    时间: 2018-6-21 13:59
soulsaga 发表于 2018-6-21 13:20
Spriteset_Battle脚本里的
    @actor_sprites.push(Sprite_Battler.new(@viewport2))
    @actor_sprites. ...

谢谢你的提示弄出来了,除了添加你说的,还要添加这些才能显示,居然被我蒙对了。
    @actor_sprites[7].battler = $game_party.actors[7]
    @actor_sprites[8].battler = $game_party.actors[8]
    @actor_sprites[9].battler = $game_party.actors[9]

另外第6-10号角色的攻击施法菜单显示不了需要修改哪里知道吗?
作者: 灯笼菜刀王    时间: 2018-6-21 14:02
本帖最后由 灯笼菜刀王 于 2018-6-21 14:51 编辑
fhxy 发表于 2018-6-21 13:59
谢谢你的提示弄出来了,除了添加你说的,还要添加这些才能显示,居然被我蒙对了。
    @actor_sprites[7] ...


不是显示不了,而是你的屏幕不够大~ 如果你的屏幕有1600宽,那就可以显示了

到scene battle3, 找到 # ● 设置角色指令窗口  改@actor_command_window 的x坐标就可以了

另外,我要说的是,其实参战角色太多并不是好事~ 因为这样一场杂兵战都要耗费很多的时间去操作菜单, 直接性的延长了每一场战斗的无用时间, 很容易让人厌烦。

所以如果想做超额人员的战斗系统, 最好有简化菜单的方式或者自动战斗之类的。个人喜欢的方式是"战斗中即时替换人员", 也就是FF10的战斗模式, 能随时换人上场, 虽然场上只有3个人,但是却有7个人战斗的体验。


咱目前在做SRPG, 一场战斗要上50个人都可以, 无需考虑场地问题=3=, 而且咱的角色也有350个之多~ 不过在多次体验和探讨后, 觉得6-8人的程度会比较合适, 敌人也不宜超过10个, 这样不至于每回合操作和等待的时间太长让人生烦, 也能有足够的人员进行战略搭配。这个可是经验之谈哦


作者: fhxy    时间: 2018-6-21 15:02
灯笼菜刀王 发表于 2018-6-21 14:02
不是显示不了,而是你的屏幕不够大~ 如果你的屏幕有1600宽,那就可以显示了

到scene battle3,  ...

把数值改小果然看到6-10号角色的攻击指令菜单了,有没有像设置角色位置那样的脚本把攻击指令菜单的放到角色旁边的
作者: 灯笼菜刀王    时间: 2018-6-21 15:08
fhxy 发表于 2018-6-21 15:02
把数值改小果然看到6-10号角色的攻击指令菜单了,有没有像设置角色位置那样的脚本把攻击指令菜单的放到角 ...


自己动手。

在改坐标的那个位置,像你摆角色坐标那样,用@actor_index 分歧
case @actor_index
when 0 #1号角色的指令位置
@actor_command_window.x = XXX
@actor_command_window.y = xxx
when 1 #2号角色的指令位置
.........

按你想摆的坐标一个一个放上去就好了。
作者: fhxy    时间: 2018-6-21 15:10
灯笼菜刀王 发表于 2018-6-21 14:02
不是显示不了,而是你的屏幕不够大~ 如果你的屏幕有1600宽,那就可以显示了

到scene battle3,  ...

可以用上那种速度条自动战斗脚本的就可以避免一次太长的战斗命令
作者: fhxy    时间: 2018-6-21 15:54
本帖最后由 fhxy 于 2018-6-21 16:00 编辑
灯笼菜刀王 发表于 2018-6-21 15:08
自己动手。

在改坐标的那个位置,像你摆角色坐标那样,用@actor_index 分歧


按照你的思路还真实现了你说的效果,
随便指点一下角色指令窗口在哪里修改?我想把指令窗口修改小一点。
另外你看看我修改的脚本有没有问题。
  #--------------------------------------------------------------------------
  # ● 设置角色指令窗口
  #--------------------------------------------------------------------------
  def phase3_setup_command_window
    # 同伴指令窗口无效化
    @party_command_window.active = false
    @party_command_window.visible = false
    # 角色指令窗口无效化
    @actor_command_window.active = true
    @actor_command_window.visible = true
    # 设置角色指令窗口的位置
   # @actor_command_window.x = @actor_index * 16
#  def @actor_command_window.x
    case @actor_index
#    case @actor_command_window.index
    when 0
      @actor_command_window.x = 500
      @actor_command_window.y = 130
    when 1
      @actor_command_window.x = 500
      @actor_command_window.y = 200
    when 2
      @actor_command_window.x = 500
      @actor_command_window.y = 270
    when 3
      @actor_command_window.x = 500
      @actor_command_window.y = 340
    when 4
      @actor_command_window.x = 500
      @actor_command_window.y = 410
    when 5
      @actor_command_window.x = 430
      @actor_command_window.y = 130
    when 6
      @actor_command_window.x = 430
      @actor_command_window.y = 200
    when 7
      @actor_command_window.x = 430
      @actor_command_window.y = 270
    when 8
      @actor_command_window.x = 430
      @actor_command_window.y = 340
    when 9
      @actor_command_window.x = 430
      @actor_command_window.y = 410
    # 设置索引为 0  我把这个屏蔽了不知道该不该屏蔽
#    @actor_command_window.index = 0
    end
    return
作者: fhxy    时间: 2018-6-21 17:22
本帖最后由 fhxy 于 2018-6-21 17:24 编辑
灯笼菜刀王 发表于 2018-6-21 15:08
自己动手。

在改坐标的那个位置,像你摆角色坐标那样,用@actor_index 分歧


按你的方法修改了宽度,有一点就是能不能修改每条指令的行距?我添加了三条指令指令菜单显得太长了想缩短些就像我上面战斗图的状态菜单一样缩小七条指令的行距。
脚本修改如下:

    # 生成角色命令窗口
    s1 = $data_system.words.attack
    s2 = $data_system.words.skill
    s3 = $data_system.words.guard
    s4 = $data_system.words.item
    s5 = "保护"
    s6 = "召唤"
    s7 = "捕捉"
    @actor_command_window = Window_Command.new(70,[s1, s2, s3, s4, s5, s6, s7])
    @actor_command_window.y = 160
    @actor_command_window.back_opacity = 160
    @actor_command_window.active = false
    @actor_command_window.visible = false


作者: 灯笼菜刀王    时间: 2018-6-21 17:36
本帖最后由 灯笼菜刀王 于 2018-6-21 17:37 编辑
fhxy 发表于 2018-6-21 17:22
按你的方法修改了宽度,有一点就是能不能修改每条指令的行距?我添加了三条指令指令菜单显得太长了想缩短 ...


想改的话,到Window_Command 里

def draw_item(index, color) 里面的

rect = Rect.new(4, 32 * index, self.contents.width - 8, 32)

这里就是行距,

不过,改行距容易, 改其他就不容易了,比如光标的位置和移动方式,  

如果没能力处理这些, 那还是别动它为好

觉得窗口太长, 可以用二级窗口或者图片战斗指令脚本, 副作用比较小
作者: fhxy    时间: 2018-6-21 17:51
灯笼菜刀王 发表于 2018-6-21 17:36
想改的话,到Window_Command 里

def draw_item(index, color) 里面的

光标行距能改不?
作者: fhxy    时间: 2018-6-21 18:08
本帖最后由 fhxy 于 2018-6-21 18:11 编辑
fhxy 发表于 2018-6-21 17:22
按你的方法修改了宽度,有一点就是能不能修改每条指令的行距?我添加了三条指令指令菜单显得太长了想缩短 ...


听你这么一说涉及的光标行距修改问题太多啦,简直是重做一遍菜单修改了,两个方法都说一下吧。
我看有没有必要改,我看关重七的梦幻西游3是用的战斗图标不过也涉及到修改光标行距
作者: fhxy    时间: 2018-6-21 18:14
灯笼菜刀王 发表于 2018-6-21 17:36
想改的话,到Window_Command 里

def draw_item(index, color) 里面的

听你这么一说涉及的光标行距修改问题太多啦,简直是重做一遍菜单修改了,两个方法都说一下吧。
我看有没有必要改,我看关重七的梦幻西游3是用的战斗图标不过也涉及到修改光标行距
作者: fhxy    时间: 2018-6-21 18:48
灯笼菜刀王 发表于 2018-6-21 17:36
想改的话,到Window_Command 里

def draw_item(index, color) 里面的

看了一下你说的修改行距,影响几个菜单的行距,标题画面,退出游戏画面、主菜单的选择指令,和战斗指令菜单,对半对应的光标也得改了
作者: soulsaga    时间: 2018-6-21 19:05
fhxy 发表于 2018-6-21 18:48
看了一下你说的修改行距,影响几个菜单的行距,标题画面,退出游戏画面、主菜单的选择指令,和战斗指令菜 ...

可以判断当前场景就不怕影响到其他了..
作者: fhxy    时间: 2018-6-21 19:59
soulsaga 发表于 2018-6-21 19:05
可以判断当前场景就不怕影响到其他了..

可以放弃改虽然有点影响,但不是很大,只是让我觉得不每行之间太松散。




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