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

Project1

 找回密码
 注册会员
搜索

状态界面排版

查看数: 14223 | 评论数: 48 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2018-6-20 18:21

正文摘要:

本帖最后由 89444640 于 2018-6-20 18:26 编辑 还是想套接近rmxp默认窗口的样式, 这个是现在的显示

回复

灯笼菜刀王 发表于 2018-6-20 19:29:07
本帖最后由 灯笼菜刀王 于 2018-6-20 19:35 编辑

往窗口里面塞东西你不是会了, 自己 添图 添字 添槽 就可以啦. 这些东西就是调坐标的体力活罢了~ 自己动手丰衣足食

背景要加框的话, 直接把框画到背景里呗, 要什么框还不是为所欲为

状态窗口的话, 在 Window_Status 里面的  def refresh 下面, 第一句 self.contents.clear 保留 , 其他都可以擦掉,  然后随便你重新添, 记得最后的两个end别丢就好.

相关写法:  
攻击:  actor.atk
防御:  actor.pdef
魔防:  actor.mdef
力量:  actor.str
魔力:  actor.int
速度:  actor.agi
灵活:  actor.dex
HP:  actor.hp  actor.maxhp
SP:  actor.sp  actor.maxsp
等级: actor.level
经验: actor.exp
注意,以上这些是数字,  用在 添槽 的UP, 可以直接添,  如果是用于 添字的txt,就是要描绘数字的话, 后面要加上 .to_s  即:  actor.hp.to_s   标点全部半角, 英文全部小写.

名字:  actor.name
职业:  $data_classes[actor.class_id].name
以上这些是字符串, 直接添到 txt 就好

状态:  draw_actor_state(actor, x, y)  
经验/剩余经验 draw_actor_exp(actor, x, y)
以上直接用该命令即可.



武器和防具嘛,  把下面这个塞到 window_base 最后一个end前,  

  1. def 添武器(weapon_id,x,y)
  2.     return if weapon_id == 0
  3.     bitmap = RPG::Cache.icon($data_weapons[weapon_id].icon_name)
  4.     self.contents.blt(x,y, bitmap, Rect.new(0, 0 ,32, 32))
  5.     self.contents.draw_text(x+36,y,160,32,$data_weapons[weapon_id].name)
  6.   end
  7.   def 添防具(armor_id,x,y)
  8.     return if armorid == 0
  9.     bitmap = RPG::Cache.icon($data_armors[armor_id].icon_name)
  10.     self.contents.blt(x,y, bitmap, Rect.new(0, 0 ,32, 32))
  11.     self.contents.draw_text(x+36,y,160,32,$data_armors[armor_id].name)
  12.   end
复制代码

然后,用 添武器(id,x,y )  添防具(id,x,y)  这两个命令就可以了
武器 : actor.weapon_id
防具: 盾 actor.armor1_id   下面的分别 2 3 4 (如果有增加的话)5,6......

剩下的, 精灵和枪械预留着等你系统搞完再加

教个小技巧.  用PS定位大法



圈子里的就是这张图片在窗口里的坐标,  直接照抄即可, 可以精确到1像素

点评

选中图片图层,按CTRL+T,导航的那个XY就是图片左上角坐标,右边的WH就长和宽,要添文字的时候,长和宽可以查看它.  发表于 2018-6-21 00:43
-16-16的意思是窗口本身的contents是上下左右都要扣去16像素的,不过,你这个窗口已经在super里-16 -16了,所以可以直接用PS的坐标,只要PS的画布是640*480  发表于 2018-6-21 00:39
-16,16意思是,32*32图标的中心点位置什么的?我明天调一下试试吧,家里资料不全没法调。  发表于 2018-6-20 22:52
哪个ps的定为坐标,是左上还是中心?  发表于 2018-6-20 22:48
记得要-16,-16  发表于 2018-6-20 20:34

评分

参与人数 2星屑 +200 +2 收起 理由
RyanBern + 200 + 1 认可答案
89444640 + 1 我先试试

查看全部评分

soulsaga 发表于 2018-6-26 19:32:02
晚上了..说好的和大神的亲密交流呢..
灯笼菜刀王 发表于 2018-6-26 17:32:04
本帖最后由 灯笼菜刀王 于 2018-6-26 18:36 编辑

  给你个数字大写插件, 可以把0-99999的数字转化为大写格式,  使用方法, 数字(n)   n填要转化的数字。

栗子:

a = 数字(@actor.level)   这样  a就是角色等级的 大写数字。 然后用 添字(a,XXXXXXX) 就可以了显示出来了

