Project1

标题: 战斗角色的位置 [打印本页]

作者: 迅雷進    时间: 2008-9-3 05:00
标题: 战斗角色的位置
这是菜鸟横版战斗:
如何做到就是在战斗里面如果只有一个角色的话,
战斗行走图的Y置是会自动移到战斗画面的中间去。



请问该怎么修改呢? {/gg} {/gg}
请前辈们指教~
(p/s:小弟的游戏不是只有主角一个而已…) [LINE]1,#dddddd[/LINE]版务信息:本贴由楼主自主结贴~
作者: dbshy    时间: 2008-9-3 05:06
菜鸟横版的话,我没有脚本

不过你可以找到GAME_ACTOR def screen_y

判断一下 IF $game_party.actors.SIZE == 1 THEN
           RETURN NUMBER
         END
作者: 迅雷進    时间: 2008-9-3 05:24
以下引用dbshy于2008-9-2 21:06:40的发言:

菜鸟横版的话,我没有脚本

不过你可以找到GAME_ACTOR def screen_y

判断一下 IF $game_party.actors.SIZE == 1 THEN
          RETURN NUMBER
        END

研究过了,
但是就是不懂得要怎么修改… {/ll} {/ll}
作者: dna_7086    时间: 2008-9-3 05:26
提示: 作者被禁止或删除 内容自动屏蔽
作者: 迅雷進    时间: 2008-9-3 07:23
脚本太长了…
贴不上来… {/ll} {/ll}
作者: 步兵中尉    时间: 2008-9-3 07:46
    不知道你用了哪些额外脚本,但是可以在“Game_Actor”中直接固定每个角色的位置。
作者: 殲滅天使·玲    时间: 2008-9-3 07:58
以下引用步兵中尉于2008-9-2 23:46:01的发言:

   不知道你用了哪些额外脚本,但是可以在“Game_Actor”中直接固定每个角色的位置。

NO...
菜鸟行走图战斗中 已经重新定义了 X Y坐标..

常数设置在开始时
  1.   #--------------------------------------------------------------------------
  2.   # ● 战斗画面的位置
  3.   #--------------------------------------------------------------------------
  4.   PARTY_X = 420   # 队伍 X 位置
  5.   PARTY_Y = 230   # 队伍 Y 位置
  6.   FORMATION_X = 30 # 各个角色之间的间隔 X
  7.   FORMATION_Y = 30  # 各个角色之间的间隔 Y
复制代码



具体的地方是
  1.   #--------------------------------------------------------------------------
  2.   # ● バトル画面 X 座標の取得(カメラ補正無し)
  3.   #--------------------------------------------------------------------------
  4.   def true_x
  5.     return PARTY_X + position * FORMATION_X + @ox
  6.   end
  7.   #--------------------------------------------------------------------------
  8.   # ● バトル画面 Y 座標の取得(カメラ補正無し)
  9.   #--------------------------------------------------------------------------
  10.   def true_y
  11.     # パーティ内の並び順から Y 座標を計算して返す
  12.     if self.index != nil
  13.       y = position2 * FORMATION_Y + PARTY_Y + @oy - @height / 2
  14.       return y
  15.     else
  16.       return 0
  17.     end
  18.   end
  19.   #--------------------------------------------------------------------------
  20.   # ● バトル画面 X 座標の取得
  21.   #--------------------------------------------------------------------------
  22.   def screen_x(true_x = self.true_x)
  23.     return 320 + (true_x - 320) * @real_zoom + @real_x
  24.   end
  25.   #--------------------------------------------------------------------------
  26.   # ● バトル画面 Y 座標の取得
  27.   #--------------------------------------------------------------------------
  28.   def screen_y(true_y = self.true_y)
  29.     return true_y * @real_zoom + @real_y
  30.   end
  31.   #--------------------------------------------------------------------------
  32.   # ● バトル画面 Z 座標の取得
  33.   #--------------------------------------------------------------------------
  34.   def screen_z
  35.     return screen_y + 1000
  36.   end
  37.   #--------------------------------------------------------------------------
  38.   # ● バトル画面 X 座標の取得(移動などしていない場合)
  39.   #--------------------------------------------------------------------------
  40.   def base_x
  41.     return 320 + (true_x - @ox - 320) * @real_zoom + @real_x
  42.   end
  43.   #--------------------------------------------------------------------------
  44.   # ● バトル画面 Y 座標の取得
  45.   #--------------------------------------------------------------------------
  46.   def base_y
  47.     return (true_y - @oy) * @real_zoom + @real_y
  48.   end
复制代码


position position2 FORMATION_Y  PARTY_Y  @oy  @height
主要是这几个地方的函数内容重新的定义吧..
这些东西又调用到 此脚本Game_Battler 类里的各种变量..
脑乱 - -


这次帮不了你了,迅雷君 - -
作者: 迅雷進    时间: 2008-9-3 08:08
以下引用殲滅天使·玲于2008-9-2 23:58:00的发言:
这次帮不了你了,迅雷君 - -

别这样说,
你已帮了我不少了。
作者: 灯笼菜刀王    时间: 2008-9-3 09:57
-.-话说我之前也有这样的打算,不过觉得太麻烦所以就没做了,现在重新翻起来试看看好了~~

----------分割分割-----------------

其实做起来很简单- -~~

def true_y
    # パーティ内の並び順から Y 座標を計算して返す
    if self.index != nil
      y = position2 * $formation_y + $party_y + @oy - @height / 2
      return y
    else
      return 0
    end
  end

红色的地方我们把它像这样换成全局变量,然后在SCENE BATTLE的MAIN里按人头给它赋值就可以了-。-...
a = $game_party.actors.size
    case a
    when 1
      $party_y = 273
      $formation_y = 0
    when 2
      $party_y = 256
      $formation_y = 48
    when 3
      $party_y = 242
      $formation_y = 40
    when 4
      $party_y = 230
      $formation_y = 35
    end

麻烦的是调整坐标而已,以上是我调整的-。-,如果自己觉得不合适,就重新调整吧~~ [LINE]1,#dddddd[/LINE]系统信息:本贴由楼主认可为正确答案,66RPG感谢您的热情解答~
作者: 迅雷進    时间: 2008-9-3 11:20
前辈,
你实在太厉害了!!! {/ll} {/ll}
小弟甘拜下风~




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