﻿1
00:00:04,390 --> 00:00:05,290
‫Olá e bem-vindo.

2
00:00:05,290 --> 00:00:11,140
‫Nesta palestra, vamos aprender sobre operadores booleanos para que possamos fazer declarações

3
00:00:11,140 --> 00:00:18,640
‫complicadas que exigem que vários booleanos sejam verdadeiros, como ter uma gárgula aceita apenas se

4
00:00:18,640 --> 00:00:23,440
‫for a tag correta e também não for capturada.

5
00:00:23,440 --> 00:00:28,780
‫Então, quando eu solto a gárgula, você pode ver que a parede só responde nesse ponto.

6
00:00:29,050 --> 00:00:30,790
‫Vamos mergulhar e ver como isso funciona.

7
00:00:32,050 --> 00:00:40,600
‫Então, agora, idealmente, gostaríamos que nosso componente de gatilho ignorasse ou não assumisse um ator aceitável que está sendo capturado

8
00:00:40,600 --> 00:00:41,920
‫no momento.

9
00:00:42,070 --> 00:00:48,790
‫Então, para mudar isso, vou descer para nossa implementação de ator aceitável no CBP do componente de

10
00:00:48,790 --> 00:00:49,440
‫gatilho.

11
00:00:50,110 --> 00:00:54,820
‫E você pode ver que se o Estado estivesse dizendo atualmente, vamos pegar um ator, se ele tiver a marca

12
00:00:54,820 --> 00:00:57,340
‫aceitável e essa é a única coisa que estamos fazendo.

13
00:00:57,790 --> 00:01:01,740
‫Mas o que eu quero fazer é condicionar isso a duas coisas.

14
00:01:01,750 --> 00:01:04,900
‫Como combinamos dois valores booleanos?

15
00:01:04,910 --> 00:01:06,250
‫Bem, há algumas opções.

16
00:01:06,250 --> 00:01:08,450
‫Temos alguns operadores para isso.

17
00:01:08,470 --> 00:01:12,850
‫Um deles é o operador e comercial e comercial, que lemos como.

18
00:01:12,850 --> 00:01:17,650
‫E isso basicamente significa que será uma combinação de dois booleanos.

19
00:01:17,650 --> 00:01:19,780
‫Então isso só é verdade se ambas forem verdadeiras.

20
00:01:20,410 --> 00:01:27,400
‫Então, se tivéssemos verdadeiro e verdadeiro, então isso seria igual a verdadeiro.

21
00:01:28,000 --> 00:01:32,890
‫Considerando que se qualquer um deles for falso, então se o da direita

22
00:01:32,890 --> 00:01:40,090
‫for falso, então a coisa toda será falsa, etc. Há outra opção aqui, que é usar este operador

23
00:01:40,090 --> 00:01:43,930
‫de barra dupla assim e este é lido como ou.

24
00:01:44,200 --> 00:01:49,570
‫E basicamente isso significa que se qualquer um desses dois for verdadeiro, então o resultado será verdadeiro.

25
00:01:49,840 --> 00:01:52,480
‫E também, se ambos forem verdadeiros, o resultado será verdadeiro.

26
00:01:52,480 --> 00:01:57,260
‫Mas se ambos forem falsos, então o resultado será falso.

27
00:01:57,490 --> 00:02:00,480
‫Então, essas são algumas das expressões comuns que usamos.

28
00:02:00,490 --> 00:02:08,800
‫Uma outra coisa que usamos é o ponto de exclamação, e o ponto de exclamação basicamente inverte qualquer valor booleano

29
00:02:08,800 --> 00:02:11,680
‫que temos e lemos como não.

30
00:02:12,130 --> 00:02:18,790
‫Então você pode ter false, mas porque eu coloco um nó na frente, todo esse valor, essa expressão se

31
00:02:18,790 --> 00:02:19,780
‫torna verdadeira.

32
00:02:20,050 --> 00:02:25,810
‫E se eu ordenasse com falso, então bem, porque pelo menos um deles é verdadeiro, então

33
00:02:25,810 --> 00:02:27,380
‫o resultado será verdadeiro.

34
00:02:28,390 --> 00:02:36,220
‫Então, o que queremos fazer aqui é essencialmente dizer que, se tiver uma tag de ator, essa é

