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

Project1

 找回密码
 注册会员
搜索
查看: 2742|回复: 9

[已经解决] [已解决]Window_Base中描绘HP组合代码怎么解读?

[复制链接]

Lv4.逐梦者

梦石
0
星屑
14051
在线时间
2135 小时
注册时间
2019-1-24
帖子
1121

R考场第七期纪念奖

发表于 2019-4-17 19:57:50 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 miantouchi 于 2019-4-17 21:04 编辑

RUBY 代码复制
  1. # 描绘 HP
  2.     self.contents.font.color = actor.hp == 0 ? knockout_color :
  3.       actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
  4.     self.contents.draw_text(hp_x, y, 48, 32, actor.hp.to_s, 2)


这段代码从来没见过可以这样组合,分开我知道
= 赋值
==相等
<= 小于或相等
? 和 : 条件运算符
这段代码是分成以下3步的意思吗?
self.contents.font.color = actor.hp
actor.hp == 0 ? knockout_color :actor.hp
actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
1.png

Lv5.捕梦者 (版主)

梦石
1
星屑
23963
在线时间
3338 小时
注册时间
2011-7-8
帖子
3925

开拓者

发表于 2019-4-17 20:27:11 | 显示全部楼层
  1. if (actor.hp == 0)
  2.   self.contents.font.color = knockout_color
  3. else
  4.   if (actor.hp <= actor.maxhp / 4)
  5.     self.contents.font.color = crisis_color
  6.   else
  7.     self.contents.font.color = normal_color
  8.   end
  9. end
  10. self.contents.draw_text(hp_x, y, 48, 32, actor.hp.to_s, 2)
复制代码

点评

适用,但是这里是调用了color=(some_color)方法,后面的三元表达式是some_color的值  发表于 2019-4-17 23:56
从左往右不适合self.contents.font.color = actor.hp这样吗?  发表于 2019-4-17 20:50
从左到右  发表于 2019-4-17 20:49
哦,代码看明白了。actor.hp == 0这段为什么先判断?  发表于 2019-4-17 20:45
熟悉rgss和ruby,xp区版主~
正在填坑:《膜拜组传奇》讲述膜拜组和学霸们的故事。
已上steam:与TXBD合作的Reformers《变革者》
* 战斗调用公共事件 *
* RGSOS 网络脚本 *
回复 支持 反对

使用道具 举报

Lv2.观梦者

梦石
0
星屑
353
在线时间
15 小时
注册时间
2019-4-14
帖子
31
发表于 2019-4-17 20:53:01 | 显示全部楼层
本帖最后由 活气寒露 于 2019-4-17 20:56 编辑

RUBY 代码复制
  1. self.contents.font.color = actor.hp == 0 ? knockout_color :  actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color

简单的问号冒号表达式,从左到右。a ? b : c ? d : e
如hp=0时,显示红色,否则,后面的再判断hp这样。

点评

哈哈,你这么写我明白了  发表于 2019-4-17 21:03
回复 支持 反对

使用道具 举报

Lv5.捕梦者

梦石
0
星屑
33043
在线时间
10470 小时
注册时间
2009-3-15
帖子
4756
发表于 2019-4-18 12:50:39 | 显示全部楼层
本帖最后由 soulsaga 于 2019-4-18 12:53 编辑

RUBY 代码复制
  1. self.contents.font.color = actor.hp == 0 ? 前面=代入的返回值 否则  actor.hp <= actor.maxhp / 4 ? 前面=代入的返回值 否则 前面=代入的返回值


self.contents.font.color = 后面条件运算其中一个的返回值..
所以从左至右self.contents.font.color = 是放在最后的..

点评

表达式写长了,直接就蒙了,感谢分解分析  发表于 2019-4-20 07:07
回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-3-29 16:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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