赞 | 1 |
VIP | 11 |
好人卡 | 11 |
积分 | 9 |
经验 | 17676 |
最后登录 | 2017-8-11 |
在线时间 | 228 小时 |
Lv2.观梦者
- 梦石
- 0
- 星屑
- 928
- 在线时间
- 228 小时
- 注册时间
- 2011-8-22
- 帖子
- 834
|
本帖最后由 艾拉·贝尔 于 2012-8-22 12:05 编辑
我用的是超长的一种 貌似是最早期的吧。我的脚本描绘坐标区域 [我认为是该这块]
#--------------------------------------------------------------------------
# ● ATG の描画
# actor : アクター
# x : 描画先 X 座標
# y : 描画先 Y 座標
# width : 描画先の幅
#--------------------------------------------------------------------------
def draw_actor_atg(actor, x, y, width = 144)
if @at_gauge == nil
# plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正
# plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅
# align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め
# align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め
# align3:ゲージタイプ 0:左詰め 1:右詰め
@plus_x = 0
@rate_x = 0
@plus_y = 16
@plus_width = 0
@rate_width = 100
@width = @plus_width + width * @rate_width / 100
@height = 16
@align1 = 0
@align2 = 1
@align3 = 0
# グラデーション設定 grade1:空ゲージ grade2:実ゲージ
# (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション)
grade1 = 1
grade2 = 0
# 色設定。color1:最外枠,color2:中枠
# color3:空枠ダークカラー,color4:空枠ライトカラー
color1 = Color.new(0, 0, 0)
color2 = Color.new(255, 255, 192)
color3 = Color.new(0, 0, 0, 192)
color4 = Color.new(0, 0, 64, 192)
# ゲージの色設定
# 通常時の色設定
color5 = Color.new(0, 64, 80)
color6 = Color.new(0, 128, 160)
# ゲージがMAXの時の色設定
color7 = Color.new(80, 0, 0)
color8 = Color.new(240, 0, 0)
# 連携スキル使用時の色設定
color9 = Color.new(80, 64, 32)
color10 = Color.new(240, 192, 96)
# スキル詠唱時の色設定
color11 = Color.new(80, 0, 64)
color12 = Color.new(240, 0, 192)
# ゲージの描画
gauge_rect_at(@width, @height, @align3, color1, color2,
color3, color4, color5, color6, color7, color8,
color9, color10, color11, color12, grade1, grade2)
end
# 変数atに描画するゲージの幅を代入
if actor.rtp == 0
at = (width + @plus_width) * actor.atp * @rate_width / 10000
else
at = (width + @plus_width) * actor.rt * @rate_width / actor.rtp / 100
end
if at > width
at = width
end
# ゲージの左詰・中央構え等の補正
case @align1
when 1
x += (@rect_width - width) / 2
when 2
x += @rect_width - width
end
case @align2
when 1
y -= @height / 2
when 2
y -= @height
end
self.contents.blt(x + @plus_x + width * @rate_x / 100, y + @plus_y,
@at_gauge, Rect.new(0, 0, @width, @height))
if @align3 == 0
rect_x = 0
else
x += @width - at - 1
rect_x = @width - at - 1
end
# ゲージの色設定
if at == width
# MAX時のゲージ描画
self.contents.blt(x + @plus_x + @width * @rate_x / 100, y + @plus_y,
@at_gauge, Rect.new(rect_x, @height * 2, at, @height))
else
if actor.rtp == 0
# 通常時のゲージ描画
self.contents.blt(x + @plus_x + @width * @rate_x / 100, y + @plus_y,
@at_gauge, Rect.new(rect_x, @height, at, @height))
else
if actor.spell == true
# 連携スキル使用時のゲージ描画
self.contents.blt(x + @plus_x + @width * @rate_x / 100, y + @plus_y,
@at_gauge, Rect.new(rect_x, @height * 3, at, @height))
else
# スキル詠唱時のゲージ描画
self.contents.blt(x + @plus_x + @width * @rate_x / 100, y + @plus_y,
@at_gauge, Rect.new(rect_x, @height * 4, at, @height))
end
end
end
end
end
我这块如果你也有应该我们用的是一个版本 里面有坐标,你可以改改试试看,之后再模拟战斗,模拟战斗用的就是脚本,之后你可以看看他是怎么运动的就好改了。你的那个部分貌似是主处理,但是我是认为他的坐标和颜色处理是在这一块的。
不过我还是认为我要说说 求采纳的说,。
因为是日文版,所以我把这个部分拆开给你看
def draw_actor_atg(actor, x, y, width = 144)
if @at_gauge == nil
# plus_x:X座標の位置補正 rate_x:X座標の位置補正(%) plus_y:Y座標の位置補正
# plus_width:幅の補正 rate_width:幅の補正(%) height:縦幅
# align1:描画タイプ1 0:左詰め 1:中央揃え 2:右詰め
# align2:描画タイプ2 0:上詰め 1:中央揃え 2:下詰め
# align3:ゲージタイプ 0:左詰め 1:右詰め
@plus_x = 0
@rate_x = 0
@plus_y = 16
@plus_width = 0
@rate_width = 100
@width = @plus_width + width * @rate_width / 100
@height = 16
@align1 = 0
@align2 = 1
@align3 = 0
plusX:是更正X坐标
rate_x:是更正X坐标的百分比
plus_y:更正Y坐标
rate_Y:更真Y坐标的百分比
简单解释就是你要改动这个坐标,但是不想过于过去,可以用百分比写进去,移动就是1的一小份
align1:描画类型一
align2:描画类型2
align3:标准类型/衡量类型
0:左边 1:中央 2:右边
回头看下面,改动下面的数值,你的数字应该就可以动了
@plus_x = 0
@rate_x = 0
@plus_y = 16
@plus_width = 0
@rate_width = 100
@width = @plus_width + width * @rate_width / 100
@height = 16
@align1 = 0
@align2 = 1
@align3 = 0
具体位置描述:
# グラデーション設定 grade1:空ゲージ grade2:実ゲージ
# (0:横にグラデーション 1:縦にグラデーション 2:斜めにグラデーション)
grade1 = 1
grade2 = 0
改变的话下面应该也要变 ,color,是指颜色可以自己调整,[我这里没有动]那么接下来是情况状况出现要改动的坐标位置,按照解释改动坐标。
if actor.rtp == 0
# 通常状况下
self.contents.blt(x + @plus_x + @width * @rate_x / 100, y + @plus_y,
@at_gauge, Rect.new(rect_x, @height, at, @height))
else
if actor.spell == true
# 連携技能使用时候的描绘
self.contents.blt(x + @plus_x + @width * @rate_x / 100, y + @plus_y,
@at_gauge, Rect.new(rect_x, @height * 3, at, @height))
else
# 咏唱魔法所使用的描绘
self.contents.blt(x + @plus_x + @width * @rate_x / 100, y + @plus_y,
@at_gauge, Rect.new(rect_x, @height * 4, at, @height))
[红色部分为可改动位置,里面的数值自己变换,但是别乱改,要不然战斗不行你就要悔恨终身了。]
结论:
出现的数字你可以自己去定,但是我建议你改一个地方就模拟战斗看一下,脚本最好复制一份,以防出错,毕竟是日本人写的,日本人最清楚啊。如果改动最低上的没有用就还原试试下面如果都不行就全部改动。可能也会出现战斗无法开始,那你就要看看你把那个地方给改错了咯。里面某些位置我是翻译出来的文字,所以可能会复制进去不能用,你最好用原始的脚本,并且只改动坐标那块就行了。
【脚本见解,如果有不足请其他人继续补充] |
评分
-
查看全部评分
|