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

Project1

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

[已经解决] 状态界面排版

[复制链接]

Lv5.捕梦者

梦石
0
星屑
35180
在线时间
4169 小时
注册时间
2007-12-15
帖子
10066
跳转到指定楼层
1
发表于 2018-6-20 18:21:12 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 89444640 于 2018-6-20 18:26 编辑

还是想套接近rmxp默认窗口的样式,
这个是现在的显示

都顶四个犄角了
感觉还是应该加个边框,大概排版是这样,每个横排32*32,角色半身像用的格子128*160,精灵显示的格子96*96,

背后加背景图,辅助指的是盾,因为有二刀流存在,我盾这里还有的不是盾,是一些杂七杂八东西代替盾的,虽然写左手也行,但是不如辅助通用范围广。

但是有点问题,首先是精灵主角不装备,这样会造成右上角空出来一块

考虑换成,如果装备枪械时候,显示枪装备的械大图256*64,子弹图标 32*32 剩余子弹/枪械最大装弹量。

不装备时候右上角空着,应该还行。
然后我对界面没什么想法……觉得能用而且能看得清楚就可以了,不知还有没有和默认界面比较配合的好的想法呢?

战斗属性先相关,miss太闹心,干脆命中只受到回避这个数值的影响,灵巧这个数值,改成影响暴击和回避,50点换1暴击1回避。
游戏中的回避修正改成绝对值,1就是绝对回避1%不受其他数值影响。

目前脚本是这样。
Scripts.rar (433.92 KB, 下载次数: 120)

Lv5.捕梦者

梦石
0
星屑
39009
在线时间
5716 小时
注册时间
2006-11-10
帖子
6618
来自 2楼
发表于 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 我先试试

查看全部评分

回复 支持 反对

使用道具 举报

Lv3.寻梦者

梦石
0
星屑
4444
在线时间
1916 小时
注册时间
2010-8-16
帖子
847

短篇八RM组季军

3
发表于 2018-6-21 00:38:48 | 只看该作者
大佬真的不考虑跟我学一下美术吗
Steam页面:
http://store.steampowered.com/app/486850
https://store.steampowered.com/app/865180/
志同道合QQ&E-mail:[email protected]
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35180
在线时间
4169 小时
注册时间
2007-12-15
帖子
10066
4
 楼主| 发表于 2018-6-21 08:50:43 | 只看该作者
本帖最后由 89444640 于 2018-6-21 09:57 编辑

我这个是不是……应该在这里改?

我全局搜索,描绘名字那段,看了半天都觉得是在这里。
先试试看,有问题我再问。

问题1
    draw_actor_hp(@actor, 192, line_height(3.5), 128)
    draw_actor_sp(@actor, 192, line_height(4.5), 128)
这里面的
line_height(3.5)   line_height(4.5)是什么东西
我改成
    draw_actor_hp(@actor, 192,128)
    draw_actor_sp(@actor, 192,160)
显示如下


不知道是哪里重定义的,包括主界面,都是变成这种1000 1350的显示方式
分隔号 / 不见了
习惯的显示的方式应该为 1000/1350
怎么把/加回来?

问题2
哪里的脚本把HP MP重定义了?我怎么搜索才能给改回来?
我记得明明写的是血 气  有可能能话界面里一个英文都不想见,exp我都写的是经验值又变成英文了,好难受啊…………


问题3
下一级经验这个我找不到……或者说不知道怎么写。
如果把EXP显示弄成主界面这种显示方式

下面的条用直的吧,别的那个斜条我实在不知道怎么弄的,我喜欢看直的。
显示方式是
经验(文字) 条长度代表本次升级所需的总经验,数值表示还剩多少升级。自己觉得容易阅读。

点评

=.= 猫大的窗口增强啊.... 咱忘记这茬了, 那句是猫大新建的方法,它直接用到猫大的全部窗口里, 其实你直接复制它也是可以的  发表于 2018-6-21 09:50
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39009
在线时间
5716 小时
注册时间
2006-11-10
帖子
6618
5
发表于 2018-6-21 10:49:47 | 只看该作者
本帖最后由 灯笼菜刀王 于 2018-6-21 11:04 编辑
89444640 发表于 2018-6-21 08:50
我这个是不是……应该在这里改?

我全局搜索,描绘名字那段,看了半天都觉得是在这里。


确实是这里,猫大在这重定义了

不知道那些字母是什么意思的话,你可以用"添字" 这个命令,要写什么字都自己添, 数字,符号都一样, 无视其他的那些默认设置。