35
00:02:36,220 --> 00:02:39,910
‫a tag de ato aceitável, mas não tem.

36
00:02:40,270 --> 00:02:46,180
‫Então, neste caso e não tem a tag de ator agarrada, então é aceitável.

37
00:02:46,300 --> 00:02:47,920
‫Tantos desafios para você.

38
00:02:47,920 --> 00:02:52,300
‫Como você usaria esses três operadores que acabei de explicar?

39
00:02:52,300 --> 00:02:57,210
‫Você não precisa usar todos eles, mas quais você usaria e como você escreveria essa instrução

40
00:02:57,220 --> 00:02:57,760
‫if?

41
00:03:00,050 --> 00:03:00,350
‫OK.

42
00:03:00,350 --> 00:03:03,170
‫Então, vou colocar isso em variáveis booleanas para deixar bem claro.

43
00:03:03,500 --> 00:03:14,360
‫Então eu tenho bool que tem tag aceitável vai ser igual ao ator tem tag aceitável.

44
00:03:14,540 --> 00:03:17,690
‫Ok assim e ponto e vírgula no final da linha.

45
00:03:17,960 --> 00:03:27,530
‫Agora, outro bool será se ele é capturado e podemos obter isso indo ator arrow actor

46
00:03:28,070 --> 00:03:32,930
‫has tag e este caso será capturado assim.

47
00:03:32,990 --> 00:03:39,440
‫Então, podemos dizer que, seja ele agarrado ou não, com base nisso, então, se

48
00:03:39,440 --> 00:03:44,330
‫o que queremos dizer é aceitável, é e comercial.

49
00:03:44,330 --> 00:03:51,680
‫E comercial não é um ponto de exclamação é agarrado assim.

50
00:03:51,980 --> 00:03:59,030
‫Então, isso parece bastante bom se você ler o e comercial e o ponto de exclamação como e

51
00:03:59,030 --> 00:04:05,600
‫e não se aceitável tiver uma marca aceitável e não for capturado, então retornaremos esse ator.

52
00:04:05,810 --> 00:04:08,000
‫Vamos compilar e ver se funciona.

53
00:04:08,270 --> 00:04:14,870
‫Então vamos em frente e aperte o play bem, pegue uma gárgula e corra para a área do gatilho.

54
00:04:15,140 --> 00:04:20,450
‫E você vê, eu estou colocando a gárgula, mas nada está acontecendo porque eu não a liberei ainda.

55
00:04:20,630 --> 00:04:22,880
‫E daí se eu tentar derrubar o equipamento deles?

56
00:04:22,880 --> 00:04:23,780
‫Aqui vão eles.

57
00:04:23,830 --> 00:04:29,630
‫Assim que eu a solto, ela a ativa, tira a gárgula de mim e ela desaparece no

58
00:04:29,630 --> 00:04:30,110
‫chão.

59
00:04:30,290 --> 00:04:38,240
‫Agora, existem alguns lugares em que podemos pegar um CP onde temos instruções if onde poderíamos ter

60
00:04:38,240 --> 00:04:43,460
‫apenas um se usássemos os operadores end or e not.

61
00:04:43,730 --> 00:04:48,920
‫Então, um dos truques aqui é que quando você está fazendo algo assim, onde estamos verificando se

62
00:04:48,920 --> 00:04:55,270
‫algo não é um ponteiro nulo, a outra opção é que você pode simplesmente remover isso não igual ao ponteiro nulo.

63
00:04:55,280 --> 00:05:04,160
‫E se você simplesmente disser se e então colocar algum tipo de ponteiro como o booleano, isso verificará automaticamente que

64
00:05:04,160 --> 00:05:06,590
‫não é um ponteiro nulo.

65
00:05:06,590 --> 00:05:13,760
‫Então aqui está dizendo que se o identificador de física está disponível aqui, está dizendo que se o componente de captura está disponível,

66
00:05:14,030 --> 00:05:16,310
‫então podemos ir em frente e usá-lo.

67
00:05:16,490 --> 00:05:19,340
‫Então, vamos desafiá-lo a combinar suas declarações if.

68
00:05:19,340 --> 00:05:22,280
‫Então você vai juntá-los em componentes tecnológicos.

69
00:05:22,280 --> 00:05:28,130
‫Pense se você precisa usar o e comercial, o e comercial, o e o OU ou se você

