Project1
标题:
如何改变contents.draw_text的内容?
[打印本页]
作者:
CR~
时间:
2015-1-16 21:01
标题:
如何改变contents.draw_text的内容?
本帖最后由 hys111111 于 2015-1-17 22:35 编辑
我在
Window_MenuStatus的20行左右做了修改。。
def refresh
self.contents.clear
@item_max = $game_party.actors.size
for i in 0...$game_party.actors.size
x = 64
y = i * 160
actor = $game_party.actors[i]
draw_actor_graphic(actor, x - 40, y + 80)
draw_actor_name(actor, x, y)
draw_actor_level(actor, x, y + 32)
draw_actor_state(actor, x + 90, y + 32)
draw_actor_exp(actor, x, y + 64)
draw_actor_hp(actor, x + 236, y + 32)
draw_actor_sp(actor, x + 236, y + 64)
draw_actor_class(actor, x + 264, y)
end
end
复制代码
问题就是,,
如果我想加一句contents.draw_text(x+144, y, 120, 32, '内容')
那么怎么能让他的内容能变?就像角色的职业那样。
比如,一号角色显示A,二号角色就显示B,三号角色就显示C
当1号开关打开的时候,
一号角色改为显示D
作者:
CR~
时间:
2015-1-16 21:04
饿。。还有
draw_actor_class(actor, x + 264, y)显示的内容,颜色要怎么改?
作者:
taroxd
时间:
2015-1-16 21:23
本帖最后由 taroxd 于 2015-1-16 21:24 编辑
1. 方法就像角色的职业那样。'内容' 这个东西并不一定要用字符串字面量,也可以用变量或者*方法的返回值*的
2. 修改 contents 的 font 属性。比如 contents.font.color = Color.new(233,233,233,233)
作者:
chd114
时间:
2015-1-17 15:17
contents.draw_text(x+144, y, 120, 32, actor.class_name)就是显示角色职业名字
作者:
Thylakoid
时间:
2015-1-18 00:06
本帖最后由 Thylakoid 于 2015-1-18 15:36 编辑
不知道我理解得对不对,是不是这个意思。
这个“内容”是新创的,不是数据库中自带的项目,而且对于每个角色,这个内容还是特定的。
如果是这样的话,我能想到的办法:
方法一、用case……when……end式的条件分歧来处理。直接在脚本里把这个“内容”特定地对应每个角色。比如
case $game_party.actors[i].id #当前队员id
when 1 #当前队员是1号角色
contents.draw_text(x+144, y, 120, 32, '内容1') #显示1号角色对应的“内容1”
when 2 #当前队员是2号角色
contents.draw_text(x+144, y, 120, 32, '内容2') #显示2号角色对应的“内容2”
以此类推,总共有多少可以加入队伍的角色就列举多少,中间也可以插入开关的判断。
end
复制代码
方法二、利用数据库自带的项目投机取巧一下。比如你总共有10个可以入队的角色,那么就可以把10以上的角色位置拿来用。比如在数据库中,把11~20号角色的名字对应写成“内容1~10”。这样一来,11号角色的名字就对应1号角色状态窗口里的“内容1”,12号角色的名字就对应2号角色状态窗口里的“内容2”,以此类推。然后就可以省去列举的麻烦,直接在脚本里用
a = $game_party.actors[i].id
contents.draw_text(x+144, y, 120, 32, $game_actors[a+10].name)
复制代码
就可以了,当然中间也可以加入开关判断。
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1