像HP, 想1000/1000 这样显示 就

添字(@actor.hp.to_s + "/" + @actor.maxhp.to_s, x, y, v,size,width,height,color)  #不要阴影就"添白字"

就可以了, 记得调整好给文字显示的矩形width,height,否则会显示不完整或者缩放。 v 就是PS字符工具里的"0左对齐,1中对齐,2右对齐"

※咱上面提到的"数字" 要作为文字显示, 后面一定要加  .to_s , 切记。要显示的文字一定要加"" 切记。可以通过 + 号把几个字符串放到一起一块显示, 就像上面的那个就是三个字符串(HP, 斜杠, MAXHP)组合在一起一块显示。

另外,color.new 不会用的话, 就把 window_base里, 添字,添白字的定义换成下面这个

RUBY 代码复制
  1. def 添字(txt, x, y, v=0,size=20,width = 120,height = 32,color=0)
  2.     self.contents.font.size = size
  3.     self.contents.font.color = Color.new(9, 9, 9, 255)
  4.     self.contents.draw_text(x+1, y+1, width, height, txt,v)
  5.     self.contents.font.color = text_color(color)
  6.     self.contents.draw_text(x, y, width, height, txt,v)
  7.   end
  8.   def 添白字(txt, x, y, v=0,size=20,width = 120,height = 32,color=0)
  9.     self.contents.font.size = size
  10.     self.contents.font.color = Color.new(9, 9, 9, 255)
  11.     self.contents.draw_text(x+1, y+1, width, height, txt,v)
  12.     self.contents.font.color = text_color(color)
  13.     self.contents.draw_text(x, y, width, height, txt,v)
  14.   end


这样, color直接添数字就可以改变颜色了, 颜色代码数字和\C的一样。


至于槽, 直接用 添槽 这个命令就好了, 要什么样的槽自己画, 为所欲为,  图片槽可比填充矩形华丽得多了, 你甚至可以画环形槽之类的-。-  

添槽(bar,up,down,x,y,v=0) #v槽类型,0 上下底, 1不要底

其中,up,代表变化的槽代表的数值,  down代表固定的数值,也就是槽底。 像要做HP槽, 那就  添槽("HP血条",@actor.hp,@actor.maxhp,x,y) 要显示槽底可以省略V不添。 然后做个2血条, 素材起名"HP血条"  槽底起名 "HP血条2" 放到windowskin文件夹里就好了


最后,

下一级所需经验 :  actor.next_exp_s      
还差多少经验升级:  actor.next_rest_exp_s   

上面两个都是字符串, 可以直接放到txt, 不可作为数字使用,
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
385
在线时间
46 小时
注册时间
2017-12-4
帖子
42
6
发表于 2018-6-21 13:47:26 | 只看该作者
灯笼菜刀王 发表于 2018-6-20 19:29
往窗口里面塞东西你不是会了, 自己 添图 添字 添槽 就可以啦. 这些东西就是调坐标的体力活罢了~  ...

看到定位我不得不说,之前美术教我用 ps cc 2017 的新功能,选中一个图层之后按住 ctrl 键,然后移动鼠标到其它元素或者背景,就会自动显示四边到目标的距离,简直不能更好用ε=ε=(ノ≧∇≦)ノ

点评

CTRL+T自由变化图层就行了,老版本PS都能用,还可以顺便获得Rect的数值,改UI最方便了  发表于 2018-6-21 13:57
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35180
在线时间
4169 小时
注册时间
2007-12-15
帖子
10066
7
 楼主| 发表于 2018-6-21 14:12:28 | 只看该作者
本帖最后由 89444640 于 2018-6-21 14:14 编辑

添加文字勉强算过去了,显示的是这样

HP后面总是紧跟着数值,可能是没有血槽的原因,
然后我添血槽
添槽(bar,up,down,x,y,v=0) #v槽类型,0 上下底, 1不要底
理解为
BAR是用来表示血条的图片,up是数值当前值,down是数值最大值。
于是这么写
添槽("HP血条",192,128,v=0)   

显示无法定义变量什么什么的,哪里理解出现问题了?
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
39009
在线时间
5716 小时
注册时间
2006-11-10
帖子
6618
8
发表于 2018-6-21 14:29:04 | 只看该作者
本帖最后由 灯笼菜刀王 于 2018-6-21 14:37 编辑
89444640 发表于 2018-6-21 14:12
添加文字勉强算过去了,显示的是这样

