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

Project1

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

[已经解决] [已解决]关于非!的一段代码用法疑问?

[复制链接]

Lv4.逐梦者

梦石
0
星屑
14591
在线时间
2194 小时
注册时间
2019-1-24
帖子
1123

R考场第七期纪念奖

跳转到指定楼层
1
发表于 2019-6-29 22:26:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
本帖最后由 miantouchi 于 2019-6-30 06:22 编辑

  这是一段跳跃代码,但是核心问题不是跳跃的实现,而是我对非!用法感到疑惑.

#--------------------------------------------------------------------------
  # ● 更新跳跃
  #--------------------------------------------------------------------------
  def update_jump
    return if !jumping?
   
    # 更新真实坐标
    @real_x += @v.x
    @real_y -= @v.y
    #以下省略
  end


  #--------------------------------------------------------------------------
  # ● 是否跳跃
  #--------------------------------------------------------------------------
  def jumping?
    !@jump_state.nil?
  end
我的想法如下:
如果@jump_state状态值是nil则返回true,然后非一下就是返回false,也就跳跃状态为nil就返回false吗,不是nil就返回true

def jumping?
    @jump_state.nil?
  end

  def update_jump
    return if    jumping?
  end
这么写不也行吗?,不加 ! ,这么写有什么好处吗?

Lv4.逐梦者

梦石
0
星屑
7570
在线时间
1157 小时
注册时间
2016-9-10
帖子
165

开拓者

2
发表于 2019-6-29 23:13:55 | 只看该作者
个人感觉你的写法也是可以的,就是逻辑比较奇怪。

jumping?翻译成中文就是 跳?
返回值true(是)就代表跳,返回值false(否)就代表不跳。

但你的逻辑就比较奇怪了
返回值true(是)就代表不跳,返回值false(否)就代表跳。

就好比问你 “你吃饭了吗”
你回复“吃了”,表示你没吃
你回复“没吃”,表示你吃了

评分

参与人数 3星屑 +45 +1 收起 理由
VIPArcher + 30 认可答案
fux2 + 15 认可答案
miantouchi + 1 说的很对,明白了!

查看全部评分

回复 支持 反对

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-16 16:52

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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