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

Project1

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

[已经解决] a==nil ? d=0 : c=0 这样可以省略D=0吗

[复制链接]

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

跳转到指定楼层
1
发表于 2016-3-2 22:05:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 yang1zhi 于 2016-3-2 22:13 编辑

a==nil ?    : c=0 可以吗
  a1 == nil ? d=0 : a1 <= y ?  $game_party.actors[1].skill_effect(self.battler, $data_skills[action_id])

评分

参与人数 1星屑 +35 收起 理由
RyanBern + 35 手动认可奖励

查看全部评分

Lv5.捕梦者 (暗夜天使)

只有笨蛋才会看到

梦石
1
星屑
21484
在线时间
9389 小时
注册时间
2012-6-19
帖子
7114

开拓者短篇九导演组冠军

2
发表于 2016-3-2 22:19:12 | 只看该作者
  1. c=0 unless a==nil ?
复制代码

点评

哦,这个只是一小段,方便阅读,是计算得出不是NIL然后再判断执行,是NIL就不用执行。我用多行可以了的,想缩短下句子。  发表于 2016-3-2 22:53
这计算哪来的nil  发表于 2016-3-2 22:45
用unless有个缺点,当是NIL的时候就会报错  发表于 2016-3-2 22:41
c ||=0 unless a.nil?  发表于 2016-3-2 22:37
↓可以...  发表于 2016-3-2 22:30

评分

参与人数 1星屑 +200 收起 理由
RyanBern + 200 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

3
发表于 2016-3-2 22:47:30 | 只看该作者
a==nil ? d=0 : c=0 这样可以省略D=0吗

既然要省略d = 0,为何要这样写呢……
一般【判断式 ? a : b】这种就是为了处理两种结果才这样写的,
既然不要d = 0了,那就干脆【c=0 unless a == nil】嘛。
至于第二句,不怎么能看明白想做什么……
  1. if a == nil
  2.   d = 0
  3. else
  4.   if a1 <= y
  5.     $game_party.actors[1].skill_effect(self.battler, $data_skills[action_id])
  6.   end
  7. end
复制代码
是要这样么?
是的话,不推荐这么写,
  1. d = 0 if a == nil
  2. $game_party.actors[1].skill_effect(self.battler, $data_skills[action_id]) if a1 <= y and a != nil
复制代码
或者
  1. a == nil ? d = 0 : (a1 <= y ? $game_party.actors[1].skill_effect(self.battler, $data_skills[action_id]) : return)
复制代码

评分

参与人数 1星屑 +200 收起 理由
RyanBern + 200 认可答案

查看全部评分

回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
12157
在线时间
4435 小时
注册时间
2014-4-11
帖子
5955

开拓者

4
 楼主| 发表于 2016-3-2 22:54:57 | 只看该作者
cinderelmini 发表于 2016-3-2 22:47
既然要省略d = 0,为何要这样写呢……
一般【判断式 ? a : b】这种就是为了处理两种结果才这样写的,
既然 ...

              self.shoot(action_id)
   $game_system.friend_event_id[0]==nil ?    d=0 : a = $game_map.events[$game_system.friend_event_id[0]]
   $game_system.friend_event_id[1]==nil ?    d=0 : b = $game_map.events[$game_system.friend_event_id[1]]
   $game_system.friend_event_id[2]==nil ?    d=0 : c = $game_map.events[$game_system.friend_event_id[2]]
   
   zj = ($game_player.x - self.x).abs + ($game_player.y - self.y).abs
   a==nil ? d=0 :  a1 = (a.x - self.x).abs + (a.y - self.y).abs
   b==nil ? d=0 :  b1 = (b.x - self.x).abs + (b.y - self.y).abs
   c==nil ? d=0 :  c1 = (c.x - self.x).abs + (c.y - self.y).abs
   y = Database_Bullet::SUFLAGS[action_id]

  $game_party.actors[0].skill_effect(self.battler, $data_skills[action_id])  if zj <= 5
  if a1==nil
    else
   a1 <= y ? $game_party.actors[1].skill_effect(self.battler, $data_skills[action_id]) : nil
       end
   if b1==nil
    else

    b1 <= y ? $game_party.actors[2].skill_effect(self.battler, $data_skills[action_id]) : nil
      end
    if c1==nil
    else
    c1 <= y ? $game_party.actors[3].skill_effect(self.battler, $data_skills[action_id]) : nil
    end
是这样的,想缩短下

点评

是啊,我知道啊。可是:前面总要有个数吧。也可以!=nil不过这样当是NIL的时候就不行  发表于 2016-3-3 00:10
照这段来看,d根本没有意义啊,单纯在某情况赋值了0,但是并没有用到它呀……  发表于 2016-3-2 23:07
回复 支持 反对

使用道具 举报

Lv4.逐梦者

「Pemercyia」


Urhurrenna

梦石
0
星屑
9397
在线时间
2748 小时
注册时间
2008-9-5
帖子
3543

开拓者短篇八RM组冠军短篇九导演组亚军白银编剧

5
发表于 2016-3-2 23:23:11 | 只看该作者
本帖最后由 cinderelmini 于 2016-3-2 23:29 编辑
yang1zhi 发表于 2016-3-2 22:54
self.shoot(action_id)
   $game_system.friend_event_id[0]==nil ?    d=0 : a = $game_m ...


排除掉无用的d之后,整理了一下代码,变成这样:
  1.   self.shoot(action_id)

  2.   zj = ($game_player.x - self.x).abs + ($game_player.y - self.y).abs
  3.   $game_party.actors[0].skill_effect(self.battler, $data_skills[action_id]) if zj <= 5
  4.   
  5.   calc_y = Database_Bullet::SUFLAGS[action_id]
  6.   for i in 1...$game_party.actors.size
  7.     friend = $game_map.events[$game_system.friend_event_id[i - 1]]
  8.     if friend and ((friend.x - self.x).abs + (friend.y - self.y).abs) <= calc_y
  9.       $game_party.actors[i].skill_effect(self.battler, $data_skills[action_id])
  10.     end
  11.   end
复制代码

评分

参与人数 1星屑 +15 收起 理由
yang1zhi + 15

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-9-22 15:49

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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