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

Project1

 找回密码
 注册会员
搜索

怎样绘制如下图的选单?

查看数: 2296 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2013-10-6 16:53

正文摘要:

本帖最后由 cskm2005 于 2013-10-7 10:45 编辑 怎样绘制如下图的选单? 就是想改成像它一样的头像高度,半透明. HP显示,或者可以加MP显示... 或者原本高度的一半,将称号显示,职业就隐藏.... 是Window_Base那一 ...

回复

cskm2005 发表于 2013-10-7 10:43:03
本帖最后由 cskm2005 于 2013-10-7 10:44 编辑
Algalon 发表于 2013-10-7 04:30
52 行改成 rect = Rect.new(face_index % 4 * 96, face_index / 4 * 96 + 40, 96, 46), 再把文字位置改一 ...


改成+20就完美了,终于成功了,谢谢{:2_275:}
当然,最好说明一下为何 +比没+的来的贴切啦
明明都116..

点评

你写的那个,如果face_index<4的情况y值就是0,而你想要的头像y值是从20开始(40是我粗略估计的)  发表于 2013-10-7 12:51
Algalon 发表于 2013-10-7 04:30:32
52 行改成 rect = Rect.new(face_index % 4 * 96, face_index / 4 * 96 + 40, 96, 46), 再把文字位置改一下
喵呜喵5 发表于 2013-10-6 17:38:38
改起来感觉好烦所以只说思路……
要改的是Window_MenuStatus,其中有一个def draw_item(index),这个方法用来绘制窗口中的角色,所以从它入手,接下来对它一句一句分析
  1.     actor = $game_party.members[index]
  2. #这句的意思是获取对应角色的信息
  3.     enabled = $game_party.battle_members.include?(actor)
  4. #这句的意思是获取这个角色是否参战,没参战的角色在菜单中显示为半透明就是这句的功劳
  5. #因此,希望所有角色都半透明的话直接把这句改成enabled = false即可
  6.     rect = item_rect(index)
  7. #获取需要绘制的位置
  8.     draw_item_background(index)
  9. #绘制背景
  10.     draw_actor_face(actor, rect.x + 1, rect.y + 1, enabled)
  11. #绘制脸图
  12.     draw_actor_simple_status(actor, rect.x + 108, rect.y + line_height / 2)
  13. #绘制角色的简单状态(HP、MP等)
复制代码
既然要改脸图,接着就从draw_actor_face(actor, rect.x + 1, rect.y + 1, enabled)这句入手,这个draw_actor_face是父类Window_Base中的方法
  1.   def draw_actor_face(actor, x, y, enabled = true)
  2.     draw_face(actor.face_name, actor.face_index, x, y, enabled)
  3.   end
复制代码
这个draw_face方法的内容又是什么呢?
  1.   def draw_face(face_name, face_index, x, y, enabled = true)
  2.     bitmap = Cache.face(face_name)
  3. #获取角色脸图
  4.     rect = Rect.new(face_index % 4 * 96, face_index / 4 * 96, 96, 96)
  5. #通过脸图的id计算脸图要显示的范围
  6.     contents.blt(x, y, bitmap, rect, enabled ? 255 : translucent_alpha)
  7.     bitmap.dispose
  8. #绘制
  9.   end
复制代码
现在整个思路就明确了,要修改脸图的大小和位置,只需要从这一句入手即可
  1. rect = Rect.new(face_index % 4 * 96, face_index / 4 * 96, 96, 96)
复制代码
同理,修改角色的HP、MP同样可以通过这种追溯的过程找到脚本中对应的代码


最后说一句,虽然你找到了这些代码在Window_Base中的位置,但是不要在Window_Base中改啊……
请把对应的方法复制一份到Window_MenuStatus里去再做修改……

评分

参与人数 1星屑 +180 收起 理由
熊喵酱 + 180 认可答案

查看全部评分

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

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

GMT+8, 2024-11-17 12:58

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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