﻿1
00:00:04,550 --> 00:00:05,740
‫Olá e bem-vindo.

2
00:00:05,750 --> 00:00:11,270
‫Nesta palestra, começaremos a adicionar ainda mais funcionalidades à nossa árvore de comportamento,

3
00:00:11,270 --> 00:00:17,150
‫adicionando uma tarefa personalizada, esse valor de quadro-negro claro, que faremos totalmente personalizado em

4
00:00:17,150 --> 00:00:17,960
‫C++.

5
00:00:18,230 --> 00:00:19,970
‫Vamos mergulhar e ver como fazê-lo.

6
00:00:21,280 --> 00:00:21,440
‫OK.

7
00:00:21,460 --> 00:00:28,740
‫Então eu gostaria de expandir o comportamento desta árvore de comportamento para que possamos investigar.

8
00:00:28,750 --> 00:00:32,830
‫E uma vez que terminamos de investigar, passamos a voltar para casa.

9
00:00:33,130 --> 00:00:40,000
‫Então, vou adicionar um pequeno movimento à tarefa aqui depois, o que apenas nos retorna ao local inicial.

10
00:00:40,720 --> 00:00:47,080
‫E o que precisamos fazer para chegar lá é ter alguma noção se já visitamos o último

11
00:00:47,080 --> 00:00:48,910
‫local de jogo conhecido.

12
00:00:49,360 --> 00:00:54,430
‫E a maneira como vou fazer isso é essencialmente desbancar o último local de jogo conhecido depois

13
00:00:54,430 --> 00:00:55,360
‫de investigá-lo.

14
00:00:55,900 --> 00:01:00,730
‫Agora, se atualmente não temos uma maneira de fazer isso, mas antes de tudo, vamos criar o decorador.

15
00:01:00,910 --> 00:01:09,130
‫Então, acrescentou o decorador para investigar o quadro-negro que irá e renomeá-lo para

16
00:01:09,130 --> 00:01:10,930
‫investigar assim.

17
00:01:11,440 --> 00:01:16,360
‫E isso vai verificar se o último local conhecido está definido.

18
00:01:16,870 --> 00:01:22,810
‫E isso significa que precisamos ter algum tipo de nó que nos permita desarmar uma tecla do quadro-negro.

19
00:01:23,800 --> 00:01:25,390
‫Agora, isso ainda não existe.

20
00:01:25,390 --> 00:01:26,560
‫Eu pensei que sim, mas não.

21
00:01:26,590 --> 00:01:31,150
‫Portanto, esta é uma ótima oportunidade para mostrar como podemos criar uma tarefa personalizada.

22
00:01:31,450 --> 00:01:35,390
‫Agora, você poderia fazer isso facilmente usando plantas ou onde?

23
00:01:35,480 --> 00:01:39,760
‫Vou mostrar um pouco do Hardaway, mas aquele que lhe dá muito poder, que é fazer isso

24
00:01:39,760 --> 00:01:40,780
‫por meio de C++.

25
00:01:41,530 --> 00:01:48,670
‫Então, vamos para o nosso navegador de conteúdo principal, vá para adicionar novo e vá para a nova classe C++.

26
00:01:48,670 --> 00:01:54,220
‫E vamos querer mostrar a caixa de seleção de todas as classes e, em seguida, procuramos por B. T. Tarefa.

27
00:01:54,640 --> 00:01:56,710
‫E há muitas opções aqui.

28
00:01:57,050 --> 00:02:03,700
‫Você pode ver que muitos deles são realmente aqueles construídos em tarefas como fazer barulho ou há um movimento para aqui

29
00:02:03,700 --> 00:02:04,630
‫ou esperar.

30
00:02:05,200 --> 00:02:08,910
‫Agora você pode dar uma olhada no C++ para ver como eles são implementados.

31
00:02:08,920 --> 00:02:09,850
‫Isso é sempre útil.

32
00:02:10,270 --> 00:02:13,660
‫Mas o que nos interessa é do que devemos herdar?

33
00:02:13,660 --> 00:02:16,930
‫O que devemos usar como base para nosso próprio nó?

34
00:02:17,410 --> 00:02:18,970
‫Agora há algumas opções aqui.

35
00:02:18,980 --> 00:02:25,360
‫Você pode optar por ter um nó de tarefa como base ou usar a base do quadro-negro.

36
00:02:25,390 --> 00:02:26,830
‫Agora, qual é a diferença entre os dois?

37
00:02:27,520 --> 00:02:28,390
‫Vamos dar uma olhada rápida.

38
00:02:28,780 --> 00:02:31,890
‫Então vá para realmente usa a base do quadro-negro.

39
00:02:31,900 --> 00:02:39,070
‫E o que isso significa é que ele tem esse menu suspenso de teclas do quadro-negro que nos permite escolher uma tecla do

40
00:02:39,070 --> 00:02:40,060
‫quadro-negro para trabalhar.