70
00:05:28,130 --> 00:05:35,150
‫precisa usar uma negação ou um nó ou um ponto de exclamação e, em seguida, juntá-los na versão também e testar sua

71
00:05:35,150 --> 00:05:37,490
‫funcionalidade e ver se ainda funciona.

72
00:05:37,820 --> 00:05:39,530
‫Pause o vídeo e vá em frente.

73
00:05:42,810 --> 00:05:43,320
‫OK.

74
00:05:43,320 --> 00:05:44,020
‫Bem vindo de volta.

75
00:05:44,040 --> 00:05:49,950
‫Então, vamos fazer uso disso porque basicamente o que queremos fazer e liberar é

76
00:05:49,950 --> 00:05:57,510
‫dizer se temos uma alça de física válida e essa alça de física tem um componente agarrado, então queremos

77
00:05:57,510 --> 00:06:00,200
‫fazer o corpo desta declaração if.

78
00:06:00,210 --> 00:06:02,820
‫Então é bem simples escrever assim.

79
00:06:03,090 --> 00:06:12,180
‫Podemos dizer que se o identificador de física e o identificador de física são componentes capturados, podemos fazer o seguinte.

80
00:06:12,180 --> 00:06:18,390
‫Isso nos permite remover esse retorno inicial if e tornar o código um pouco mais curto.

81
00:06:18,960 --> 00:06:26,340
‫Agora, os olhos de águia entre vocês podem se preocupar que, ei, estamos fazendo referência a esse identificador

82
00:06:26,340 --> 00:06:32,100
‫físico dentro da instrução if para avaliar se essa instrução final deve funcionar.

83
00:06:32,790 --> 00:06:38,250
‫Agora há um recurso do e que avaliará a coisa à esquerda primeiro.

84
00:06:38,670 --> 00:06:43,860
‫E se essa coisa é falsa, então nem avalia a coisa à direita.

85
00:06:43,860 --> 00:06:44,760
‫Não precisa.

86
00:06:44,760 --> 00:06:47,310
‫Ele já sabe que o resultado será falso.

87
00:06:47,670 --> 00:06:49,950
‫Não precisa avaliar mais nada.

88
00:06:50,250 --> 00:06:57,510
‫Portanto, isso significa que é seguro fazer algo assim, onde o resultado à direita de uma calculadora só

89
00:06:57,510 --> 00:07:01,260
‫é seguro se o resultado à esquerda for verdadeiro.

90
00:07:01,830 --> 00:07:03,180
‫E esta é uma propriedade bastante útil.

91
00:07:03,180 --> 00:07:09,000
‫E você vê isso usado bastante quando você está usando ponteiros que primeiro você verificará o ponteiro e depois

92
00:07:09,000 --> 00:07:10,260
‫terá um e comercial.

93
00:07:10,260 --> 00:07:13,830
‫E comercial, e então você usará o ponteiro no lado direito.

94
00:07:13,830 --> 00:07:18,450
‫Mas, por favor, por favor, não fique tentado a trocar esses dois em ordem.

95
00:07:18,660 --> 00:07:22,680
‫Não funcionará ao contrário e você terá falhas.

96
00:07:23,040 --> 00:07:28,080
‫Então, vamos aos nossos componentes de tick, onde estamos essencialmente fazendo exatamente a mesma coisa.

97
00:07:28,080 --> 00:07:30,480
‫Queríamos verificar se temos componentes capturados.

98
00:07:30,840 --> 00:07:36,930
‫Então o que podemos fazer aqui é lidar com física e lidar com física.

99
00:07:37,500 --> 00:07:38,910
‫A seta agarrou o componente.

100
00:07:38,910 --> 00:07:44,370
‫Nós não precisamos que não seja igual ao ponteiro nulo para mantê-lo limpo e então podemos ir em frente e remover

101
00:07:44,370 --> 00:07:49,710
‫a instrução if com o retorno e apenas manter as linhas de código para baixo, manter a legibilidade um pouco mais

102
00:07:49,710 --> 00:07:50,190
‫alta.

103
00:07:50,460 --> 00:07:50,940
‫Coisas boas.

104
00:07:50,940 --> 00:07:57,180
‫Então, nesta palestra vimos como usar os operadores end or e not em C++.

105
00:07:57,510 --> 00:07:58,740
‫Vejo você na próxima palestra.

