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

Project1

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

[已经解决] 第6-10角色战斗画面里如何显示出来?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1073
在线时间
177 小时
注册时间
2007-2-27
帖子
144
跳转到指定楼层
1
发表于 2018-6-21 11:57:12 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 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人状态

Lv5.捕梦者

梦石
0
星屑
33178
在线时间
10489 小时
注册时间
2009-3-15
帖子
4756
2
发表于 2018-6-21 13:20:59 | 只看该作者
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))

往下加..

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1073
在线时间
177 小时
注册时间
2007-2-27
帖子
144
3
 楼主| 发表于 2018-6-21 13:59:09 | 只看该作者
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号角色的攻击施法菜单显示不了需要修改哪里知道吗?
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
37799
在线时间
5404 小时
注册时间
2006-11-10
帖子
6546
4
发表于 2018-6-21 14:02:50 | 只看该作者
本帖最后由 灯笼菜刀王 于 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个, 这样不至于每回合操作和等待的时间太长让人生烦, 也能有足够的人员进行战略搭配。这个可是经验之谈哦

评分

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

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1073
在线时间
177 小时
注册时间
2007-2-27
帖子
144
5
 楼主| 发表于 2018-6-21 15:02:14 | 只看该作者
灯笼菜刀王 发表于 2018-6-21 14:02
不是显示不了,而是你的屏幕不够大~ 如果你的屏幕有1600宽,那就可以显示了

到scene battle3,  ...

把数值改小果然看到6-10号角色的攻击指令菜单了,有没有像设置角色位置那样的脚本把攻击指令菜单的放到角色旁边的
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
37799
在线时间
5404 小时
注册时间
2006-11-10
帖子
6546
6
发表于 2018-6-21 15:08:22 | 只看该作者
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号角色的指令位置
.........

按你想摆的坐标一个一个放上去就好了。
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1073
在线时间
177 小时
注册时间
2007-2-27
帖子
144
7
 楼主| 发表于 2018-6-21 15:10:11 | 只看该作者
灯笼菜刀王 发表于 2018-6-21 14:02
不是显示不了,而是你的屏幕不够大~ 如果你的屏幕有1600宽,那就可以显示了

到scene battle3,  ...

可以用上那种速度条自动战斗脚本的就可以避免一次太长的战斗命令
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1073
在线时间
177 小时
注册时间
2007-2-27
帖子
144
8
 楼主| 发表于 2018-6-21 15:54:18 | 只看该作者
本帖最后由 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

点评

要改窗口大小, 在scene battle1, 引用实例那改 @actor_command_window = Window_Command.new(160, [s1, s2, s3, s4]) 括号里的160就是宽  发表于 2018-6-21 16:06
@actor_command_window.index = 0 这行不要注释掉, 保留着, 它相当于自动把光标停留在"攻击"上,  发表于 2018-6-21 16:05
回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
1073
在线时间
177 小时
注册时间
2007-2-27
帖子
144
9
 楼主| 发表于 2018-6-21 17:22:45 | 只看该作者
本帖最后由 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:32
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
37799
在线时间
5404 小时
注册时间
2006-11-10
帖子
6546
10
发表于 2018-6-21 17:36:26 | 只看该作者
本帖最后由 灯笼菜刀王 于 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)

这里就是行距,

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

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

觉得窗口太长, 可以用二级窗口或者图片战斗指令脚本, 副作用比较小
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-4-27 12:56

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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