41
00:02:40,300 --> 00:02:45,880
‫Isso significa que não precisamos codificar em nossa tarefa as teclas do quadro-negro com as quais estamos trabalhando, o

42
00:02:45,880 --> 00:02:49,750
‫que é ótimo porque nos permite reutilizar essas tarefas em diferentes situações.

43
00:02:50,110 --> 00:02:54,740
‫Portanto, se você precisar de uma chave de quadro-negro, a base de quadro-negro é uma ótima opção.

44
00:02:54,760 --> 00:02:56,410
‫Caso contrário, você usa o outro.

45
00:02:56,890 --> 00:03:02,300
‫Então vamos adicionar novo adicionar uma nova classe C++ novamente, mostrar todas as classes e estamos procurando a

46
00:03:02,440 --> 00:03:03,520
‫tarefa beat novamente.

47
00:03:03,520 --> 00:03:06,670
‫E ainda estamos selecionando o próximo hit Blackboard Base.

48
00:03:07,000 --> 00:03:14,410
‫Agora vou renomear isso para Beat Task, sublinhando o valor do quadro-negro claro.

49
00:03:15,370 --> 00:03:18,160
‫Eu vou em frente e criar essa classe aqui.

50
00:03:18,850 --> 00:03:20,410
‫Agora, inicialmente, isso falhará.

51
00:03:20,410 --> 00:03:20,920
‫Então vamos clicar.

52
00:03:20,920 --> 00:03:23,230
‫Sim e veja qual é a mensagem de erro aqui.

53
00:03:23,770 --> 00:03:30,040
‫Está dizendo algo sobre L e K, que significa link não resolvido, símbolo externo, blá, blá, blá.

54
00:03:30,070 --> 00:03:35,500
‫Normalmente quando você tem esse tipo de erro do linker, isso está dizendo que você

55
00:03:35,500 --> 00:03:43,000
‫tem algo na sua cabeça de arquivos que não estava no seu C++ ou neste caso significa que não há um módulo

56
00:03:43,000 --> 00:03:44,560
‫incluído que estamos confiando.

57
00:03:45,010 --> 00:03:51,970
‫E com base nos tipos de símbolos que está procurando, posso ver aqui que é a interface do proprietário da tarefa de jogabilidade da

58
00:03:51,970 --> 00:03:52,510
‫IA.

59
00:03:53,050 --> 00:03:58,870
‫Parece estar procurando algo a ver com as tarefas do jogo e isso é um módulo na verdade.

60
00:03:58,880 --> 00:04:05,740
‫Então, se formos para o código do Visual Studio e apenas abrirmos o navegador de arquivos, ele rolará

61
00:04:05,740 --> 00:04:07,030
‫até meu projeto.

62
00:04:07,360 --> 00:04:12,210
‫Então, sob o atirador simples de origem, deve haver uma construção de ponto de atirador simples, ponto C.

63
00:04:12,280 --> 00:04:14,350
‫Então, qualquer que seja o nome do seu projeto, é Dot Builders.

64
00:04:14,350 --> 00:04:14,650
‫Sim.

65
00:04:15,130 --> 00:04:21,160
‫E aqui, se eu nos der um pouco mais de espaço, você pode ver que temos essas dependências públicas, nomes

66
00:04:21,160 --> 00:04:22,030
‫de módulos.

67
00:04:22,180 --> 00:04:29,470
‫E o nome do módulo aqui que queremos adicionar a esta lista será o jogo.

68
00:04:30,920 --> 00:04:37,370
‫Tarefas com um S e se formos em frente e adicionarmos isso e voltarmos e compilarmos agora, esperamos que tudo

69
00:04:37,370 --> 00:04:40,040
‫seja compilado com sucesso por qualquer motivo.

70
00:04:40,040 --> 00:04:44,480
‫Isso não é adicionado automaticamente quando você substitui a tarefa de batida.

71
00:04:44,720 --> 00:04:48,470
‫Agora, uma vez feito isso, vamos dar uma olhada no que foi criado aqui.

72
00:04:49,100 --> 00:04:56,480
‫Devemos ter uma nova classe, que é nossa tarefa beta, clipe de sublinhado, valor de quadro-negro.

73
00:04:56,840 --> 00:04:58,910
‫E está bem vazio no momento.

74
00:04:59,420 --> 00:05:05,090
‫Agora, o que eu quero fazer é adicionar isso à nossa árvore de comportamento no momento, ele teria

75
00:05:05,090 --> 00:05:06,140
‫um nome feio.

76
00:05:06,440 --> 00:05:09,920
‫Então, queremos um bom nome legível por humanos para essa tarefa.

77
00:05:10,280 --> 00:05:14,660
‫E a maneira como faremos isso é adicionando um construtor e definindo uma propriedade.

78
00:05:14,660 --> 00:05:17,330
‫Então vamos criar um construtor público aqui.

