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

Project1

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

[已经解决] 如何改变contents.draw_text的内容?

[复制链接]

Lv3.寻梦者

梦石
0
星屑
1308
在线时间
354 小时
注册时间
2009-9-14
帖子
328
跳转到指定楼层
1
发表于 2015-1-16 21:01:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 hys111111 于 2015-1-17 22:35 编辑

我在
  1. Window_MenuStatus的20行左右做了修改。。
  2.   def refresh
  3.     self.contents.clear
  4.     @item_max = $game_party.actors.size
  5.     for i in 0...$game_party.actors.size
  6.       x = 64
  7.       y = i * 160
  8.       actor = $game_party.actors[i]
  9.       draw_actor_graphic(actor, x - 40, y + 80)
  10.       draw_actor_name(actor, x, y)
  11.       draw_actor_level(actor, x, y + 32)
  12.       draw_actor_state(actor, x + 90, y + 32)
  13.       draw_actor_exp(actor, x, y + 64)
  14.       draw_actor_hp(actor, x + 236, y + 32)
  15.       draw_actor_sp(actor, x + 236, y + 64)
  16.       draw_actor_class(actor, x + 264, y)
  17.     end
  18.   end
复制代码
问题就是,,
      如果我想加一句contents.draw_text(x+144, y, 120, 32, '内容')
那么怎么能让他的内容能变?就像角色的职业那样。
比如,一号角色显示A,二号角色就显示B,三号角色就显示C
当1号开关打开的时候,
一号角色改为显示D

评分

参与人数 1星屑 +35 收起 理由
︶ㄣ牛排ぶ + 35 手动认可奖励

查看全部评分

Lv3.寻梦者

梦石
0
星屑
1308
在线时间
354 小时
注册时间
2009-9-14
帖子
328
2
 楼主| 发表于 2015-1-16 21:04:25 | 只看该作者
饿。。还有
draw_actor_class(actor, x + 264, y)显示的内容,颜色要怎么改?
回复 支持 反对

使用道具 举报

Lv3.寻梦者 (版主)

…あたしは天使なんかじゃないわ

梦石
0
星屑
2208
在线时间
4033 小时
注册时间
2010-10-4
帖子
10779

开拓者贵宾

3
发表于 2015-1-16 21:23:12 | 只看该作者
本帖最后由 taroxd 于 2015-1-16 21:24 编辑

1. 方法就像角色的职业那样。'内容' 这个东西并不一定要用字符串字面量,也可以用变量或者*方法的返回值*的
2. 修改 contents 的 font 属性。比如 contents.font.color = Color.new(233,233,233,233)

点评

职业那段的示范已经不能再简单了  发表于 2015-1-17 08:15
CR~
职业那块儿我看了,,,没有看懂啊。。。能帮写一段儿示范一下么。。。  发表于 2015-1-16 23:03
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
9280
在线时间
2504 小时
注册时间
2011-5-20
帖子
15389

开拓者

4
发表于 2015-1-17 15:17:42 | 只看该作者
contents.draw_text(x+144, y, 120, 32, actor.class_name)就是显示角色职业名字
[img]http://service.t.sina.com.cn/widget/qmd/5339802982/c02e16bd/7.png
回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
50
在线时间
65 小时
注册时间
2013-4-18
帖子
81
5
发表于 2015-1-18 00:06:13 | 只看该作者
本帖最后由 Thylakoid 于 2015-1-18 15:36 编辑

不知道我理解得对不对,是不是这个意思。
这个“内容”是新创的,不是数据库中自带的项目,而且对于每个角色,这个内容还是特定的。
如果是这样的话,我能想到的办法:

方法一、用case……when……end式的条件分歧来处理。直接在脚本里把这个“内容”特定地对应每个角色。比如
  1. case $game_party.actors[i].id #当前队员id
  2. when 1 #当前队员是1号角色
  3. contents.draw_text(x+144, y, 120, 32, '内容1')  #显示1号角色对应的“内容1”
  4. when 2 #当前队员是2号角色
  5. contents.draw_text(x+144, y, 120, 32, '内容2')  #显示2号角色对应的“内容2”
  6. 以此类推,总共有多少可以加入队伍的角色就列举多少,中间也可以插入开关的判断。
  7. end
复制代码
方法二、利用数据库自带的项目投机取巧一下。比如你总共有10个可以入队的角色,那么就可以把10以上的角色位置拿来用。比如在数据库中,把11~20号角色的名字对应写成“内容1~10”。这样一来,11号角色的名字就对应1号角色状态窗口里的“内容1”,12号角色的名字就对应2号角色状态窗口里的“内容2”,以此类推。然后就可以省去列举的麻烦,直接在脚本里用
  1. a = $game_party.actors[i].id
  2. contents.draw_text(x+144, y, 120, 32, $game_actors[a+10].name)
复制代码
就可以了,当然中间也可以加入开关判断。

点评

CR~
十分感谢!十分感谢~  发表于 2015-1-18 15:53

评分

参与人数 1星屑 +200 收起 理由
︶ㄣ牛排ぶ + 200 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-11 07:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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