查看: 3463|回复: 9

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

[复制链接]
梦石
0
星屑
15041
在线时间
2230 小时
注册时间
2019-1-24
回帖
964

R考场第七期纪念奖

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

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

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

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

[pre lang="ruby"]    # 描绘 HP
    self.contents.font.color = actor.hp == 0 ? knockout_color :
      actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color
    self.contents.draw_text(hp_x, y, 48, 32, actor.hp.to_s, 2)[/pre]

这段代码从来没见过可以这样组合,分开我知道
= 赋值
==相等
<= 小于或相等
? 和 : 条件运算符
这段代码是分成以下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
梦石
1
星屑
24088
在线时间
3339 小时
注册时间
2011-7-8
回帖
3862

开拓者

发表于 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 网络脚本 *
回复

使用道具 举报

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

[pre lang="ruby"]self.contents.font.color = actor.hp == 0 ? knockout_color :  actor.hp <= actor.maxhp / 4 ? crisis_color : normal_color[/pre]
简单的问号冒号表达式,从左到右。a ? b : c ? d : e
如hp=0时,显示红色,否则,后面的再判断hp这样。

点评

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

使用道具 举报

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

[pre lang="ruby"]self.contents.font.color = actor.hp == 0 ? 前面=代入的返回值 否则  actor.hp <= actor.maxhp / 4 ? 前面=代入的返回值 否则 前面=代入的返回值[/pre]

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

点评

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

使用道具 举报

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

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部