RUBY 代码复制
  1. #==============================
  2. #  数字大写化插件1.1      灯笼菜刀酱
  3. #==============================
  4. class Window_Base < Window
  5. def 大写(n)
  6.   case n
  7.   when 1
  8.     return "壹"
  9.   when 2
  10.     return "贰"
  11.   when 3
  12.     return "叁"
  13.   when 4
  14.     return "肆"
  15.   when 5
  16.     return "伍"
  17.   when 6
  18.     return "陆"
  19.   when 7
  20.     return "柒"
  21.   when 8
  22.     return "捌"
  23.   when 9
  24.     return "玖"
  25.   when 0
  26.     return ""
  27.   end
  28. end
  29. def 数字(n)
  30. return "超范围" if n < 0 and n > 99999
  31. return "零" if n == 0
  32.   a = 大写(n%10)
  33.   m = n / 10
  34.   b = n < 10 ? "" : m == 1 ? "拾" : m == 0 ? n%10 == 0 ? "" : "零" : 大写(m%10)+"拾"
  35.   m = n / 100
  36.   c = n < 100 ? "" : m == 0 ? n/10 == 0 ? "" : "零" : 大写(m%10)+"佰"
  37.   m = n / 1000
  38.   d = n < 1000 ? "" : m == 0 ? n/100 == 0 ? "" : "零" : 大写(m%10)+"仟"
  39.   m = n / 10000
  40.   e = n < 10000 ? "" : m == 0 ? n/1000 == 0 ? "" : "零" : 大写(m%10)+"萬"
  41.   return e+d+c+b+a
  42. end
  43. end

点评

重新复制,1.1版,, 十位数增加了个判断避免 出现 一百零  发表于 2018-6-26 18:37
=.= 常有的事  发表于 2018-6-26 17:48
差了个end - -b  发表于 2018-6-26 17:43
看着真心蛋疼ORZ 回头试试看显示效果 纯中文界面除了阅读不便也挺爽的。  发表于 2018-6-26 17:37

评分

参与人数 1+1 收起 理由
89444640 + 1 漂亮~

查看全部评分

soulsaga 发表于 2018-6-26 15:53:05
本帖最后由 soulsaga 于 2018-6-26 16:09 编辑
89444640 发表于 2018-6-26 15:21
先能正常显示再说吧,刚才单位连续跳闸,吓死我了,跳闸会造成数据库损坏虽然有备份。

字体压缩是因为原来 ...


#--------------------------------------------------------------------------
  # ● 描绘当前和最大值
  #     current : 当前值
  #     max     : 最大值
  #     color1  : 当前值颜色
  #     color2  : 最大值颜色
  #--------------------------------------------------------------------------
  def draw_current_and_max_values(x, y, width, current, max, color1, color2)
    change_color(color1)
    half = (width - 12) >> 1
    if half < text_size(max).width
      draw_text(x, y, width, line_height, current, 2)
    else
      draw_text(x, y, half, line_height, current, 2)
      change_color(color2)
      #draw_text(x + half, y, 12, line_height, "/", 1)
      draw_text(x + half + 12, y, half, line_height, max, 0)
    end
  end

显示/去掉注译就行..

def draw_partner_name(actor, x, y)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 80, 32, "精霊")

这里第2行换了颜色..你懂的..

点评

晚上得跟你慢慢问精灵系统了,完全忘了怎么调整。  发表于 2018-6-26 16:54
嗯,这个没问题了,看看怎么把精灵弄正常,这个系统都忘了怎么回事了……  发表于 2018-6-26 16:09
soulsaga 发表于 2018-6-26 11:56:28
本帖最后由 soulsaga 于 2018-6-26 11:57 编辑
89444640 发表于 2018-6-26 11:33
大概这样……下面的数字还没填。

现在该弄精灵这两个字的位置了,找不到在哪里…… ...


#==============================================================================
# ■ Window_Base
#==============================================================================
class Window_Base < Window
  #--------------------------------------------------------------------------
  # ● パートナー名表示(アクター用)
  #--------------------------------------------------------------------------
  def draw_partner_name(actor, x, y)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 80, 32, "精霊")
    self.contents.font.color = normal_color
    name = actor.partner.disable? ? "―" : actor.partner.obj.name
    self.contents.draw_text(x+60, 0, 120, 32, name)
  end

把self.contents.draw_text(x+60, 0, 120, 32, name)
的0改成y?
soulsaga 发表于 2018-6-26 11:38:42
89444640 发表于 2018-6-26 11:33
大概这样……下面的数字还没填。

现在该弄精灵这两个字的位置了,找不到在哪里…… ...

#==============================================================================
# ■ Window_Status
#==============================================================================
class Window_Status < Window_Base
  #--------------------------------------------------------------------------
  # ● リフレッシュ
  #--------------------------------------------------------------------------
  alias refresh_spirit refresh
  def refresh
    refresh_spirit
    draw_partner_name(@actor, 320, 0)
  end
end

点评

这个可以改 精灵 两个字的位置,而且还给我出繁体字- -b,然后后面跟着的精灵名字位置还在原地,这个在哪里呢?  发表于 2018-6-26 11:46
拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

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

GMT+8, 2024-12-1 00:48

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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