HP后面总是紧跟着数值,可能是没有血槽的原因,


第一个你理解对了, 后面的192是什么? 坐标?  X坐标必须填第4个, Y坐标填第5个。第二和第三必须要"血槽的上和下数值"  

简单的说,你的血条长短 是用  up/down 得到的百分比来显示的, 这样懂了么?  后面的V是一个有默认值的变量, 表示省略不添的话, 就默认为0,

正确写法:  添槽("HP血条",@actor.hp,@actor.maxhp,192,128)  

#弟6个值不填, 表示用默认的0,也就是显示上下底。 如果是要不显示底的槽,那128后面在加个1, 添槽("HP血条",@actor.hp,@actor.maxhp,192,128,1)  

up处添 当前HP的代码, down处添最大HP的代码, 这样这个血条就会按 当前HP/最大HP的百分比来显示, 这个就是槽的效果了。

如果你的能力值比如力量,也要有个槽, 但是力量并没有maxstr是吧, down要怎么添呢?   答案,直接添数值, 添你设置的"上限值" :  up 填 @actor.str, down 填 999 ,搞定。 能力值就可以使用"没有底的槽"模式, 这样避免整个界面到处都是槽=。=

up和down都添固定数值的话, 那就是一条永远不会变化的槽~~


最后, 文字的地方, 是可以加上空格的哦, 你想要让数值离文字远一点, 在"血"后面加上几个空格就可以了 , "血     " 这样


回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35180
在线时间
4169 小时
注册时间
2007-12-15
帖子
10066
9
 楼主| 发表于 2018-6-21 15:41:20 | 只看该作者
本帖最后由 89444640 于 2018-6-21 15:59 编辑
灯笼菜刀王 发表于 2018-6-21 14:29
第一个你理解对了, 后面的192是什么? 坐标?  X坐标必须填第4个, Y坐标填第5个。第二和第三必须 ...


如果底框长度和槽长度不一样怎么处理?刚才等的时候画了个框,为了好看边缘比血条长出来一点

我改来改去还是现实不正常,我让两个图像一样长让血条不顶到头,减血从没有的地方开始减
我让图像短一点吧,就这样……而且文字还给盖住了


使用图像如下


底框



底框


我刚想起来,我用X-n行不行?试试看…………
不对-了以后连框一起动……不会了,等回复T T

点评

半透明我一直手工调图ORZ,文字描绘也是相互遮挡吗?  发表于 2018-6-21 16:54
也就是说, 你可以 添图片("状态背景图",0,0,128) 来获得一个半透明的窗口效果-。-  发表于 2018-6-21 16:29
另外,添图片(name,x,y,opacity) y后面加上0-255的数,就可以改变图片的透明度  发表于 2018-6-21 16:28
描绘是按从上到下的顺序执行, 所以, 越下面的句子,优先度越高, 想血条盖在槽上,就要先加槽,再加血条  发表于 2018-6-21 16:24
--b底槽的半透明纹理没了- -b还遮挡血槽,还得单独加个底槽,我再试试  发表于 2018-6-21 16:20
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
35180
在线时间
4169 小时
注册时间
2007-12-15
帖子
10066
10
 楼主| 发表于 2018-6-21 16:52:34 | 只看该作者
本帖最后由 89444640 于 2018-6-21 17:18 编辑

调成这样了

为什么显示数值的文字不见了?
看到回答了……改下顺序去。试了好几种,血槽只能改暗色才便于阅读,亮色瞎狗眼。
数值可以能正常显示了,但是为啥我一改血槽的字体大小,连装备什么的字体都变大了,

隶书果然是字大了才好看。
然后我看了一下别人的状态,

这字体显示位置怎么还不固定ORZ,明明是一个数值,
血 气字的大小都不一样是脑哪出……

主界面的HP显示位置在哪里呢?主界面显示HP时没有 / 想去加一个找不到位置

然后,exp的摆放位置
查到默认的exp下一级描绘这段是这么写的
    self.contents.draw_text(320, 80, 80, 32, "NEXT")
我说试试行不行  
  self.contents.draw_text("下一级",192,96,0,24,96,24,1 )
结果不行。

点评

字体大小不一样,那是width,height的关系, 如果你的字符串太长超过矩形框, 系统会自动缩小60%, 自己检查看看是不是框给得太小了, HP一多就超过了  发表于 2018-6-21 19:12
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-11 05:18

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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