79
00:05:17,990 --> 00:05:21,350
‫O construtor sempre tem o mesmo nome da classe, então podemos copiar isso.

80
00:05:21,600 --> 00:05:26,660
‫Ele não precisa levar nenhum argumento ponto-e-vírgula no final e então vamos criar a

81
00:05:26,660 --> 00:05:27,950
‫implementação no C++.

82
00:05:28,640 --> 00:05:33,920
‫E a implementação só precisa definir uma variável chamada nome do nó.

83
00:05:34,280 --> 00:05:40,760
‫Portanto, se você definir o nome do nó e usar uma string, a string que definimos será o nome do nó.

84
00:05:40,760 --> 00:05:42,920
‫Então vai ser um quadro-negro claro.

85
00:05:44,120 --> 00:05:48,710
‫Valor apenas com os espaços na capitalização correta deve ser agradável e fácil.

86
00:05:48,740 --> 00:05:54,020
‫Agora, uma coisa que eu esqueci de fazer na hora da gravação é cercar isso pela macro de texto.

87
00:05:54,350 --> 00:05:59,540
‫Agora, você deve ir em frente e fazer isso no seu código, mas você verá que no meu código ele

88
00:05:59,840 --> 00:06:01,220
‫vai persistir e ficar assim.

89
00:06:01,850 --> 00:06:04,940
‫E devemos ser capazes de compilar isso agora.

90
00:06:06,680 --> 00:06:08,900
‫Impressionante que compilou com sucesso.

91
00:06:09,470 --> 00:06:11,960
‫Então eu desafio você a adicionar este novo nó.

92
00:06:12,290 --> 00:06:17,030
‫Portanto, adicione-o ao final do comportamento da investigação e verifique se ele é concluído.

93
00:06:17,030 --> 00:06:22,370
‫Basicamente, ele deve ser concluído automaticamente sem fazer nada, mas verifique se o nome está

94
00:06:22,370 --> 00:06:22,970
‫correto.

95
00:06:22,970 --> 00:06:26,210
‫Eles podem adicioná-lo e veremos como adicionar o comportamento na próxima aula.

96
00:06:26,220 --> 00:06:27,320
‫Então pause o vídeo e experimente.

97
00:06:28,640 --> 00:06:29,080
‫OK.

98
00:06:29,090 --> 00:06:29,630
‫Bem vindo de volta.

99
00:06:29,690 --> 00:06:35,600
‫Então vamos para Enemy II e adicionar no final do comportamento de investigação.

100
00:06:35,600 --> 00:06:39,380
‫Vamos adicionar nosso valor de quadro-negro claro.

101
00:06:39,380 --> 00:06:41,210
‫Você pode ver que tem o nome bonito lá.

102
00:06:41,630 --> 00:06:45,590
‫E você também pode ver que, se for para o painel de detalhes, poderá selecionar uma tecla do quadro-negro.

103
00:06:45,590 --> 00:06:47,960
‫Vamos selecionar o local de reprodução do sobrenome.

104
00:06:47,960 --> 00:06:53,180
‫Mesmo que isso ainda não faça nada, você pode ver que temos essa funcionalidade porque

105
00:06:53,180 --> 00:06:58,190
‫herdamos do Blackboard Base e vamos apenas verificar se ele é concluído automaticamente.

106
00:06:58,190 --> 00:07:00,770
‫Ele deve fazer e, em seguida, deve seguir em frente.

107
00:07:00,770 --> 00:07:06,560
‫Vamos passar para uma tarefa de pesos depois, para que possamos ver que simplesmente vai direto e

108
00:07:06,560 --> 00:07:07,790
‫é concluída automaticamente.

109
00:07:08,240 --> 00:07:17,420
‫Então, eu vou jogar, vou me esconder em uma esquina o máximo que puder, e depois vou dar uma

110
00:07:17,420 --> 00:07:23,030
‫olhada na investigação que aconteceu e, na verdade, ele me viu.

111
00:07:23,030 --> 00:07:26,930
‫Então vamos nos esconder de novo e nos esconder na esquina se eu puder.

112
00:07:28,520 --> 00:07:31,510
‫Eu vou e depois vou para eles vão.

113
00:07:31,520 --> 00:07:35,790
‫Passou direto pelo valor do quadro-negro claro, o que deve significar que foi bem-sucedido

114
00:07:35,790 --> 00:07:40,730
‫porque sabemos que se fosse uma sequência e falhasse, deve ter parado e não ido para o peso.

115
00:07:41,180 --> 00:07:42,890
‫Então está funcionando corretamente.

116
00:07:42,890 --> 00:07:48,630
‫O valor do quadro-negro claro está apenas retornando o sucesso imediatamente e aguardando o próximo passo.

117
00:07:48,650 --> 00:07:51,710
‫Vamos ver como podemos realmente adicionar a funcionalidade.

118
00:07:51,950 --> 00:07:52,550
‫vou ver lá.

