‫你好, 欢迎｡
‫在这堂课中, 我们将学习布尔运算符, 这样我们就可以做出复杂的语句,
‫需要多个布尔值才能为真, 比如说, 只有当一个滴水嘴是正确的标签, 并且它没有被抓住时,
‫它才被接受｡
‫所以当我放开石像鬼的时候, 你可以看到墙只在那一点上有反应｡
‫让我们深入了解一下它是如何工作的｡
‫因此, 现在理想情况下, 我们希望触发器组件忽略或不接受当前正在被抓取的可接受参与者｡
‫为了改变这种情况, 我将深入到触发器组件CP中可接受的参与者实现中, 您可以在if语句中看到,
‫我们目前正在说, 如果参与者具有可接受的标记, 我们将选择它, 这是我们正在做的唯一事情｡
‫但我想做的是, 在两个条件下｡
‫如何联合收割机两个布尔值？
‫有几个选择｡
‫我们有一些运算符｡
‫其中之一是&号&号运算符, 我们读作｡
‫这基本上意味着这将是两个布尔值的组合, 所以只有当它们都为真时才为真｡
‫所以如果我们有true和true, 那么它就等于true｡
‫然而如果这两个都是假的, 那么如果右边的一个是假的, 那么整个事情都是假的,
‫等等｡ 这里还有另一个选择,
‫就是使用这个双杠运算符, 就像这样, 这个可以读作或｡
‫基本上这意味着如果这两个中的任何一个是真的, 那么结果就是真的｡
‫同样, 如果它们都是真的, 那么结果也将是真的｡
‫但如果两者都是假的, 那么结果也会是假的｡
‫这是我们常用的一些表达方式｡
‫我们还用了一个感叹号, 感叹号基本上把我们得到的布尔值反转了, 读作not.
‫所以你可以有false, 但是因为我在它前面加了一个结, 这个值, 这个表达式就变成了true｡
‫如果我用false来排序, 那么, 因为其中至少有一个是真的, 那么结果就是真的｡
‫所以我们在这里要做的是, 如果它有一个演员标签, 那就是可接受的行为标签,
‫但它没有.
‫所以在这种情况下, 它没有被抓取的演员标签, 那么是可以接受的｡
‫对你来说挑战太多了｡
‫如何使用我刚才解释的这三个运算符？
‫你不需要使用所有的条件, 但是你会使用哪些条件, 你会如何写出这个if语句呢？
‫好吧, 我会的
‫所以我将把它放到布尔变量中, 让它变得非常清楚｡
‫所以bool的acceptable tag等于actor的acceptable tag, 就像这样, 在行尾加一个分号.
‫现在, 另一个布尔值将是它是否被抓取, 我们可以通过以下方式得到：actor箭头actor有标记, 在这种情况下,
‫它将被抓取, 就像这样,
‫所以我们可以说, 无论它是否被抓取, 在此基础上, 然后在if中,
‫我们要说的是有可接受的标记, 所以这是&号, 而不是that's一个感叹号被抓取为so, 所以读起来相当不错, 如果你读出&号和感叹号为and
‫and not, 那么如果acceptable有acceptable标签, 并且抓取了not, 那么我们返回这个actor｡
‫让我们编译它, 看看它是否有效｡
‫现在我们按播放键｡
‫我们拿着石像鬼跑到触发区｡
‫你看, 我把滴水嘴放进去了, 但是什么也没发生, 因为我还没有把它放出来｡
‫如果我试着把石像鬼弄下来呢？
‫你去那里｡
‫我一松开它, 它就激活了它, 抓住石像鬼离开我, 它就消失在地下｡
‫在Grab a CP中有两个地方, 我们有两个if语句, 如果我们使用and,
‫or, 而不运算的话, 我们可以只有一个语句｡
‫这里的技巧之一是当你在做类似这样的事情,
‫我们检查某个东西是否不是空指针时, 另一个选择是你可以简单地删除这个不等于空指针｡
‫如果你简单地说if, 然后放入某种指针作为布尔值, 那么它会自动检查它不是空指针｡
‫如果这里有物理句柄, 如果有抓取组件, 我们就可以使用它｡
‫所以我想挑战你们把你们的if语句组合起来｡
‫所以你要把它们连接在一起, 组成一个分笔成交点｡
‫考虑一下你是否需要使用“与”､ “和”､ “和”或“,
‫或者你是否需要使用一个否定､ 一个结或一个感叹号, 然后在发布时将它们连接在一起, 测试你的功能,
‫看看它是否仍然有效｡
‫暂停视频, 开始体验｡
‫好吧, 我会的
‫欢迎回来｡
‫所以我们要利用这个,
‫因为基本上我们要在release中做的是, 如果我们有一个有效的物理句柄, 并且这个物理句柄有一个被抓取的组件, 那么我们要做这个if语句的主体｡
‫所以这样写很简单｡
‫我们可以说, 如果物理句柄和物理句柄得到了被抓取的组件, 那么我们就可以做下面的事情｡
‫这样我们就可以删除这个早期的return if语句, 使代码更短一些｡
‫现在, 你们当中的眼尖的人可能会担心, 嘿,
‫我们正在引用if语句中的这个物理句柄, 以便评估这个and语句是否应该工作｡
‫现在有了的一个特性, 它将首先计算左边的东西｡
‫如果这个东西是假的, 那么它甚至不会计算右边的东西｡
‫它不需要｡
‫它已经知道结果将是假的｡
‫它不需要进一步评估任何东西｡
‫所以这意味着, 这样做是安全的, 右边的结果是正确的, 只有左边的结果是正确的,
‫才是安全的｡
‫这是一个非常方便的属性, 当你使用指针的时候, 你会看到这个属性经常被使用,
‫首先你会检查指针, 然后你会有一个&号｡
‫和号, 然后您将使用指针在右手边｡
‫但请, 请, 请不要被诱惑, 以交换这两个左右的顺序｡
‫它不会工作的其他方式, 你会得到崩溃｡
‫现在让我们来看看分笔成交点组件, 我们在这里做的基本上是完全相同的事情｡
‫我们想检查是否有被抓取的组件｡
‫所以我们在这里可以做的是, 我们可以做物理处理和物理处理｡
‫箭头抓住组件｡
‫我们不需要这个不等于空指针来保持它的整洁, 然后我们可以继续,
‫去掉带有return的if语句, 只需要减少代码行, 保持代码的可读性高一点｡
‫好东西｡
‫在这节课中, 我们已经知道了如何在C++中使用and, or, not运算符｡
‫我们下节课再见｡