Twine 2: crie jogos simples! Masterclass passo a passo (Harlowe) | Eyevenear | Skillshare

Velocidade de reprodução


1.0x


  • 0.5x
  • 0.75x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Twine 2: crie jogos simples! Masterclass passo a passo (Harlowe)

teacher avatar Eyevenear, Teacher in Audiovisuals, AI, Coding AND Pizza.

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Assista a este curso e milhares de outros

Tenha acesso ilimitado a todos os cursos
Oferecidos por líderes do setor e profissionais do mercado
Os temas incluem ilustração, design, fotografia e muito mais

Aulas neste curso

    • 1.

      ESTAS SÃO TANGAS!

      0:30

    • 2.

      Baixe os recursos

      0:56

    • 3.

      Instalação

      0:48

    • 4.

      Navegador

      1:05

    • 5.

      A passagem

      1:38

    • 6.

      Estilização básica

      1:22

    • 7.

      O princípio ( )[ ]

      3:07

    • 8.

      Marcações e dimensionamento

      1:32

    • 9.

      Link básico

      3:00

    • 10.

      O CSS

      2:29

    • 11.

      O Javascript

      0:57

    • 12.

      Link avançado

      1:55

    • 13.

      Esquerda direita, parte inferior

      1:11

    • 14.

      Variantes de macro

      1:04

    • 15.

      Variáveis

      3:01

    • 16.

      Global x local

      1:38

    • 17.

      Randomização

      1:40

    • 18.

      Conjunto vs colocação

      0:40

    • 19.

      Atrasos + ciclos de tempo

      2:08

    • 20.

      Declarações condicionais

      1:44

    • 21.

      Mais condições

      1:47

    • 22.

      Eventos

      1:13

    • 23.

      IF INSIDE SET

      2:06

    • 24.

      Ganchos

      1:24

    • 25.

      Mostrar / ocultar

      0:46

    • 26.

      Recipientes de código

      1:00

    • 27.

      Substituir conteúdo

      1:09

    • 28.

      Recarregando um gancho

      0:47

    • 29.

      Alcançar um gancho

      2:00

    • 30.

      Mapas de dados

      1:40

    • 31.

      Matrizes

      2:44

    • 32.

      Dados ao vivo

      2:50

    • 33.

      Visitas x História

      2:19

    • 34.

      Otimização de espaçamento

      2:29

    • 35.

      Mudança de cores

      0:32

    • 36.

      Tamanho + opacidade

      1:14

    • 37.

      Estilos dinâmicos

      1:25

    • 38.

      Reagir no cursor do mouse

      0:43

    • 39.

      Verbatim

      0:38

    • 40.

      Transições

      1:21

    • 41.

      Instale o áudio!

      0:44

    • 42.

      Definições (áudio)

      1:40

    • 43.

      Faça um som! (áudio)

      1:54

    • 44.

      Pare um som (áudio)

      1:12

    • 45.

      Retrigger (áudio)

      1:15

    • 46.

      Loops básicos (áudio)

      0:49

    • 47.

      Loops avançados (áudio)

      2:52

    • 48.

      Fades (áudio)

      1:18

    • 49.

      Volume em tempo real (áudio)

      0:45

    • 50.

      Crossfade (áudio)

      3:08

    • 51.

      Playlists (áudio)

      1:44

    • 52.

      Playlists embaralhadas (áudio)

      1:03

    • 53.

      Embaralhamento one-shot (áudio)

      1:32

    • 54.

      Grupos (áudio)

      1:19

    • 55.

      Procure (áudio)

      1:37

    • 56.

      Monitoramento em tempo real (áudio)

      1:20

    • 57.

      Controles globais (áudio)

      1:06

    • 58.

      Considerações de formato (áudio)

      1:19

    • 59.

      Caminhos relativos (áudio)

      1:37

    • 60.

      Pré-carregamento (áudio)

      1:32

    • 61.

      Configurador (áudio)

      2:38

    • 62.

      Integração de imagens

      1:18

    • 63.

      Reposicionamento básico

      1:02

    • 64.

      Reposicionamento relativo

      1:15

    • 65.

      Reposicionamento absoluto

      0:59

    • 66.

      Integração de vídeo

      1:52

    • 67.

      Eventos de vídeo

      2:06

    • 68.

      Noções básicas de troca de mídia em tempo real

      1:50

    • 69.

      Comandos principais

      2:37

    • 70.

      Evite repetições principais

      2:51

    • 71.

      Dicas e ideias (controles)

      1:37

    • 72.

      Entrada do gamepad

      1:15

    • 73.

      Botão para cima/para baixo

      2:26

    • 74.

      Análogos e gatilhos

      1:28

    • 75.

      Alternativa de vibração

      1:28

    • 76.

      Intensidade da vibração

      2:01

    • 77.

      Maximizar a matemática

      5:43

    • 78.

      Rodapé do cabeçalho

      1:21

    • 79.

      Condições iniciais

      0:52

    • 80.

      Ignorar o código e comentários

      0:51

    • 81.

      Espalhando

      1:45

    • 82.

      Para loops

      2:02

    • 83.

      Como fazer sandbox

      1:34

    • 84.

      Maximize as condições

      2:24

    • 85.

      Número para corda e vice-versa

      1:08

    • 86.

      Clonagem de referências

      3:21

    • 87.

      Macros personalizadas

      1:32

    • 88.

      Máquina de escrever

      2:44

    • 89.

      Exibição (macros personalizadas 2)

      1:03

    • 90.

      Faça um cronômetro!

      3:20

    • 91.

      Salve o progresso do carregamento

      3:38

    • 92.

      Punchos musicais

      11:10

    • 93.

      Mudanças de monitor (digitando o sistema de som)

      5:12

    • 94.

      Considerações finais de exportação

      1:57

    • 95.

      Preparando o jogo

      2:55

    • 96.

      Como exportar versões online

      2:57

    • 97.

      Importar fontes

      1:08

    • 98.

      Como exportar versões offline

      4:31

  • --
  • Nível iniciante
  • Nível intermediário
  • Nível avançado
  • Todos os níveis

Gerado pela comunidade

O nível é determinado pela opinião da maioria dos estudantes que avaliaram este curso. Mostramos a recomendação do professor até que sejam coletadas as respostas de pelo menos 5 estudantes.

23

Estudantes

--

Sobre este curso

AVISO: Este curso NÃO vai fazer de você um profissional da noite para o dia. Mas isso vai lhe colocar na direção certa. Se tornar um profissional requer prática consistente e paixão. Se tiver isso, também graças a ter concluído este curso, você VAI conseguir. Você tem meu total e atencioso apoio. Muito bem, vamos lá!

Ok, você é alguém que quer se comunicar.

Não é segredo que Twine é o rei dos jogos de texto à sua escolha.


Quem disse que esse tipo de jogo precisa ser básico e sem graça?

E se eu dissesse que no Twine você também pode modernizar o gênero até níveis incríveis, ou seja, criar sistemas de áudio/vídeo intrincados que permitem criar experiências altamente imersivas? Bem, agora você sabe.

O Twine pode permitir que você crie um jogo Triplo-A? NÃO!

O Twine pode permitir que você crie um jogo indie curto e imersivo que já pode se tornar viral por si só? SIM!

O problema disso é que leva muito tempo para dominar todas as facetas deste software gratuitamente, e algumas pessoas não querem esperar tanto tempo. É por isso que este trabalho é o meu presente para você:

Você vai pegar o atalho absoluto para a proficiência, e poderá alcançá-la em poucas aulas, porque vou mostrar exatamente o que você precisa e permitir que seu conhecimento expanda ao máximo.

Twine Harlowe é fácil de usar, mas é muito poderoso porque você encontra todas as maneiras de aproveitar o melhor dele. Este curso vai literalmente orientar você de não saber nada a saber tudo; então você poderá realizar seus sonhos com o esforço certo!

Seja paciente, siga as aulas lentamente e você vai perceber sua visão. Vamos lá.

Conheça seu professor

Teacher Profile Image

Eyevenear

Teacher in Audiovisuals, AI, Coding AND Pizza.

Professor

Most of the people who dunno me think i just want money,
But they're so wrong. All i truly want is Pizza!!!

I'm an Italian/Canadian Audiovisual Specialist, Game Developer AND Pizza Eater.

I've built a Top-Rated community of students in Fiverr in 3 years.

My Skillshare courses are a thoughtful present to those who normally can't afford my 1:1 classes but still wanna reach a decent level with arts.

Here's how it works:
you'll see all the things I teach,
then you won't believe it,
then you'll read what people say,
and maybe (just maybe) you'll give me a shot. If not...
well, I guess YOU'll have to teach me instead ???

I'm an Italian/Canadian
Audiovisual Specialist, Game Developer AND Pizza Eater.

Innovation c... Visualizar o perfil completo

Level: All Levels

Nota do curso

As expectativas foram atingidas?
    Superou!
  • 0%
  • Sim
  • 0%
  • Um pouco
  • 0%
  • Não
  • 0%

Por que fazer parte da Skillshare?

Faça cursos premiados Skillshare Original

Cada curso possui aulas curtas e projetos práticos

Sua assinatura apoia os professores da Skillshare

Aprenda em qualquer lugar

Faça cursos em qualquer lugar com o aplicativo da Skillshare. Assista no avião, no metrô ou em qualquer lugar que funcione melhor para você, por streaming ou download.

Transcrições

1. ESTAS SÃO TANGAS!: Ei, pessoal, estou triste. Se você está procurando uma maneira simples de criar videogames, Twine provavelmente é a resposta Especialmente se você quiser criar uma aventura de texto ou um protótipo que deseja executar em navegadores Você sabe, uma das melhores características do Twine é que ele tem uma chamada sintaxe muito intuitiva Você sempre pode acompanhar o que está fazendo e adicionar facilmente novos recursos ao jogo à medida que avança. Se você não precisa de gráficos extremamente sofisticados, eu só quero que você seja capaz de demonstrar o conceito sólido do jogo Bem, este software é basicamente para você. Então, se você estiver pronto para começar, me avise. 2. Baixe os recursos: Tudo bem, então antes de começar a fazer qualquer coisa, você precisa baixar os recursos. Tudo bem? Para fazer isso, você precisa ir até a página inicial do curso e, em seguida, simplesmente rolar até aqui, acessar os projetos aqui e depois ler a descrição e, em seguida, você verá um link especial aqui chamado clique aqui. Então, clique neste link especial e ele fornecerá uma pasta de drive que precisamos que você baixe. Então, simplesmente baixamos. Depois de baixar a pasta, basta clicar com o botão direito do mouse no arquivo e depois extrair a necessidade de digitar uma senha especial, certo? Então, deixe-me ampliar. Então a senha é Banquet 947. Sublinhado, sublinhado, sublinhado. Tudo bem. Então, em seguida, basta confirmar em alguns segundos. E temos todos os arquivos. Tudo bem. Vamos embora. 3. Instalação: Tudo bem, então para a instalação, significa apenas que você vai para Twinry Então, basta pesquisar Twinery assim. Em seguida, vá para o primeiro resultado onde vemos o ícone do aplicativo. Clique no download aqui. Em seguida, role até o fim. Se você tem Mac, precisa baixar o macOS DMG, esse cara aqui Se você tem Windows, baixe este. E em ambos os casos, você só precisa pular o processo, então basta instalá-lo regularmente, pular as coisas, confirmar confirmar e o aplicativo ficará instantaneamente disponível localmente a qualquer momento em sua máquina. É isso mesmo. 4. Navegador: A próxima etapa é instalar um desses quatro navegadores Oprah GX, chrome, edge Então, se você quiser realmente otimizar seu espaço de trabalho, você precisa instalar uma extensão chamada Love tabs Funciona em qualquer um desses quatro. E a forma como funciona é que você copia minhas configurações aqui. Deixe-me mostrar o que acontece. Se eu tentar abrir uma nova guia, ela fecha automaticamente as guias mais antigas e sempre cria uma única guia existente A razão pela qual isso é importante é que, normalmente, se você não usa essa extensão, deixe-me mostrar o que acontecerá. Quando você testa um jogo do Twin, ele começa a acumular guias sobre guias como essa, que obviamente criará um caos, Portanto, para evitar que isso aconteça, o que também seria um problema para a RAM, basta instalar esse limitador de abas como este Então, volte para um como esse. E quando você trabalha no Twine, ele mantém com segurança apenas uma guia aberta 5. A passagem: Isso é o que você verá na primeira vez que abrir o software. Aqui, as histórias são uma espécie de ganho dado aos projetos. Então, cada projeto é chamado de história, uma história, você sabe. Então, vamos criar um novo. Aqui, novo. Chame isso de detalhe um. Eu entrarei imediatamente nesse projeto. Então, ao abrir o programa, você verá todos os seus projetos como este. Clique duas vezes. Assim mesmo. Então, esse pequeno quadrado aqui é a molécula principal de qualquer projeto entrelaçado Isso é chamado de passagem. Fundamentalmente, é um contêiner que contém algo que será exibido como texto como este ou uma imagem ou vídeo, Jif ou um arquivo de áudio, qualquer lugar, e sempre estará dentro deste projeto É basicamente assim que funciona. Você coloca o conteúdo aqui e o exibe para simular como ele ficará no projeto final Nós apenas garantimos que você selecione a passagem. Nós o renomeamos como inicial. Clique aqui e, em seguida, pressione testar a partir daqui. Quando você fizer isso, ele mostrará que renderizará o teste, o resultado final no navegador, você sabe, no navegador padrão do seu sistema. E como você pode ver, podemos literalmente ver isso aqui. Então, é fácil alternar entre o navegador e o Twine 6. Estilização básica: Então, vamos voltar para fazer algumas personalizações. Por exemplo, como você pode ver, quando você entra em uma passagem, há muitos botões disponíveis. Mas, por enquanto, deixe-me explicar de forma muito simples os seis primeiros. Um, dois, três, quatro, cinco, seis. Esses seis botões aqui estão todos relacionados às principais personalizações relacionadas à aparência do texto Então, quando você divide esse texto um pouco, podemos simplesmente selecionar assim E então você clica nos estilos, como você pode ver, começamos a ver as coisas clássicas, negrito, itálico Mas se você quiser personalizá-lo um pouco mais, vamos aqui mais estilos. Começamos a ver coisas extras. Por exemplo, podemos gravá-lo ou borrá-lo ou sombreá-lo, etc. Apenas faça brilhar, por exemplo, esfregue. Além disso, temos coisas relacionadas ao movimento, então podemos fazer com que ele apareça, desapareça, gire, gire , você sabe, todas as coisas que o tornam um pouco mais interessante, versátil para qualquer caso possível todas as coisas que o tornam um pouco mais interessante, versátil para Apenas nos dê alguns tremores como esse. Tudo bem, então vamos confirmar, adicione. E agora vemos algo acontecendo. Em primeiro lugar, deixe-me mostrar o que acontece na renderização final. Nós literalmente vemos o texto com um novo estilo aplicado. É assim que é fácil personalizar o texto. Mas deixe-me mostrar o que aconteceu aqui no código. 7. O princípio ( )[ ]: Então, como você pode ver, nosso texto aqui agora está encapsulado por esses colchetes Então, fundamentalmente, quando você vê Sofi entre colchetes, você pode chamá-la de contêiner você pode chamá-la E também, antes dos colchetes, temos esses colchetes clássicos como esses , esses Contém algo chamado macro. Uma macro é algo que vai mudar a aparência ou o posicionamento ou algo relacionado à lógica do jogo. É algo que permite alterar a aparência de algo ou modular o código de fundo do jogo, você sabe, rastrear algo, rastrear uma escolha para finalizar um item sempre será obtida usando uma macro Mas, de qualquer forma, as macros sempre seguem a mesma lógica, que é exatamente assim Você cria o paraíso assim e, imediatamente depois, coloca os colchetes dela como Portanto, uma macro em 90% dos casos sempre terá essa aparência. Então, aqui, onde você coloca o nome da macro real, você pode ver que, ao começar a digitar, ela mostrará todas as possibilidades Mas, por enquanto, vamos digitar, isso é uma macro, enquanto que dentro dos colchetes estará o alvo dessa macro Esse é o alvo dessa macro. E, claro, podemos ver isso acontecendo aqui. Você sabe, nós temos essa macro aqui, que muda o texto, o estilo do texto. E para decidir o alvo, colocamos o texto dentro dos colchetes imediatamente após a macro Como você pode imaginar, há casos em que você pode empilhar várias macros uma após a outra ou uma dentro da Suponhamos que também queiramos alinhar o texto, para que possamos selecionar novamente o texto desta forma E desta vez, clicamos neste botão aqui, alinhamento. Vamos aqui, alinhamento novamente. E Lily, acabamos de selecionar o centro. Escolha um alinhamento personalizado. Vamos mantê-lo lá. Podemos expandi-lo, justificar, confirmar. Então, agora temos a macro de estilo fora de tudo. E dentro disso, temos a macro de alinhamento, que finalmente alinha o texto Então, fundamentalmente, você pode empilhar vários alteradores, várias macros uma após a outra ou dentro da outra Então, vamos testar essa passagem novamente. Como você pode ver, agora o texto não está apenas com o estilo, mas também centralizado E é basicamente assim que funciona em 90% dos casos O que eu convido você a fazer é brincar com eles, modular o estilo do texto de maneiras diferentes e você estará bastante familiarizado com Provavelmente, levará de dez a 15 minutos para entender completamente todas as possibilidades que você pode fazer com esses seis primeiros botões. Eles são trocadores bem simples. Não se preocupe com todos esses botões restantes. Eu vou te mostrar gradualmente todos esses 8. Marcações e dimensionamento: Outro botão útil que você usaria e eu recomendo usar é o botão de tamanho. Portanto, isso permitirá que você entenda melhor se algumas passagens são mais importantes do que outras. Então, basta selecionar uma passagem. Você clica no tamanho e pode escolher formas diferentes para cada passagem. Isso só permitirá que você vá imediatamente para onde há uma passagem mais robusta contendo mais coisas Outro recurso que será extremamente útil às vezes é marcar uma passagem Então, fundamentalmente, você pode rotulá-lo. Você pode dar uma cor. Portanto, para passagens que cumprem uma função específica ou que contêm um evento importante específico, você pode colorí-las assim Você entra e assina a passagem. Você vai aqui, marca e cria uma nova tag, neste caso. Então, basta chamá-lo de escolha Pv, por exemplo. Então, essas serão passagens que contêm uma escolha muito importante que determinará um final Então, nesse caso, vamos dar uma cor aqui, confirmar, e podemos ver essa passagem com essa cor. Então, à distância, saberemos imediatamente que haverá uma escolha importante no jogo. Bem, você pode praticamente usar rótulos para qualquer coisa que desejar, você sabe, passagens que precisam ser depuradas ou verificadas novamente duas vezes Mas deixe-me estragar isso. Na verdade, as tags são mais do que isso. Eles podem ser usados para realmente falar com o fio para desbloquear funções específicas 9. Link básico: Agora, deixe-me falar sobre a funcionalidade realmente essencial do Twine, que está passando por diferentes passagens Embora, tecnicamente, seja possível criar um jogo inteiro com apenas algumas passagens ou até mesmo uma toda a ação ocorra, na maioria dos casos, você precisará realmente ter várias Isso permitirá que você tenha mais organização das informações do jogo, certo? Assim, você segmentará o jogo em várias etapas, em vez de ter uma única passagem de BF que contenha muitas coisas. Então, isso é muito importante. Você só precisa clicar duas vezes nessa passagem. Vamos criar algo chamado link. Crie colchetes. E você também os fecha assim. Dentro disso, podemos digitar o nome da passagem de destino. Você pode dizer que vê que algo começa a acontecer aqui. Sala. Assim. E agora, como você pode imaginar, já vemos uma nova passagem com esse nome. Se testarmos a Sala 1, deixe-me mostrar o que acontece. Literalmente, vemos um botão chamado sala em que Lily entra na sala dois Então, se eu clicar aqui, ele vai para a sala dois. Então agora está vazio, obviamente. Para verificar se estamos realmente na sala dois, você vê essa janela aqui no canto inferior direito, chamada de janela de depuração É extremamente importante porque permitirá que você acompanhe todas as variáveis que foram rastreadas durante o jogo e você poderá ver onde está agora. Estamos exatamente na passagem chamada Sala dois. Você também pode redefinir o teste atual recarregando a página Então, se você fizer algo assim, ele será reiniciado a partir da primeira passagem. E vemos isso novamente, e agora estamos de volta à sala dois. Este botão aqui permite que você volte. Eu vou te mostrar mais tarde como desativá-lo. Se você entrar no link dessa forma e digitar hífen maior do que se digitar uma palavra personalizada, por exemplo, continue Agora, se voltarmos ao teste, teste da Sala 1, você pode ver que o botão agora aparece como continuar. Portanto, é uma palavra personalizada que podemos mudar. Mas, na verdade, ele vai para a sala dois. Então, quando clicamos nele, você pode ver aqui que estamos na sala dois. Uau. Então, isso é basicamente tudo que você precisa saber sobre cordéis Então, ok, isso foi bom. Obrigada. Basta deixar um comentário. Ok, desculpe. Só estou brincando. Obviamente, sim, existem pessoas que criam jogos inteiros usando apenas um link básico como esse. Mas, obviamente, se você quiser ter mais sistemas personalizados, se precisar de pequenas coisas que estão além 10. O CSS: Certo. Às vezes, você pode perceber que está usando um estilo específico de forma consistente para o resto da história. Portanto, para esses tipos de coisas que são válidas em escala global para todo o jogo, talvez seja sensato aplicar esse alterador apenas uma vez usando a seção CSS Então, para fazer isso, você só precisa acessar a história aqui e depois acessar a Folha de Estilo. Nesta seção, você poderá colar o código CSS. Já preparei algumas coisas básicas que você poderá fazer com muita facilidade. E basta copiar esse código de um dos documentos chamados CSS neste capítulo. Então, deixe-me explicar o que eles fazem. A barra lateral aqui permite que você desative a seta de retorno que normalmente você vê quando entra em uma passagem diferente, se você a alterar Eu posso ver que agora, se eu entrar na sala dois, vejo essa seta aqui, enquanto que se eu não colocar nenhuma, ela não mostrará nada. Então, caso você esteja escrevendo um livro , pode fazer sentido deixar isso aí. Mas caso você esteja fazendo um jogo adequado, talvez queira desativar essa possibilidade também porque ela permitirá que porque ela permitirá as pessoas trapaceiem em seu jogo Também posso mudar o telefone nesta seção, digitar exatamente o nome do telefone que eu quero. Ele usará isso automaticamente. Você também pode instalá-lo. Eu posso te mostrar mais tarde como importar telefones de um site. E é aqui que você decide a centralização padrão de um texto Então, para a esquerda, ele vai para a esquerda. Deixe-me mostrar. O mesmo se digitarmos corretamente e assim por diante. Então, por enquanto, basta digitar Center porque eu gosto. E então você pode alterar a cor padrão dos links. Então, como você pode ver aqui, basta digitar a cor específica. Você também pode digitar roxo, por exemplo, e ele ficará roxo. Assim mesmo. Se você quiser digitar um tom de cor específico, basta fornecer um código X bruto, colado aqui, o código X dessa cor Por fim, você também pode alterar a cor de quando o link será passado pelo cursor Então, deixe-me mostrar agora que é branco aqui. Então isso significa que se eu passar o mouse sobre ele, ele fica branco. Então, como você pode ver, essas são coisas muito simples, mas, na verdade, você já pode começar a ter mais poder na estilização do projeto Se você quiser alterar a cor aqui, ainda poderá fornecer uma cor personalizada, mesmo que, no nível CSS, já exista uma cor padrão decidida. E isso é tudo que você precisa saber a partir de agora para o CSS. 11. O Javascript: A seção JavaScript será útil posteriormente no curso para instalar alguns recursos extras que normalmente o Twine não é capaz de fazer Portanto, vamos usá-lo especificamente para ter música interativa, efeitos sonoros interativos e também para usar o teclado como entrada. Então, poderemos realmente usar as teclas do teclado para controlar o jogo. Então isso vai ser divertido. Além disso, há também uma biblioteca para usar o JoyPad para controlar Há coisas muito complicadas que você pode fazer simplesmente instalando bibliotecas nesta seção Mas, por enquanto, isso é tudo que você sabe. 12. Link avançado: Tudo bem, então, a menos que você esteja em uma situação que a única coisa que você precisa fazer é simplesmente deixar a passagem completamente, meio que mudar de página e ir para uma nova, às vezes você só precisa evitar o uso do link básico e, em vez disso, da versão mais flexível do link Portanto, você precisa digitar apenas uma macro como essa. Em seguida, entre aspas para mastigar, você dá o nome ao botão Então, por exemplo, saia desse lugar. E então, dentro de colchetes, podemos fazer o que quisermos acontecer Portanto, não está necessariamente saindo da passagem. Pode ser o que quisermos. Você sabe? Então, isso é basicamente um botão, e podemos fazer com que dentro desses colchetes aconteçam onde quisermos, até mesmo centenas de coisas ao mesmo tempo Vamos apenas ocupar mais espaço. Você sabe, vamos apenas ocupar um espaço como este. Então, vamos começar criando uma macro go básica. Isso vai para o quarto dois. Então, basta digitar exatamente o nome do destino. Então, agora, deixe-me te mostrar. Vai ser literalmente o mesmo que o link básico. Então, ele literalmente mostra o botão. Clicamos e vamos para a sala dois. E até agora tudo bem. Mas, na verdade, é aí que entra a vantagem Você vê esse espaço aqui, podemos inserir onde quisermos. Então, antes de sair da passagem, podemos fazer dezenas de coisas acontecerem aqui neste espaço. Podemos dizer variáveis, podemos mudar algumas variáveis. Podemos desativar alguns botões. Podemos mostrar algum conteúdo. Fundamentalmente, esse, como você pode imaginar, será o link que você usará 90% das vezes, talvez até com mais frequência É extremamente poderoso. Então, essa será a macro principal que você usará em qualquer jogo. 13. Esquerda direita, parte inferior: Fundamentalmente entrelaçado, o código é lido da esquerda para a direita e de cima para baixo Isso significa que se você colocar, por exemplo, vamos criar uma terceira passagem, chame-a de sala três, assim. E então voltamos para a sala um, inserimos uma nova, apenas uma nova macro depois da sala, assim. E então nós o chamamos de seu quarto três. Então, o código será lido da esquerda para a direita. Logicamente, devemos ir para a sala dois. Mas aqui também temos a sala três. Então, para onde vamos? Obviamente, só podemos ir a um lugar. Vamos apenas verificar. Então vamos aqui, testamos. Ok, pressione. Tudo bem, então pousamos na sala dois Fundamentalmente, como deixamos completamente essa passagem neste ponto, nesse exato ponto, o resto do código daqui em diante será completamente ignorado Se você quiser que as coisas aconteçam antes de sair da passagem, ela será colocada à esquerda do GT. 14. Variantes de macro: Para muitas macros, também existem variantes. Você sabe, existe uma espécie de versão básica, que neste caso, é apenas o link, mas existem variantes especializadas para um caso específico. Esses são tipos de coisas que você pode começar a ignorar porque são secundárias. Mas, às vezes, para economizar tempo, você pode começar a memorizar algumas delas Por exemplo, um dos casos mais comuns do link é exatamente ir para outra passagem. E como você pode imaginar, há uma versão do link chamada Link let me show you ink go to. Como você pode ver, ele mostra todas as variantes possíveis disso. Então, como você pode ver, há um chamado Link go, o. Verifique a documentação para verificar exatamente como eles funcionam. Mas eu já sei que isso funciona dando aspas para cho. Então, um será o nome do recibo e a segunda cotação para o destino. Como você pode ver, as variantes permitem que você economize espaço no código. Então, vamos testar. Tudo bem. Prossiga. Funciona. Quem. 15. Variáveis: Então, neste ponto, você provavelmente entendeu que deixar uma passagem ignora completamente todos os dados persistentes conhecidos no jogo Você provavelmente está se perguntando se existe uma maneira de realmente tornar alguns dados persistentes para tornar o jogo. Lembre-se de alguns números específicos, informações. Você precisa usar variáveis. Você precisa definir uma variável para que ela exista. Para fazer isso. Vamos criar uma passagem simples. Digamos que, quando estivermos na sala um, já salvaremos uma variável. Então, vamos usar esse conjunto de macros. Em seguida, você precisa digitar o dólar e dar um nome a essa variável. Então, por enquanto, chamamos isso de dinheiro. E então digitamos dois. Uma variável pode ser um número, então podemos simplesmente digitar zero. Então, defina o dinheiro para zero, teste. Tudo bem, veja agora, começamos a ver a variável sendo registrada com o número zero. Então funcionou. O segundo caso será uma string. Então, para fazer isso, basta digitar dois códigos e vamos digitar low. Então, neste caso, será uma string. O dinheiro é o ponto mais baixo. Tudo bem. Finalmente, terceiro caso, verdadeiro ou falso. Então, vamos digitar false. Tudo bem, então dinheiro é o valor booleano que cai. Ok, caso tenha sido registrado corretamente. Então, é uma espécie de interruptor. Você sabe, pode ser verdadeiro ou falso de uma forma muito útil. Mas é quase o mesmo se você usar apenas um zero, um ou verdadeiro ou falso, também aqui usando uma string. Todos esses três casos são intercambiáveis. Então, você só precisa desenvolver seu próprio gosto por suas variáveis e simplesmente se ater a elas. Você sabe, há casos em que você precisará de tipos específicos de variáveis. Portanto, é muito importante poder usar todos esses três, certo. E isso é tudo que você precisa saber sobre as variáveis. Esse valor poderá se transformar com o tempo na história. Digamos que queremos alterar o valor assim que clicarmos nesse link, saia. Então, cole outro aqui e coloque dinheiro nele. Então, isso significa dinheiro mais um. Vamos ver se você consegue adivinhar o que vai acontecer. Então chegamos ao quarto um. Como você pode ver, você tem dinheiro zero. E assim que você clica em sair, quem, você vê o que aconteceu? Agora se tornou um. Então é assim que você pode alterar facilmente os valores de uma variável no jogo. Esse é o primeiro caso. O mesmo princípio no caso de você usar uma corda. Então, se você digitar low e quiser alterar uma nova string assim que clicar, obviamente, isso mudará a nova string. Então, deixe-me mostrar para você que é baixo, se eu clicar. Oi Tudo bem. Isso é basicamente tudo que você precisa saber por enquanto sobre as variáveis 16. Global x local: Na verdade, existem dois tipos de variáveis. Pode ser global com o dólar. Isso vai persistir pelo resto do jogo, ou também existem variáveis locais que podem se autodestruir assim que você sair dessa passagem Você pode se perguntar por que talvez queira excluir algumas variáveis. Bem, com as variáveis locais, você pode simplesmente organizar a janela de depuração ao sair finalmente dessa passagem e deixar mais espaço para ler melhor o código para coisas mais importantes, para usar Em vez do dólar, você usa sublinhado. Tudo bem. E vamos dar um nome um pouco diferente como status. Tudo bem. Feliz. Então, agora, em teoria, quando testarmos essa passagem, teremos também um arb local, como você pode ver, temos o status registrado com a string, happy Quando eu sair dessa passagem, preste atenção neste ponto aqui. Assim que eu sair , três, dois, um. Viu o que aconteceu? A variável de status foi completamente destruída. Não existe mais. Então, é por isso que é útil usar algumas vezes as variáveis locais. Se acontecer de você usar variáveis locais, às vezes você pode ter alguns problemas adicionais. Então, a menos que faça sentido, não os use. Além disso, certifique-se de defini-las no início da passagem. Porque se você colocá-los no final, às vezes isso pode criar alguns problemas. Deixe-me tentar aqui. Talvez ainda funcione. Sim, nesse caso, ainda funciona, mas é mais sensato definir as variáveis locais o mais rápido possível Então, basta colocá-los até o topo aqui. 17. Randomização: Dois Agora, deixe-me também dizer algumas coisas para tornar a configuração de uma variável mais flexível. Então, vamos supor que você queira definir um número aleatório ao decidir o valor inicial do dinheiro. Então pronto. Mas desta vez, em vez de fornecer um valor fixo, coloque colchetes e digite coluna aleatória E aqui nós apenas definimos um intervalo. Então, por exemplo, digamos que será de 0 a 1 mil Assim, com esse truque, você pode definir números aleatórios dentro desse intervalo. Teste. Foi definido como 50. Então, se recarregarmos essa passagem, 676 543. Então, toda vez que eu recarrego a passagem, como você pode ver, reinicio o teste, e podemos ver que, toda vez, temos um teste aleatório A outra forma que é muito semelhante à aleatória é chamada de outra forma. Então, se formos aqui e mudarmos com E, assim, 500, qualquer coisa, você sabe, assim. A diferença entre aleatório e qualquer um é que, nesse caso , ele escolherá apenas um da lista que criamos. Então, deixe-me mostrar, como você pode ver, agora é zero. Novamente, zero, 100, dez, como você pode ver, ambos são semelhantes, mas são um pouco diferentes na forma como funcionam. Isso já será extremamente útil se quisermos atribuir, como um dano aleatório ou se você quiser atribuir um bônus. E, obviamente, qualquer uma delas também pode ser cordas, triste, feliz. Certifique-se de que , obviamente, você separe todos os valores com vírgulas como essa, 18. Conjunto vs colocação: OK. Às vezes, você pode sentir a necessidade de definir a variável de uma forma um pouco diferente. Para fazer isso, basta usar uma variante de set , chamada put. Assim. É basicamente a mesma coisa que definido, mas ao contrário Então, você apenas define primeiro o valor que você vai dar por polegada. Como você pode ver, é o mesmo que set, mas colocamos o valor e depois o destino. Coloque dinheiro em Happy Inch. Com a corda, feliz. Quem. Às vezes, pode fazer sentido colocar o valor real na frente do código, para que você possa ver facilmente 19. Atrasos + ciclos de tempo: Tudo bem, então vamos dedicar alguns segundos para falar sobre macros relacionadas ao tempo Suponha que queremos atrasar essa macro aqui em um certo número de segundos, certo? A maneira mais simples de fazer isso é usar depois de 3 segundos. Então três a. Você também pode colocar números de milissegundos. Depois colocamos a macro put dentro. Somente após 3 segundos que entrarmos na passagem, veremos a variável moni sendo definida Então vamos aqui. Um, dois, três? Viva. É assim que funciona. Fundamentalmente, isso meio que atrasa um evento em um certo número de segundos ou até minutos, você sabe, depende É isso mesmo. Ok, agora, em teoria, depois de 3 segundos, veremos o dinheiro se tornar um. Eles apenas dizem que queremos que isso aconteça somente depois clicarmos neste botão aqui, assim. Então, basta Lily mudar o nome para live, 3 segundos. Então, podemos finalmente transferi-lo para dentro do Link. OK. Então, vamos até aqui. Como você pode ver, não vemos nenhuma variável no momento. Então, se eu clicar aqui, OK, esperamos 3 segundos. Devemos dizer: Ok, começamos a ver o número um. E você percebe uma coisa, está começando a aumentar a cada 3 segundos. Então, a razão pela qual isso está acontecendo é que ao vivo, por padrão, é uma espécie de loop. Portanto, ele repete essa função a cada 3 segundos neste caso. Então, está aumentando infinitamente o dinheiro em um a cada 3 segundos. Então isso é uma coisa. Mas vamos supor que queremos que o evento aconteça apenas uma vez. Faça isso. Digite parênteses, pare e agora isso fará com que o evento aconteça apenas Deixe-me te mostrar. Clique em 1 segundo. Como você pode ver , simplesmente parou. Para um. Então isso é o equivalente a depois, mas muito mais flexível. 20. Declarações condicionais: Dois. Suponhamos que você queira que algo aconteça somente quando condições específicas forem atendidas. Queremos ir para uma passagem específica quando a variável Moni atingir um determinado valor mínimo, certo? Vamos apenas modificar, em primeiro lugar , esse link aqui, para que ele aumente esse número infinitamente Depois que o dinheiro tiver sido aumentado, insira uma nova macro aqui chamada I. Você acabou de quebrar uma linha como esta. Tudo bem. Então, a forma como essa macro funciona é que aqui especificamos a condição. Então, digamos que o gemido seja maior. Então, podemos usar maior, menor. Você provavelmente viu isso na escola, você sabe, maior medida é menor ou igual a. Essas são todas as possibilidades, certo? Então, por enquanto, vamos digitar mais do que três. Essa vai ser a nossa condição. Basta especificar o que acontece. Vá para uma passagem específica dentro dos colchetes. Vá para a sala três. Agora, em teoria, veremos o moni aumentar e somente quando ultrapassar três, ele irá imediatamente para a sala três Vá. Então, preste atenção nisso. Um? Dois? Três? Quatro. Ok, você viu o que aconteceu? Agora, assim que chegamos a quatro, que é maior que três, saímos da passagem e, na CNC, agora estamos na sala três Ufa. Então é assim que as condições funcionam. E você não tem ideia de quantas vezes você vai usar isso porque eles permitem que você torne sua lógica do jogo mais complexa 21. Mais condições: A macro Two I também pode monitorar várias condições. Por exemplo, você pode ir aqui no final deste if, e você só precisa digitar parênteses e depois if. Fundamentalmente, é um segundo em que você acabou de definir uma nova verificação, uma nova condição Então, primeiro de tudo, deixe-me fazer uma mudança aqui. Digamos que atribuímos dinheiro a um número aleatório, como um dado. Então vamos aqui se Moni for uma, uma. Caso contrário, se Moni for ele, che. E também para tornar isso mais claro, imprima fisicamente o texto da variável moni depois que ela for atualizada Então, vemos li se é verdadeiro ou falso. Assim. Eu só testo. Ok, vá. Então, vemos a variável um. Você vê o que aconteceu. Somente quando atinge um, imprime um como este. E o mesmo quando atinge dois aleatoriamente. Você pode ver isso. Tudo bem, dois, e novamente, quando você variável dois novamente, assim por diante, certo Digamos também que queremos ver um texto para todos os outros casos. Para fazer isso, basta fazer sexo depois de todos os sets ifs, s, que significa fazer isso em todos os outros casos que não são os anteriores, você sabe, então nem esse deus mais velho Tudo bem, odor, odor, ordem e só uma ou duas mudanças Mas em todos os outros casos, ele imprime Odor. Uau. Então, isso aumenta exponencialmente o poder de I. 22. Eventos: Até agora, meio que construímos um sistema em que combinamos a macro ativa com a macro I. Mas, na verdade, há uma macro específica que você pode usar para criar uma I online, então ela é acionada assim que a condição é atendida automaticamente Então, nós apenas o colocamos bem no fundo. Assim. Ok, isso se chama evento. E a forma como funciona é que você digita quando gemer é um, vá para a sala três Fundamentalmente, isso é o mesmo que usar um Live mais F. Ele estará pronto para acionar isso assim que a condição for Super rápido, você sabe, o mais rápido que você pode fazer. Vamos tornar isso um pouco mais interessante. Talvez diminuamos ainda mais a velocidade, mas aumentemos os números. Vamos tentar isso. Vá. Então, continua até que finalmente toquemos em um, e imediatamente vai automaticamente para a coisa que configuramos. Esse é fundamentalmente o poder da macro de eventos. Apenas um conselho, não os abuse. Você sabe, não use demais vários avant muitas vezes. Só os use se for necessário. 23. IF INSIDE SET: E se você quisesse incorporar uma condição if diretamente na definição de uma variável? Você pode fazer isso com a macro de condições. Então, vamos definir, primeiro de tudo, novamente, set mon, luando aleatoriamente de $1-100 Talvez 10.000. Tudo bem. Não sabemos se teremos apenas $1 ou 10.000. Certo. Para definir se somos ricos ou falidos, podemos fazer isso a partir daqui. Então, defina o status, digite cone. Em seguida, chame a variável, você precisa verificar. Então, dinheiro. Digamos que , se for maior que 9.000, atribuiremos a string rica e escolheremos status E então precisamos definir qual string será atribuída para todos os outros casos. Então, será o coma e dará um valor para todos os outros casos. Então, digamos que quebrou, teste. Então, agora estamos falidos porque, como você pode ver, o dinheiro recebeu apenas 1054 Então, se recarregarmos quebrado novamente, 7.000 fecham, novamente, novamente, novamente, eventualmente, ele ficará rico Vá, vá, vá. Ok. Nossa, Rich Porque, como você pode ver, o dinheiro agora é superior a 9.000. É assim que funciona. A condição é extremamente poderosa e você pode incorporá-la onde quisermos. Pode estar até mesmo dentro da impressão, e você também pode definir várias condições no mesmo cond. Bem, basta copiar isso. Vamos definir um caso intermediário que você está acima 2.000 e é menor que 9.000 Tudo bem. Então, nesse caso, podemos dizer que é tapete. Em todos os outros casos, ele estará realmente quebrado. Ok, M, porque, como você pode ver, somos 7.000. Mat, tenha cuidado com esse ponto. Mais uma vez, M, Matt. Ok, agora estamos realmente falidos porque, como você pode ver, temos apenas $69 24. Ganchos: Vamos supor que, às vezes, você precise um trecho de texto que queira ocultar e mostrar dinamicamente, ou queira ter um trecho de código que queira executar novamente somente quando quiser Para fazer coisas assim, você precisa usar ganchos. Portanto, os ganchos são basicamente miniparágrafos que são espécie de mini contêineres que podem conter algo que será exibido ou código, e eles podem Eles podem ser ocultados, exibidos ou executados novamente. Eu vou te mostrar como fazer todas essas coisas. Vamos ler uma nova passagem aqui. Primeiro, basta digitar uma linha vertical como essa. E você dá o nome desse gancho a esse contêiner. Gancho um. Então você precisa decidir se esse gancho ficará visível por padrão ou oculto por padrão? Se você quiser que isso fique visível, basta digitar um símbolo maior do que esse aqui. Em seguida, basta digitar os dois colchetes, como de costume. E como você pode ver, ele completa a função, e agora podemos digitar onde quisermos aqui quando eu visualizo esta passagem É como se eu tivesse escrito normalmente esse texto, mas agora está dentro de um gancho. Suponho que queremos que o gancho seja invisível por padrão. Bem, basta alterar esse símbolo com os parênteses fechados Não vemos nada. 25. Mostrar / ocultar: Você sempre usará uma macro chamada show. Em seguida, você digita um ponto de interrogação e nomeia o gancho. Então, gancho, um. Então, agora, como você pode ver, também há uma partida após 1 segundo. Tudo bem, um e shows. O mesmo vale para o contrário. Portanto, se por padrão estiver visível, você poderá ocultá-lo. Altere o show com a altura. Então, depois de escolher segundos, ele esconderá o gancho. Um, dois. Esconder. Como você pode imaginar, isso também pode acontecer ao vivo, com evento. Você pode usar a fantasia e encontrar novas maneiras de mostrar ou esconder um gancho de maneiras diferentes. Você sabe, fundamentalmente não há limite. 26. Recipientes de código: Ah. Outra característica incrível dos ganchos é que você também pode colocar código dentro deles Assim, você pode ocultá-lo por padrão. Se você colocar um código dentro dele, ele só será acionado, só iniciará quando você abrir o gancho, somente quando você o mostrar. Então, se, por exemplo, colocarmos algo que vai ao ar dessa forma, cada meio segundo aumenta a variável dinheiro em um e a imprime. Como está dentro, o gancho está escondido, não veremos nada quando testarmos a passagem. Vamos apenas ir até aqui. Como você pode ver , não temos nada e também não temos a variável. Mas assim que eu pressiono isso, começamos a ver a variável sendo impressa e continuando indefinidamente. Portanto, é uma espécie de caixa que contém todas as informações e só começa quando você a abre. Essa é a beleza dos ganchos. Você pode usá-los para acionar todo o avanço na própria lógica somente quando quiser. 27. Substituir conteúdo: Você também pode alterar dinamicamente o conteúdo de um gancho. Para fazer isso, você precisa usar as macros de substituição. Substitua, direcionamos o gancho ou os ganchos que precisamos trocar. Ganhe um por enquanto. Dentro dos quadrados, basta colocar o novo conteúdo que será colocado em vez do antigo Portanto, ele substituirá completamente o código antigo. Por enquanto, basta selecionar uma sequência de zeros como essa. Pressionamos ir para mostrar o conteúdo padrão e, assim que pressionamos alterar, você vê o que aconteceu? Agora vemos o novo conteúdo nesse gancho. Então, obviamente, você pode repetir essa etapa dinamicamente. Ele pode ser extremamente útil para diálogos e jogos dinâmicos ou até mesmo a partir do próprio código Apenas tenha cuidado ao usar isso com funções ao vivo. Se houver uma função ativa em andamento, talvez seja aconselhável tentar incorporar a substituição ao próprio gancho ou até mesmo certificar-se interromper a função ativa, caso contrário, ela ainda poderá estar em execução em algum lugar. 28. Recarregando um gancho: Então, como você pode ver, agora, definimos o dinheiro para oito mais dez e o imprimimos. Então, como você pode ver, isso será mostrado. Então, se executarmos essa passagem, veremos apenas o número dez, e pronto. Então, vamos supor que queremos que você crie um botão que diga a esse gancho que execute novamente esse código e, em teoria, veremos um número maior. Então, basta ir aqui, criar o Link , tentar novamente e, dentro dele, vamos colocar a macro de reexecução. Chamamos o gancho alvo, então apenas enganche um e depois vá aqui. Teste, nós temos o botão. Então, assim que eu pressiono, Who. Você vê o que acontece. Então , meio que contou tudo. Ok, repita você mesmo. 29. Alcançar um gancho: Tudo bem. E, finalmente, deixe-me mostrar uma abordagem um pouco mais avançada em que, por exemplo, você tem vários ganchos com conteúdos diferentes Vamos supor que você tenha um sistema que esconde apenas um deles por vez Para apenas discernir o destino dinamicamente sem precisar criar muitas cópias do mesmo código, uma abordagem será usar os chamados ganchos chamados macro Deixe-me mostrar como funciona. Primeiro de tudo, um botão para escolher o alvo. Então, almeje um, e usaremos uma variável chamada alvo para conectar um. Em seguida, basta copiar e colar isso para o alvo dois. Tudo bem. OK. Acabamos de criar um terceiro link que será usado para finalmente ocultar um deles. Então, apenas esconda o alvo. E aqui nós apenas brincamos de esconde-esconde. Em vez de nomear diretamente apenas um gancho, nós o tornamos dinâmico Use a nova macro, que é chamada de nome de Hooks. Esse aqui, assim. E então usamos o alvo variável desta forma. Então, fundamentalmente, o que vai acontecer é que, primeiro, pressionamos um desses botões para escolher o alvo um ou o alvo dois E então, finalmente, pressionamos o segundo botão aqui, escondemos o alvo, que automaticamente ocultará o gancho correto, acordo com o que pressionamos anteriormente aqui. Deixe-me te mostrar. Digamos que tenhamos como alvo o número. Está bem? Então você pode ver a variável aqui sendo definida. O alvo é o gancho Q. Se eu pressionar esconder o alvo, agora ele vai esconder este aqui, o segundo Nós. É assim que funciona. Deixe-me mostrar também o primeiro. Então, obviamente, se pressionarmos apenas isso sem definir uma meta, provavelmente será um erro, porque ainda não há uma meta sendo definida. Então você precisa definir a meta. Então, vamos focar em um design como esse. E agora, se nos escondermos, ele ocultará automaticamente o alvo certo. 30. Mapas de dados: Deixe-me mostrar como usar dados de pacotes. Crie uma primeira situação em que definamos um dinheiro para dez. Queremos definir automaticamente o status como falido ou rico. De acordo com esse número aqui, definimos o status money, que é a fonte da modulação do mapa de dados do DM E dentro do mapa de dados, usamos pares de valores. Portanto, para cada valor possível que possa ser atribuído ao dinheiro, retornaremos um determinado valor específico. É assim que um mapa de dados funciona. Então, vamos aqui e sabemos que o dinheiro só vai para um ou 1.000. Então, dentro do mapa de dados, podemos simplesmente digitar uma vírgula, atribuir a string, quebrada, obviamente Em seguida, conte o coma para o segundo caso, 1.000 ricos. E neste momento, podemos simplesmente imprimir o status um ou 1.000. Tudo bem. Deixe-me mostrar o que acontece. Então falido, rico, rico, rico, falido. Que cuidadosamente esse número aqui. Então, só estamos falidos quando é um. E somos ricos exatamente quando são 1.000. Nossa, essa é a beleza dos mapas de dados. Sempre tenha cuidado, pois você precisa garantir que esse mapa de dados leve em conta todos os casos possíveis. Caso contrário, ele retornará um erro. Por exemplo, digite um número estranho que não registramos no mapa de dados, como esse número aqui. Ok, imediatamente. Então agora funciona, agora funciona e, eventualmente, quebrará porque há um número que não registramos. 31. Matrizes: Caso você esteja se perguntando se existe uma maneira de ter o máximo de flexibilidade, a resposta é usar matrizes Fundamentalmente, os arrays são a forma mais geral empacotar vários tipos de dados no mesmo local Para fazer isso, muito simples. Você acabou de definir uma variável. Então você dá um nome a esse grupo de dados, escolhe a caixa um e, em seguida, escolhe A, e aqui podemos digitar onde quisermos Defina o primeiro número como um, dois, três. Então, como você pode ver, podem ser tipos mistos de valores no mesmo pacote. Isso torna os arrays extremamente flexíveis e poderosos Você os usa o tempo todo. Neste ponto, temos uma matriz que contém um, dois, três, quatro valores. Esse pacote inteiro será chamado de caixa um. Deixe-me mostrar o que acontece. Ele registrará todo o conteúdo da caixa um como elementos individuais. E você provavelmente está se perguntando o que podemos fazer com matrizes. Bem, se definirmos Ming, caixa em segundo lugar, por exemplo , assim, desse jeito. Então, fundamentalmente, com isso, vamos retirar o segundo valor da caixa e colocá-lo em dinheiro Tudo bem. Viu o que aconteceu? Acabamos de atribuir o segundo valor da caixa um ao dinheiro. Então, podemos usar o terceiro, aqui, e assim por diante. Como você pode imaginar, existe uma maneira de alterar o conteúdo de uma matriz depois de você já ter dito isso. Vamos fazer o seguinte. Depois de segundos, colocamos zero. Caixas na segunda posição. Imprimir. Tudo bem. Vamos fazer isso. Tudo bem. Agora acabamos de imprimir a segunda posição da caixa, que inicialmente era 1.000, mas depois de 2 segundos, ela foi alterada para zero. E, finalmente, outra coisa que você pode fazer com matrizes é converter cada valor dentro de uma em variáveis reais Para fazer isso, você precisa usar a macro do pacote. Então você vai aqui. Digitamos unpack box one, obviamente, entre parênteses. E aqui nós apenas digitamos novamente array. Mas desta vez, precisamos apenas digitar o nome das variáveis e atribuir cada um desses valores a. Temos um, dois, três, quatro valores, então vamos criar quatro variáveis. Então, será o valor um, e assim por diante, assim por diante. É assim que funciona. Como você pode ver, os valores um, dois, três, quatro têm, respectivamente, exatamente os números da matriz da caixa original. Isso será extremamente útil, especialmente para comandos em jogos de batalha. Mas, na verdade, ele pode ser muito usado para qualquer coisa que você desejar , nesse momento. 32. Dados ao vivo: Exibição de dados ao vivo. Você já conhece o comando print, que permite exibir na verdade algumas variáveis ou em qualquer lugar. Se você encapsulá-lo dentro do live, obviamente, criaremos uma variável de exibição, sempre atualizada para o valor mais recente, certo Então, nós já sabemos disso neste momento. Bem, se você quiser digitar algo em tempo real, você só precisa usar essa nova entrada de macro dessa forma, e só precisamos digitar para vincular desta forma Basta nomear uma variável à qual você deseja atribuir esse valor. Deixe-me mostrar como é. Nós literalmente temos uma caixa de texto onde podemos digitar onde quisermos. E você pode ver que, assim que digitamos, a variável real é atualizada com o valor que assinamos aqui com o Strick, esse valor que você digita lá pode acionar algo Se houver um evento monitorando esse valor, a segunda coisa que você pode precisar às vezes para exibir dados ao vivo é algum tipo de controle deslizante que se move de acordo com uma variável que muda ao longo do tempo, como uma barra de saúde, por exemplo, faça algo assim Você só precisa usar a macro do medidor. Então, basta digitar meter, bind e a variável da qual extrairá os valores Então, digamos a vírgula e , em seguida, certifique-se de definir o número máximo. Digamos que 100. Em seguida, coma , novamente, basta digitar X assim. É aqui que ele também será alinhado. Vai ser no centro, da esquerda para a direita. E X significa apenas para o centro automaticamente. Finalmente, vamos dar uma cor para a barra. Tão amarelo. Agora defina um valor para isso. Então, obviamente, isso vai mudar em tempo real se criarmos um após 1 segundo, ele para 15. E então criamos um segundo após esse tempo, 3 segundos. Quando reduzimos para dez assim, vamos tentar. Ok. 50? Uau. E é assim que é fácil integrar uma barra de espelho em suas passagens. Eles também podem residir , alinhados onde você quiser E, como você pode ver, essa barra não tem borda. Então, basta digitar B para R, assim. E depois sólido. E isso vai dar belas bordas sólidas que farão com que pareça mais legítimo, como uma barra de saúde real Uau, existem maneiras avançadas de personalizar essas barras. Você pode ter, por exemplo, um gradiente em que ele muda de cor de acordo com o local em que está ou alterar a forma como é preenchido Você sabe, talvez possa ser preenchido do centro até as fronteiras ou vice-versa. 33. Visitas x História: Dois, então vamos supor que queremos acionar algum evento especial na sala quatro, mas somente quando retornarmos pelo menos três vezes a essa passagem. Para fazer isso, basta colocar uma boa condição na parte inferior, como esta. Eu sento é igual ou maior que três, digamos. Depois, vamos para uma passagem secreta ou podemos acionar algo na própria página. Então, vamos entrar em uma passagem completamente secreta. Comece pela sala três. Então, quarto normal três, quarto quatro, três, quatro, três. Agora tenha cuidado. Tudo bem, como você pode ver, voltamos pela terceira vez para a sala quatro, mas, em vez disso, fomos redirecionados para uma passagem diferente Essa é a sala secreta um. É assim que você pode usar essa variável especial. Isso é muito poderoso para isso. E, finalmente, deixe-me ir um nível mais fundo. Agora, suponha que depois de passarmos pela sala secreta um, voltemos para a sala três e queremos conscientizar a sala três do fato de que entramos na sala secreta e, assim, acionar algum segredo adicional na própria sala três. Precisamos usar a história. Então vamos aqui na parte inferior da sala três. Você cria um histórico de condições IF simples em que seu nome contém. Entre aspas, digitamos o nome da passagem da qual precisamos monitorar as visitas. Então, neste caso, sala secreta um. E fora dos parênteses, basta digitar o apóstrofo S, comprimento e, finalmente, aqui podemos decidir qual é o número mínimo de visitas que acionará o basta digitar o apóstrofo S, comprimento e, finalmente, aqui podemos decidir qual é o número mínimo de visitas que acionará o segredo. Então, neste caso, apenas um maior que zero. Então, o que toda essa linha significa é que, caso passemos pela sala secreta pelo menos uma vez, acionaremos as três secretas. Eles apenas testam essa passagem. Então, na sala três, agora, como você pode ver, ainda não vemos o thras secreto se finalmente chegarmos à passagem secreta Tudo bem, vamos voltar para a sala três. E se fizermos tudo. OK. Quem, como você pode ver, foi o que aconteceu. Como acabamos de ler o segredo, sala três agora verificou se realmente passamos 34. Otimização de espaçamento: Tudo bem Então, agora vamos falar sobre espaçar adequadamente as coisas se entrelaçam Fundamentalmente, o código e o texto que serão exibidos sempre ocuparão algum espaço na página Então, em teoria, se renderizarmos isso, será exatamente um após o outro, certo. Mas se digitarmos algum código, se eu renderizar essa passagem, deixe-me mostrar o que acontece. Na verdade, ocupa espaço. O truque para reduzir automaticamente todo o espaço. Você só precisa ir até o topo da passagem digitar um bom suporte encaracolado Basta abri-lo assim. E então, na parte inferior, feche-o. Isso é chamado de colapso. E o que ele faz é exatamente usar automaticamente o mínimo de espaço possível. Deixe-me mostrar o que está acontecendo. Como você pode ver agora, ele entrou em colapso tanto que também reduziu as quebras de linha Então, meio que resolveu um problema, mas também criou um novo. Talvez queiramos preservar as quebras de linha. Você só precisa digitar a quebra de linha HTML padrão. Copie exatamente isso. É exatamente a mesma coisa. Essa faixa permite que você use as duas. Em teoria, ainda deveríamos ter Quem. A mesma coisa, mas também com o I, finalmente, ignorei completamente. Se você usar o colapso parcial, que se parece com isso, abra o colchete ondulado e depois seja igual o colchete ondulado e depois Como você pode ver, ela se torna uma função pronta. Quando você usa isso, ele só reduzirá o espaço a partir desse ponto. Em teoria, veremos os três primeiros normais porque estão completamente renderizados Os três seguintes com o colapso do espaço. Portanto, não haverá mais quebras de linha. Deixe-me tentar. Tudo bem. Então, esse também é outro truque. Portanto, para usar o espaço de colapso parcial, em algumas situações, talvez seja necessário usá-lo em vez do padrão para colapso. E deixe-me te mostrar mais uma coisa. Vamos supor que temos uma quebra de linha real como essa, mas você deseja reduzi-la sem usar o truque de colapso real. Para fazer isso apenas em linhas específicas, basta digitar a barra invertida e a próxima linha será automaticamente Então, deixe-me mostrar o que acontece exatamente com isso. Ele reduzirá automaticamente apenas a quebra de linha. 35. Mudança de cores: Neste ponto, você já sabe como redimensionar o texto das formas mais básicas Agora, deixe-me mostrar algumas coisas extras para expandir o conjunto de personalizações que você pode aplicar a um texto ou onde quiser Para alterar a cor do texto, use o hífen e, como você pode ver, sugere coisas que você poderia fazer Mas uma delas é a cor. Aqui, basta digitar onde quisermos. Roxo e, em seguida, basta encapsular o texto exatamente. Roxo. Pooh 36. Tamanho + opacidade: Vamos supor que você queira criar um pedaço de texto maior do que outro. Vamos mudar a cor do texto com o tamanho do texto. Você precisa ter cuidado porque o tamanho varia de um, o que significa que não há alteração. E então, obviamente, se inserirmos 0,5 , será metade do tamanho inicial, desse jeito. E assim por diante e assim por diante. Então, se você quiser torná-lo três vezes maior, colocar três deve decidir a opacidade de um pedaço de texto ou qualquer outro tipo de opacidade como colocar três deve decidir a opacidade de um pedaço de texto ou qualquer outro tipo de opacidade E então a mesma coisa. Então, parte de um, que é o básico, significa que não há mudança, totalmente opaco Ele está deprimido. Vamos torná-lo quase totalmente transparente. Então, 0,25 e , obviamente, vai parecer muito leve, desse jeito Como você pode imaginar, você pode combinar todas essas coisas apenas adicionando um ruído mais 0,5 opaco e também alterar a cor e digitar o ruído Além disso, adicione quaisquer outras alterações que você queira empilhar em cima da primeira Agora mostre um texto também em tamanho menor, para que você possa ver todas as propriedades empilhadas umas sobre as outras Então, mudamos a cor, a opacidade e o tamanho ao mesmo tempo 37. Estilos dinâmicos: Vamos supor que você queira tornar essas propriedades dinâmicas. Os dois casos mais comuns que você poderia usar você colocaria tudo isso em algum tipo de evento ao vivo. Então você pode colocá-lo dentro vida gigante assim, e então você apenas altera algumas variáveis ou de uma forma, você simplesmente coloca a coisa toda em um gancho, e então você pode executá-la novamente com as variáveis, eles simplesmente fazem isso. Em vez de usar os valores fixos aqui, usamos apenas variáveis. Então, literalmente aqui O P um, ok, então aqui usamos cor, tamanho único, o quê? No momento, essas variáveis têm apenas o valor padrão, que será zero. Portanto, defina os valores padrão. Portanto, você também pode adivinhar que pode simplesmente definir várias variáveis usando um único conjunto. Dito isso, vamos começar a testar esse cara, se ele funciona sozinho. Tudo bem. Agora, para poder mudar essas coisas de forma dinâmica, seria criar um evento após 2 segundos em que entramos na passagem, alterar todas essas propriedades interessantes para novos valores. Então, aumentamos o texto, assim. Nós mudamos de cor. Branco. Opacidade, escolha 0,5 Tudo bem, execute novamente um texto como este, e pronto. Então, deixe-me te mostrar uma mensagem. Um, dois, Magic. Quem. Agora você pode imaginar o quão flexível esse sistema pode se tornar. 38. Reagir no cursor do mouse: Vamos supor que temos um texto invisível, texto, cor, transparente. Então, por padrão, ele ficará invisível. Mas então, quando passarmos o mouse, esse texto ficará visível ou mudará de cor A maneira de fazer isso é usar o estilo de passar o mouse. Assim. Aqui você define qual é a mudança que vai ocorrer, altera a cor do texto para branco. Em seguida, assine o texto, consulte Teste, teste, teste. Então, agora, é invisível. Mas assim que você move o cursor sobre o texto, quem fundamentalmente, esse é outro truque que você pode integrá-lo Você pode esconder alguns segredos ou onde quiser. 39. Verbatim: Vamos supor agora que às vezes você tenha uma palavra, olá, e nós a usemos em negrito. Se renderizarmos isso, ela só mostrará a palavra em negrito, certo? Mas vamos supor que você queira ser capaz de renderizar isso incluindo as aspas aqui. Então, normalmente não há como fazer isso , a menos que você use textualmente, assim E depois basta encapsular o texto. Então, agora, ele renderizará o texto bruto desta forma. É assim que você pode excluir qualquer estilização possível, apenas o texto bruto 40. Transições: Vamos supor que temos, novamente, nossa palavra Olá. E queremos que você dê alguns movimentos. Quando esse texto aparecer ou desaparecer, basta usar a transição. As opções que você tem são as seguintes. Ok, apenas congele essa moldura porque todos esses caras que eles veem aqui são todas as opções que você pode colocar neste lugar. Bem, vamos usar shudder, e isso já aplicará movimento a essa palavra aqui Deixe-me te mostrar o teste. Ok, então você entende o que ele faz e ele será reproduzido automaticamente quando você recarregar a passagem Vamos supor que queremos ter controle sobre a velocidade dessa animação. Adicione o nove pontos positivos e vamos mudar o tempo de transição. E como você pode imaginar, vamos apenas indicar um valor em segundos, 0,5 segundos. Em vez disso, já é mais rápido, mais lento. Então, 3 segundos. Como você pode ver, será bem menor. Nossa, é isso mesmo. Você pode se divertir com as transições e os tempos. 41. Instale o áudio!: Dois para poder usar o fio de áudio, basta instalar uma biblioteca externa Go story, Javascript. E aqui, você só precisa copiar e colar o conteúdo do arquivo de texto deste capítulo. Cole aqui. Você verá esse longo texto. Não mude nada, apenas feche isso. E então faça o mesmo também para a folha de estilo. Então você abre o sleseet. Caso você já tenha algumas coisas, vá até o final aqui e cole novamente. Exatamente desse jeito. Quase uma vez, verifique o teste durante a passagem. Então você simplesmente insere algumas coisas aleatórias como essa, e isso lhe dá algum erro? Isso significa que ele está instalado corretamente. Perfeito. 42. Definições (áudio): Depois de termos a biblioteca pronta para ser usada, basta criar uma passagem especial na qual indicaremos a localização exata dos arquivos de áudio em sua unidade. Então, vamos criar uma nova passagem, nomeá-la exatamente assim. Faixas de pontos inteiros. Basta copiar exatamente esse nome. Em seguida, definiremos inicialmente onde estão todos os arquivos de áudio. Então, a forma como funciona é a seguinte: criar definir nossa primeira faixa. Dê um nome a ela, então clique em uma coluna. Espaço aqui, você só precisa colar o caminho absoluto do arquivo de áudio para obter esse caminho com muita facilidade. Um truque é o seguinte. Você acabou de abrir o navegador aqui. Então você vai onde está o arquivo de áudio. Aqui. Ok, então temos esse arquivo, por exemplo, um N P três, que é uma espécie de clique. Em seguida, basta arrastar o arquivo para o navegador exatamente aqui onde normalmente você tem os links. E veja o que acontece, eu converto automaticamente o arquivo em um caminho absoluto Você pode simplesmente confirmá-lo pelo fato de que sempre começa com o arquivo. Se começar com arquivo, significa que trabalhei. Caso não funcione, tente novamente até ver o arquivo Em seguida, copie tudo e cole em um Twine. Assim, clique em um igual a esse caminho. Aqui, esta é uma definição de faixa. Então, agora Twine sabe que o som chamado click one está lá, e agora podemos usá-lo 43. Faça um som! (áudio): Dois podem usar sons, entrar em uma passagem e criar uma espécie de passagem Você está pronto? Então, fazemos isso, onde vamos, prontos assim. E então, na passagem pronta, inserimos uma mensagem como, bem-vindo. Portanto, a macro que você usa na maioria das vezes é chamada de coluna Track Track. E não se preocupe se ela não reconhecer uma macro existente, na verdade, ela funcionará. Então, basta digitar espaço. E antes de tudo, precisamos nos referir ao nome personalizado que atribuímos à faixa. Clique aqui, como você se lembra, definimos isso primeiro como clique em um. Então, literalmente, digitamos dentro das aspas e clicamos em uma. E depois coma e damos o comando. Nós apenas jogamos assim. Então, vamos começar a partir daqui. Ok, pronto? Vá. Quem você está aqui. Então, é assim que é fácil integrar o som. Então você provavelmente está se perguntando por que integramos o som na segunda passagem e não na primeira. O motivo é que, se você quiser ter som desde o início, desde o início da história real, precisará usar uma variante desse tipo de macro aqui. Jogue sempre que possível, e agora também funcionará desde a primeira passagem. Então, se formos aqui, colamos a mesma coisa aqui. Também poderá jogar desde o início. Mas só assim que eu clicar em qualquer lugar da passagem. Você vê? Então, o motivo é que não é uma limitação do Twine, mas apenas uma questão de segurança de todos os navegadores Portanto, o som só será reproduzido após o primeiro clique do usuário. Portanto, você precisa garantir que o usuário clique na janela de qualquer forma E a partir de agora, você tem o som pronto para tocar a qualquer momento. 44. Pare um som (áudio): Dois, deixe-me mostrar um novo caso. Vamos aqui e queremos que você, antes de tudo, toque a faixa depois de clicarmos no link. Então, na verdade, vamos criar um link personalizado. Então, chame isso de play Lily. E então, dentro do link, Lully, colocamos Track E chamamos a música de um, e fazemos com que ela toque por enquanto. Então, deixe-me também criar um segundo link abaixo chamado Stop. Então você pode adivinhar O que estamos prestes a fazer com isso, você é capaz de parar uma faixa. Use exatamente a mesma lógica, mas apenas mude o jogo com stop. Então, vamos clicar aqui. Uau. Ouvimos música, revivemos por alguns segundos. E então queremos que você pare com isso. Pare. Assim mesmo. Pooh So play, stop, estão interconectados E você também pode colocar essas funções dentro dos links. 45. Retrigger (áudio): Se você quiser, não poderá reativar o som toda vez que clicar repetidamente no link, basta modificar, antes de tudo, o link. Basta fazer com que esse link possa ser repetido. Estamos apenas digitando repeat. Link, repito, sem mais nem menos. Então, em vez de desaparecer, ele ficará lá. E então, antes de tocarmos a faixa, nos certificamos de parar a faixa em si, caso ela já esteja tocando. Copie isso, coloque-o acima e troque por um bom estoque. Deixe-me te mostrar. OK. Agora vou reprimi-lo várias vezes. Você vê? Eu sou capaz de fazer isso todas as vezes que eu quiser. Portanto, ele sempre reinicia exatamente do início toda vez que eu pressiono. Então, com isso, sempre pode fazer maravilhas onde soa o clique Tudo bem. Então, vai ser uma espécie de botão de som. Tudo bem, vá aqui, certo? Todas as vezes que eu quiser. 46. Loops básicos (áudio): Ah. Ok, agora deixe-me mostrar um pequeno truque para repetir as faixas. Eles serão reiniciados automaticamente assim que terminarem. Jogue isso uma vez por enquanto. Suponha que queremos que isso seja reiniciado automaticamente. Bem, você diz a essa faixa para ativar o loop, copie esta função. Vamos colocá-lo na parte inferior, assim chamado Music Tube, e queremos que você modifique a propriedade loop. Então, loop, basta habilitá-lo informando True. Você sabe Infinitamente. Até você parar 47. Loops avançados (áudio): Fundamentalmente, você provavelmente percebe que, quando fazemos um loop do som agora , você o ouve Vai se inserir em uma pequena lacuna. Portanto, essa lacuna silenciosa que existe entre a repetição não está no som É meio que adicionado pelo navegador, o que obviamente pode ser irritante se o som não terminar em silêncio Certo, fica perceptível. A maneira de ter um loop perfeito pode ser usar, na verdade, um entrelaçado de loop personalizado Então, podemos fazer o seguinte. Deixe-me te mostrar. Converta. Um link para uma transmissão ao vivo. Para que isso funcione, você só precisa saber a duração real do arquivo que deseja repetir. Então, isso é muito importante. Nesse caso, podemos simplesmente verificar isso juntos. Vamos aqui. Então isso é longo, cerca de 1 segundo. Ok, então um por enquanto. Talvez seja um pouco mais curto. Então, toda vez que essa música ao vivo for reproduzida, obviamente, ela reativará a faixa, interrompendo-a para garantir que ela não acumule instâncias do mesmo som Ok, então pare, jogue. E, fundamentalmente, é isso. Então vá aqui. Na verdade, você sabe, basta inserir em um link. Começar. Então, fundamentalmente, assim que clicarmos no link, ele iniciará a transmissão O que reativará a faixa repetidamente. E, assim, ele terá mais controle sobre o loop. Então, deixe-me te mostrar. Ok, aqui está. Menos lacuna. E, obviamente, você pode fechá-lo ainda mais. Então, talvez ainda mais rápido, 800 milissegundos. Vamos tentar. Você sabe, então dessa forma, ele apenas fecha mais Se não for completamente aquela lacuna que você normalmente tem, caso queira anular e ter mais controle sobre o loop, esse é o truque para fazer isso Caso você esteja se perguntando como impedir que esse regatilho automático seja reproduzido, pare isso ao vivo. Se essa verificação for feita, você cria uma variável temporária. Então você dá um nome, por exemplo, loop one, e quando o loop 1 cai, ele realmente envia um sinal de parada para essa live, e também um sinal de parada para a faixa real. Tudo bem, então não podemos realmente tentar. Vamos criar o estado inicial, definir esse link verdadeiro, por padrão. Isso interromperá tudo dentro da transmissão. Deixa eu te mostrar o jogo. Eventualmente, pressionamos isso. Acabei de parar o show, e depois também a faixa em si. Então, esse é basicamente o truque. 48. Fades (áudio): Você provavelmente percebe que, ao fazer isso, ele chega instantaneamente ao volume zero, que pode criar algum tipo de cliques, que pode ser muito irritante. Deixe-me te mostrar. Você vê o que acontece? Existe esse tipo de clique porque ele chega instantaneamente a zero. Para evitar esse problema, precisamos usar algo chamado fade Os fades são basicamente automações no volume. Então, em vez de usar play, usamos apenas fade in, inserimos quanto tempo levará para fade Portanto, esse é um valor em segundos. Vamos também acabar com isso. Então, nós apenas mudamos com o fade out de 0,3 segundos. Experimente. Você vê? Não há mais cliques instantâneos. Há uma espécie de rampa no volume. Então, vamos tentar os fades mais baixos, talvez um segundo inteiro como este Vamos. Você sabe, e então ele se apaga. Então entra, sai. 49. Volume em tempo real (áudio): Também existe uma maneira de alterar o volume da faixa sem parar com isso. Em vez de fade out, vamos usar fade out. E então só precisamos especificar quanto tempo levará para chegar ao novo valor. Em seguida, especifique para qual valor em volume ele será direcionado. Todos os volumes vão de 0 a 1. A música 1 diminuirá para 0,5 em 1 segundo. Apenas torne-o ainda mais silencioso, talvez 0,25. E também um pouco mais rápido. Vamos para a direita. Ok. Pronto? Ah. Você está vendo? Eu me tornei coro. Então essa é a beleza de fade two. 50. Crossfade (áudio): Dois. Tudo bem, agora vou mostrar um uso um pouco mais avançado dos fades Suponha que o personagem tenha problemas, então queremos fazer com que a música reflita o fato de que o personagem está prestes a morrer, está grandes danos ou está submerso, algo parecido Para criar esse efeito, crie duas versões da mesma faixa musical. Então eu já faço isso. Aqui, apenas certifique-se de que eles reproduzam exatamente o mesmo conteúdo, mas com um efeito diferente, versão intocada Tudo bem. E depois uma versão abafada. Você sabe, tudo bem. Então, vamos criar um sistema que alterna essas duas faixas de acordo com a mudança de estado no jogo Eu já defini essas faixas. Um será chamado de normal e o outro será chamado de subaquático Vá, Scheer link normal. Antes de tudo, prepare os volumes. Portanto, precisamos garantir que a faixa normal tenha o volume padrão. Então, basta o volume um como este. Então, ao mesmo tempo, garantimos que a segunda faixa, a segunda versão subaquática , tenha o volume zero Dessa forma, podemos simplesmente continuar tocando as duas faixas ao mesmo tempo, tocando da mesma forma aqui. Mas só ouvimos um, exatamente assim. Então esse é o primeiro passo. Teste isso. Tudo bem. Então, só ouvimos um. A segunda etapa será mais fácil porque basta criar um segundo link subaquático No interior, só precisamos colocar dois tubos de desbotamento. Rastreie um normal, fade tube, zero em, digamos, em 0,2 segundos, assim Em seguida, aplicamos o mesmo comando ao subaquático. Mas, obviamente, reduzimos isso para um. Então, finalmente, do zero, nós o trazemos de volta ao volume máximo em 0,2 segundos, assim. E é por isso que é importante que essa técnica funcione para que as duas faixas sejam tocadas ao mesmo tempo desde o início, mesmo que ouçamos apenas uma. Dessa forma, eles estarão perfeitamente sincronizados. Tudo está pronto. Vamos até aqui, testar. P aqui. Normal. Yo. Woof. Você ouve? Bem, vamos também adicionar um som de clique para esconder o truque. Clique em um. Deitar. Certo, está tudo pronto. Vamos. Woof. Esse é o truque. 51. Playlists (áudio): Como você sabe, você já pode tocar vários sons, mas às vezes você pode querer organizar esses sons de uma certa maneira. A playlist reproduz as faixas sequencialmente. Então é como ABCD, EFG. O grupo toca todas as faixas ao mesmo tempo. Portanto, é muito útil colocar vários sons em camadas, criar um som maior e mais gordo Ambos obviamente se entrelaçaram, para criar uma experiência mais imersiva Então, deixe-me mostrar como usá-los. Primeiro de tudo, você precisa definir a playlist ou o grupo em qualquer lugar da passagem. Então, nova playlist. Você dá o nome desse contêiner para essa playlist. Música de fundo. Depois de dar o nome, basta listar os sons que você deseja incluir nessa playlist. Ok, e então você só precisa usar a macro da playlist. Nós direcionamos a playlist e depois enviamos o comando para começar a tocar. Você sabe o que? Vamos apenas definir um link para poder ser reativado. Quando começar a tocar, ele tocará todas essas faixas uma após a outra e depois parará, a menos que possamos reativá-lo, obviamente. Portanto, ele sempre reiniciará a partir da primeira faixa desde o início, desta forma. Tudo bem, vamos Ok, espere que isso termine. Vocês acabaram de comprar juntos. Você sabe, eu continuo, continuo com todas as faixas, você sabe, é assim que funciona, você sabe, até eu apertar isso. Então, toda vez que eu pressiono isso, reinicio a playlist inteira. 52. Playlists embaralhadas (áudio): O modo aleatório reorganiza essas faixas em uma nova ordem aleatória para permitir que isso use a playlist, nomeie a playlist, certo Lily nomeie Portanto, se você enviar esse comando apenas uma vez, ao tocar essa faixa, ela começará a partir de qualquer uma dessas três aleatoriamente e , em seguida, precederá a reprodução de todas as outras Eles serão reorganizados aleatoriamente . Isso é o que acontece. Para tornar isso ainda mais interessante, basta colocar o shuffle dentro do gatilho vermelho Então, toda vez que pressionarmos isso, uma faixa será reproduzida aleatoriamente Você vê? Assim mesmo. Então, se a deixarmos tocando, obviamente, ela continua com uma playlist completa. Mas, como você pode ver, em uma ordem aleatória, ele parará quando tocar todas as faixas. 53. Embaralhamento one-shot (áudio): Não. Então, como você pode imaginar, uma playlist embaralhada e reativada pode ser extremamente útil para sons de passos, playlist embaralhada e reativada pode ser extremamente útil para sons de passos porque se você tem o personagem e tem cerca de dez sons para todos os passos, talvez queira ter um comportamento em toque cada som aleatoriamente, que é exatamente algo que você Mas, na verdade, nesse caso específico, talvez queiramos evitar algo que a playlist faz por padrão, que é o fato de que toda vez que termina um som, continua tocando o resto da playlist, certo? Para poder dizer à playlist que reproduza apenas um som aleatório por vez e depois pare. Só precisamos colar esse código personalizado aqui. Tudo bem, deixe-me mostrar o Javascript. Só preciso que você copie esta linha aqui. Portanto, certifique-se de que esta seção aqui tenha exatamente o nome da playlist. Então, coloque o plano de fundo dentro desta seção. Então, fundamentalmente, usar apenas uma parada seguida por essa linha tornará esse comportamento possível Está bem? Puf. Você vê? E então simplesmente para e ele será reproduzido aleatoriamente. Toda vez que pressionamos esse botão. Então, isso será extremamente útil para o som de passos. Puf. 54. Grupos (áudio): Agora, deixe-me mostrar uma maneira de reproduzir facilmente várias faixas simultaneamente. Para fazer isso, precisamos usar os grupos. Então, suponha que temos essas duas faixas aqui, temos esse tipo de clique, som e, em seguida, temos esse segundo som. Então, eles simplesmente usam um grupo para organizar esses dois sons simultaneamente. Novo grupo, então damos o nome de Victory. Em seguida, listamos todos os sons. Então clique na porta desse jeito. Agora, essa passagem conhece esse grupo e podemos usá-lo. Dentro desse link incrível. Acabamos de colocar nosso grupo Victory. E então use qualquer aliado de comando igual ao da macro de faixas. Então, silencie, pause, pare, repita, todas as coisas que normalmente você pode fazer com uma faixa, você pode fazer com um grupo. Jogue por enquanto. Puf. Você ouve os dois sons ao mesmo tempo. Tudo bem. Agora você pode imaginar que isso pode ser extremamente útil para criar sons importantes no jogo. 55. Procure (áudio): Se você quiser reproduzir uma faixa exatamente de uma posição específica desde o início do arquivo, procure o comando. Suponha que queremos jogar a partir de 2 segundos desde o início. Então, aqui nós apenas digitamos 2,5 segundos e depois tocamos a faixa. Assim. Agora, vai começar a partir desse ponto e não do começo. Vamos tentar. Você vê? Não começa mais. Essa é a beleza do céu. E para tornar isso ainda mais divertido, basta fazer o seguinte. Fazemos com que isso se torne um gatilho. Em vez de usar apenas um valor fixo aqui, usamos apenas uma variável, Sk one, e definimos um valor aleatório toda vez que clicamos no link. Então vamos aqui, definimos a primeira busca, che, aleatória. Usamos um valor que vai de zero, digamos, 10.000 milissegundos, o que seria 10 segundos, certo? E então dividimos a coisa toda. Por 1.000. Então, nós o convertemos em segundos. Esse resultado irá direto para o SQ one e fará com que essa função funcione, agora ela já deve funcionar. Vamos experimentá-lo. Viu o que está acontecendo? Toda vez que eu clico, ela entra aleatoriamente em diferentes pontos da música, que pode ser muito divertido de fazer, especialmente para jogos musicais Você pode criar esse tipo de falha satisfatória em uma música 56. Monitoramento em tempo real (áudio): É possível saber em tempo real se uma faixa está tocando ou não. E, consequentemente, você pode acionar alguns eventos personalizados de acordo com isso. Para fazer isso, basta tocar essa faixa, primeiro lugar, então uma música como essa. E então, se colocarmos outra faixa onde dizemos: “I Music one is tocando”, literalmente, podemos fazer um evento personalizado. Digamos que está jogando, os outros não estão jogando. Você acabou de adicionar outro botão. Deve ser capaz de parar a pista. Só assim. Tudo bem. Ok, então agora não está jogando. Na verdade, estamos apenas em silêncio. Mas assim que eu jogar aqui, de. Você vê o que está acontecendo? É automático porque está monitorando a pista. E quando eu paro, obviamente, ele volta imediatamente para não está jogando. Então, agora você pode adivinhar que, de acordo com isso, você pode fazer com que eventos personalizados aconteçam somente quando determinadas faixas estão sendo reproduzidas ou não. Há também uma variante disso , chamada I muted. É realmente a mesma coisa, mas faz com que as coisas aconteçam somente quando a faixa está silenciada ou não. 57. Controles globais (áudio): Às vezes, você pode querer ter certeza absoluta de que, antes de iniciar uma nova pista, todo o resto para completamente. Em vez de usar apenas faixas de música de uma só vez, usamos o Master Audio e, em seguida, apenas usamos o comando top O. Vou me certificar de que isso interrompa completamente tudo antes de começar coisas novas. No momento, é o mesmo que se usássemos o Stop. Ou você pode usar isso como um botão de pânico, onde há tantas faixas acontecendo e, depois de esperar, você mata completamente todo o áudio. Também há uma variante disso. Se você segmentar o grupo chamado playing, que é um grupo pré-gertd, como você imagina, ele terá como alvo apenas as faixas que estão tocando naquele momento Isso interromperá apenas essas faixas. Então, novamente, o mesmo comportamento, mas, fundamentalmente, essas são as duas opções para parar tudo 58. Considerações de formato (áudio): Tudo bem, então vamos supor que você termine o jogo e o publique Mas ao fazer isso, você deve fazer algumas coisas em relação ao áudio. Caso contrário, não funcionará. Então, primeiro de tudo, se o jogo for baixado e, portanto, jogado localmente, você poderá usar todos os formatos que desejar. Portanto, você pode usar MP three, wave, OGG, provavelmente também Flack, a menos que, se o jogo for jogado totalmente online, você precise usar apenas OGG e Para maximizar a compatibilidade do navegador, você precisa se certificar usar duas versões para cada arquivo. Então, por exemplo, aqui para o arquivo click, temos apenas a versão mp three. Então, na verdade, isso seria um problema em alguns navegadores para garantir que ele seja totalmente compatível, e qualquer sistema só precisa converter uma segunda versão desse arquivo em OGG O nome completo desse formato é g Vorbis, assim. A extensão será semelhante a esta OGG. Em seguida, coloque o arquivo próximo ao p três e, logo aqui na definição, adicione uma boa vírgula, como esta E cole o outro caminho. Obviamente, terminará assim. O ideal é que, ao publicar o jogo, prepare uma versão dupla para cada arquivo de áudio. 59. Caminhos relativos (áudio): Tudo bem Até agora, para poder definir as faixas, usamos os chamados caminhos absolutos que indicam onde realmente o arquivo está em seu sistema. Isso é bom, desde que você esteja apenas testando o jogo. Quando você finalmente terminar o jogo inteiro e estiver pronto para publicá-lo, precisará preparar os arquivos uma forma um pouco diferente. Fundamentalmente, você só precisa entrar em uma pasta. Você acabou de preparar uma nova pasta chamada Áudio e, dentro dessa pasta, você precisa colocar todos os arquivos que você está usando. Depois de fazer isso, basta jogar o arquivo HTML que contém o jogo e, em seguida, empacotá-lo e compactá-lo em um arquivo zip Mas antes de fazer isso, você precisa fazer mais uma coisa. De volta ao Twine, depois você sai para a lista de todas as suas histórias e duplica sua história aqui, Dessa forma, você pode fazer essa alteração somente para a versão publicada da história. Então você entra na cópia de toda a história. Você entra nas definições e começa a alterar os caminhos com caminhos relativos. Então, a aparência deles é muito simples. Você acabou de mudar toda essa coisa estranha com um caminho muito mais simples que se parece com este, áudio do que o nome do arquivo E no início, certifique-se de adicionar um ponto e uma barra como esses dois E então, obviamente, ele se referirá à pasta de áudio. E, fundamentalmente, o que acontece é que seus arquivos serão automaticamente encaminhados para o lugar certo, que é exatamente nessa pasta Dessa forma, você poderá reproduzir áudio na versão publicada do jogo. Se você não fizer isso, ele nunca será reproduzido. 60. Pré-carregamento (áudio): Ao jogar o jogo totalmente online, você precisa dedicar um tempo para que as faixas sejam baixadas. Portanto, se você reproduzir muitas faixas ao mesmo tempo, talvez não tenha tempo suficiente para carregar e, portanto, o usuário simplesmente não ouvirá nenhum som. Para evitar esse problema, você precisa usar o pré-carregamento. Por padrão, todas as faixas quando você inicia o jogo já estarão pré-carregadas, mas isso levará algum tempo. Então, na verdade, quando você joga o jogo totalmente online, pelo menos integre algum tipo de tela de carregamento. Você não pode forçar o jogador a esperar, você sabe, algum tipo de dez, 15 segundos. Portanto, pelo menos 50, 60% de todas as faixas já foram pré-carregadas. E as faixas que são pré-carregadas por padrão são todas as que você define aqui nesta seção. Portanto, todos esses serão pré-carregados por padrão. Então, caso durante o jogo você não consiga definir grupos personalizados, placas personalizadas, talvez seja sensato pré-carregá-las também na própria passagem. Então, caso você defina coisas novas, meio do jogo, você precisa usar esse comando aqui. Basta digitar o áudio master e pré-carregar. É isso mesmo. Então, colocando isso em uma passagem em que há um monte de coisas novas que você está definindo, como novas playlists, novos grupos, novos sistemas, certifique-se de também integrar um desses Isso garantirá que o áudio esteja o mais pronto possível. 61. Configurador (áudio): Se você está se perguntando se existe uma maneira de esconder essa barra estranha que aparece aleatoriamente toda vez com o volume de toda a faixa master, a resposta é sim Tudo o que você precisa fazer para ocultá-lo é criar uma passagem especial chamada al config e, em seguida, copiar e colar o conteúdo que acabei preparar no documento com o mesmo nome nesta seção Para esconder essa barra, ela só precisa mudar. Mostre o controle, ela cai. mesmo vale para esse cara aqui, barra lateral, início fechado, exibição de volume real também em quedas como essa. Portanto, alterar esses três garantirá automaticamente que eles nunca mais apareçam. Nossa, sem mais nem menos. Então, nunca mais teremos aquele bar chato. Os outros controles são bem simples. Fundamentalmente, o pré-carregamento, se você colocar isso como verdadeiro, o que eu recomendo, tentará automaticamente pré-carregar todas as faixas predefinidas quando você iniciar o jogo a partir daqui, partir dessa passagem específica desfoque silencioso, como você pode imaginar, ele pausará automaticamente o áudio quando você entrar em um aplicativo diferente enquanto houver áudio no navegador Então, basta dar um exemplo. No momento, não é verdade, o que significa que se tocarmos alguma música aqui e voltarmos com barbante Viu o que aconteceu? Eu simplesmente automaticamente. Ele vai automaticamente e faz uma pausa. Já se você quiser desativar esse comportamento, basta colocar quedas. Então, aqui, você pode decidir o volume máximo possível da totalidade dos sons Como você pode ver agora, eu disse isso para escolher 0,75, mas você pode ir até um, o que significa que não há mudança E, finalmente, esses números definem a quantidade máxima de tempo que o jogo tentará dedicar à pré-carga de cada faixa no início do jogo, Não queremos que o jogo fique preso caso a Internet não seja rápida o suficiente. Assim, podemos dedicar um certo tempo ao pré-carregamento e, caso ele falhe, ele ainda continuará Então, pelo menos, o jogador ainda poderá jogar o jogo, certo? 62. Integração de imagens: Tudo bem, para poder integrar imagens e vídeos em seu jogo, você só precisa usar um código HTML bruto Alerta de estrago. Você não precisa copiar o que estou prestes a fazer manualmente, mas você encontrará tudo nos meus arquivos de texto deste capítulo. Então, basta copiá-los. Há instruções. Tudo bem, então primeiro de tudo, deixe-me mostrar como integrar uma imagem Então, entramos em uma passagem aleatória aqui. Colamos esse código incrível aqui. E a única coisa que precisa mudar o caminho absoluto da sua imagem no seu computador com a mesma verificação que vimos com os arquivos de áudio é colar aqui entre esses dois códigos. É isso mesmo. E então deixe você testar isso, certo? Puf. É isso mesmo. Então é assim que você exibe imagens. Com esse código, você pode redimensionar a imagem automaticamente apenas alterando isso com porcentagem Então, agora é 50% do tamanho original. Então, se quisermos que isso seja maior, obviamente, vamos te dar 85%. Bem, obviamente, seja maior. É isso mesmo. E manteremos automaticamente a mesma proporção e centralizaremos automaticamente a imagem e ocuparemos o máximo de espaço possível. Então, todos esses comportamentos estão todos integrados a esse código. 63. Reposicionamento básico: Se você está se perguntando se existe uma maneira de reposicionar a imagem com mais controle, existem duas maneiras A primeira é usar os métodos Harloy. Então, se você quebrar a linha, obviamente, a imagem ficará um pouco mais baixa assim, ou se você quiser ter uma disposição horizontal das imagens, basta criar duas colunas como aqui, duas ou três assim e depois passar o código aqui neste espaço Pasta numérica. Vamos deletar e mostrar como é . Assim mesmo. E então, se pré-visualizarmos, obviamente, temos as duas imagens próximas uma da outra. Essas são fundamentalmente as principais opções que você tem dentro do próprio fio Todas as coisas que você pode fazer normalmente para texto, você também pode fazer para esse código aqui se você o encapsular dentro de uma dessas macros, o mesmo para opacidade, mesmo para opacidade A maioria deles trabalha com código HTML como esse. 64. Reposicionamento relativo: Se você quiser ter maior controle sobre o posicionamento, podemos usar o CSS. Antes de fazer isso, precisamos encapsular nossa imagem dentro de um Criamos um gancho chamado imagem um. Tudo bem. Em seguida, na folha lateral, você só precisa ir até aqui, rolar até o fim, colar o código que está preparado na etapa aqui. Então, basta copiá-lo e colá-lo aqui. Certifique-se de que o nome aqui corresponda exatamente ao nome do gancho que você deseja usar com seu reposicionamento Certo, então imagem um, imagem um. Apenas alterando esses valores de pixels, ele reposicionará a camada a partir de sua posição inicial Vertical ou horizontalmente, para que, por exemplo, diminua um pouco Neste momento, zero, zero obviamente não muda. Então, se testarmos, ele estará apenas na posição padrão, certo. Então, queremos que isso fique um pouco para a direita e também um pouco para baixo, como aqui. Então, se adicionarmos 200 pixels na parte superior e 200 pixels na esquerda, agora, se testarmos, será de fato a extremidade inferior à direita. Então, isso é basicamente tudo que você já sabe, deve ser capaz de reposicionar as camadas com ainda mais precisão 65. Reposicionamento absoluto: Portanto, se você colar o próximo arquivo de texto preparado para este capítulo, notará que há duas diferenças. Isso mudou com o absoluto aqui. Então, esses dois, em vez de serem um valor em pixels, são uma porcentagem como essa. E depois há essa linha final que faz tudo funcionar. Portanto, a forma como o posicionamento absoluto funciona é que, em vez de ser ajustado a partir da posição inicial que você já atribuiu à passagem, ele realmente decidirá um ponto preciso na tela Então zero, zero agora corresponde a uma posição superior esquerda. Então, se jogarmos isso, veja se a imagem está lá. A vantagem do posicionamento absoluto é que ele sempre estará nessa posição da tela, não importa qual tela, não importa qual navegador você use. 66. Integração de vídeo: Deve ser capaz de reproduzir vídeo. Você só precisa copiar o texto que eu preparei no documento deste capítulo novamente e colá-lo aqui desta forma. E se jogarmos, como você pode ver, aqui temos novamente o caminho absoluto, muito parecido com as imagens. Se tocarmos essa passagem, não vemos nada. O motivo é que o vídeo é muito semelhante ao áudio, então você precisa ter uma passagem anterior em que você obtenha pelo menos uma primeira entrada e só então entraremos na passagem do vídeo. Finalmente vemos nosso vídeo. Uau. Assim mesmo. Para poder redimensionar o vídeo, recomendo alterar esses dois valores de largura e altura Então, basta especificar os valores desejados sobre tamanho que você deseja que esse contêiner de vídeo tenha. Dessa forma, você tem um contêiner consistente onde você pode facilmente repetir um vídeo ou alternar o vídeo a qualquer momento Sem cintilação. Será muito consistente. Então, deixe-me testar isso por enquanto. Então agora vai ser 1.000 por 250. E o bom dessa técnica é que ela evita automaticamente o alongamento. Se você fizer a altura 100. Em teoria, isso não é 60 por nove perfeitamente, mas na verdade só vai compensar até evitar o alongamento. Então, vamos tentar. Assim mesmo. Então é aí que você precisa saber como dimensionar o vídeo com segurança Obviamente, você pode reposicioná-lo com a mesma técnica com o CSS que acabei de mostrar anteriormente E a única coisa que você pode usar é decidir se esse vídeo será repetido automaticamente como um Jif ou será reproduzido apenas uma vez E para fazer isso, você só precisa remover essa palavra aqui. Agora, temos um loop aqui, remova a palavra. Você quer jogar apenas uma vez, basta verificar isso. Tudo bem, o cara dá um soco e depois para. É isso que queremos. 67. Eventos de vídeo: Em teoria, você poderia usar vídeos que contenham áudio, mas às vezes eles não são reproduzidos ou às vezes podem mostrar alguma interface que você não deseja. Para simplificar tudo isso, recomendo usar vídeos que não contenham áudio. Em vez disso, gerencie o áudio separadamente usando a biblioteca que acabamos de instalar no capítulo anterior. Dessa forma, você tem controle máximo de vídeo e áudio separadamente. Nesse ponto, a única coisa com a qual você deve ter cuidado é ter uma sincronização perfeita Suponha que você tenha um vídeo que se repete ao longo do tempo e queira reproduzir o som todas as vezes por várias vezes Se você tiver áudio e vídeo em loop separados, pode haver algum atraso que se acumule Talvez a primeira vez esteja perfeitamente sincronizada, mas depois ela se desliga progressivamente Para evitar que isso aconteça, você só precisa criar um evento de reprodução de vídeo que também possamos vincular ao áudio. Fundamentalmente, quando o vídeo é reproduzido, há áudio e vice-versa. Então, para fazer isso, vá aqui, você integra o vídeo aqui e, dentro do mesmo gancho, temos também a macro da faixa aqui, que é reproduzida. Então, agora, deixe-me mostrar o que acontece aqui. Se jogarmos a partir daqui. Temos exatamente o som de punch começando exatamente quando o vídeo começa Então, eles são extremamente unidos, sabe? E também, posso recarregar isso. Veja o que está acontecendo? Toda vez que eu pressiono o botão novamente, ele executa o gancho novamente. Deixe-me te mostrar aqui, sem mais nem menos. Então eu paro o áudio quando pressiono este link aqui novamente, então eu simplesmente reinicio o gancho. E, consequentemente, ele apenas reproduzirá o áudio e o vídeo juntos novamente, perfeitamente sincronizados 68. Noções básicas de troca de mídia em tempo real: Para poder alternar imagens e vídeos ao longo do tempo, você só precisa criar algum tipo de sistema que permita redirecionar uma nova imagem ou vídeo e exibi-lo em vez do anterior. A maneira mais rápida é substituir a imagem ou o vídeo dentro do gancho dessa forma E agora vamos simular uma mudança de alvo clicando novamente neste link aqui Vou mudar a sequência de caracteres alvo para um e dois, e ela vai se alternar. Ao mesmo tempo, aqui na parte inferior, como você pode ver, temos uma transmissão ao vivo que monitorará muito rapidamente se houver alguma alteração qualquer momento na variável alvo. E, consequentemente, como você pode imaginar, assim que a meta se tornar realidade, vou substituir o conteúdo. Imagem uma com todo o código do novo destino. E então, quando eu volto para uma, eu simplesmente substituo, novamente, pela imagem anterior le code. Eles apenas testam isso agora aqui. Tudo bem, agora vemos a Imagem 1. Assim que clicar na imagem, assim que eu mudo, você pode ver que a string agora é a do alvo. Quando eu clico em dois, você vê o que acontece? Nós apenas mudamos a imagem muito rapidamente porque essa variável aqui está sendo monitorada ao longo do tempo muito rapidamente. Esse é o truque. E sim, como você pode imaginar, é muito reativo Isso permite alternar entre imagens e vídeos muito rapidamente. Um 69. Comandos principais: Tudo bem, então para poder usar a entrada do teclado no Twine, precisamos instalar uma nova biblioteca chamada Vamos entrar na seção Javascript aqui, copiar e colar o código deste documento da seção. Basta colar todas essas coisas aqui, e pronto. Agora o Twine é capaz de usar a entrada do teclado. A forma como isso funciona é que, fundamentalmente, vamos simular um clique Entrando em um gancho. Portanto, é um processo de duas etapas. Vamos entrar em uma passagem e criar o primeiro salto de gancho como esse, para garantir que esteja visível. Dentro do gancho, vamos colocar link normal ou um link repetição ou onde quisermos, na verdade. Desde que algo possa ser pressionado, usaremos um link de repetição por enquanto. Nós chamamos isso de just go. Então, aqui dentro, podemos fazer o que quisermos acontecer. Assim, podemos mudar uma parte da lógica do jogo. Podemos acionar uma animação onde quisermos. Então, neste caso, vamos apenas alterar uma variável, definir os saltos para e mais um E então vamos criar um segundo gancho aqui que exibirá o número dentro do nosso atalho Vamos substituir o conteúdo dos contadores pelo novo número de saltos que fizemos Assim, deixe-me mostrar em tela cheia. Isso é o que parece. Então essa é a primeira parte. Então você precisa entrar no Javascript. Nós rolamos até o fim. Para cada atalho que você criar, você precisa usar essas linhas aqui Eu já me preparei para comentar para que você veja exatamente onde um vínculo começa e onde termina daqui até aqui Termina aqui começa aqui. Então, a forma como funciona é que você precisa alterar o nome do gancho. Ele precisa combinar perfeitamente com o gancho que criamos. Então, se você se lembra, foi chamado de salto. Altere esta seção aqui. Nome é igual a salto. Essa é a primeira coisa. Então, aqui, decidimos exatamente qual tecla estará pronta para ser pressionada para isso. Então, podemos usar o enter. Certo. E aqui, você pode decidir se a tecla vai acionar o gancho de salto ao pressionar ou soltar a tecla, basta trocar a tecla para cima com tecla pressionada ou vice-versa, assim. Então, por enquanto, continue assim. Tudo bem. E depois volte aqui, teste essa passagem. Então, agora, em teoria, quando eu pressiono Enter, devemos ver Quem você vê o que está acontecendo. Toda vez que eu pressiono Enter, agora, vemos o número aumentando também, a lógica. Então é assim que você cria atalhos para a entrada do teclado É realmente a maneira mais simples e rápida de fazer isso. 70. Evite repetições principais: Então, quando você usar isso, você começará a notar um certo comportamento. Quando você mantém a tecla pressionada, ela não apenas aciona a lógica toda vez que você pressiona, mas também se você mantiver a tecla pressionada, ela continuará disparando infinitamente assim Então, em alguns casos, isso pode estar bem. Metralhadora, isso pode ser perfeito. Mas em todos os outros casos, podemos querer que isso aconteça apenas uma vez. Então, imagine como fazer literalmente um personagem pular, você precisaria se certificar de que toda vez que pressionar a tecla, mesmo que a mantenha pressionada, ela só fará com que o salto aconteça uma vez e depois a recarregue somente quando você finalmente soltar a tecla Então, vamos ver como implementar o ex. Antes de tudo, precisamos alterar a repetição do link com um link e pronto. Então, um link normal. E isso já evitará as repetições porque, obviamente, se mantivermos a chave pressionada, não importa Eu só vou acontecer uma vez. É isso que queremos. Em seguida, voltamos ao nosso Javascript aqui e criamos um segundo vínculo Então, copiamos todos esses caras, criamos algum espaço, colamos. E aqui, nós apenas mudamos o alvo desse bind de jump para jump release E também, trocamos a tecla para baixo para a tecla para cima. Assim mesmo. É tudo o que precisamos fazer para corrigir isso. Voltamos à nossa passagem. Criamos para Lily um novo, chamamos isso de pular, liberar E dentro deste lugar, um belo salto vermelho. Vamos colocá-lo em um link, repito, na verdade. Então vamos aqui, Link, repito, assim. Fundamentalmente, o que vai acontecer agora é que toda vez que você pressionar a tecla Ele vai disparar o código apenas uma vez. Então, agora eu tenho a chave abaixada. E assim que eu o soltar, ele recarregará o salto, finalmente Então está aqui, o que significa que eu posso finalmente repetir um novo salto. Mas isso só acontecerá uma vez, mesmo que eu mantenha a chave pressionada como agora. Então essa é a chave, esse é o truque chave disso. E agora isso só acontecerá quando eu pressionar a tecla apenas uma vez. Como você pode ver, agora mesmo, um problema final, que é o fato de termos todos esses links estranhos que não precisamos ver Podemos simplesmente encapsular dentro de uma boa opacidade, zero. Assim, e eles desaparecerão. E então, o que eu recomendo é colocar essas teclas pressionadas na parte inferior do código, para que elas não interfiram de forma alguma nas coisas que estão acontecendo no jogo real Dessa forma, temos nosso balcão no topo da passagem e também recomendamos o colapso do espaço Tudo bem. Dessa forma, temos nosso balcão na parte superior completamente intacto, e é isso que queremos. Pooh 71. Dicas e ideias (controles): Uma maneira um pouco mais avançada de se livrar de todas essas teclas aqui embaixo é simplesmente trocá-las usando CSS Encapsule todos os atalhos dentro do gancho gigante e mova esse único gancho para outro lugar completamente diferente Dessa forma, mesmo por engano, o jogador não conseguirá pressionar esses links porque, no momento, eles estão simplesmente invisíveis. Portanto, você precisa ter certeza de que eles estão completamente ausentes. Certo. Para isso, na verdade, um truque seria simplesmente empurrá-los até a passagem desse jeito e depois bloquear o pergaminho e fazer isso. Você só precisa colar uma única linha de código no CSS. Falando sobre esse código aqui. Então você rola até o fim e cola esse cara aqui. Estouro oculto. Isso, não importa o tamanho da página, impediria que o jogador rolasse para baixo com uma roda. As mentes principais são extremamente poderosas. Apenas com esses princípios simples, você pode criar sistemas de comando realmente complexos. Você pode usar repetições de links, mas também recomendo usar links de bicicleta Se você quiser percorrer as armas ou itens que o jogador tem. Então você coloca um link de ciclismo dentro de uma repetição de link. Além disso, essa biblioteca suporta várias chaves ao mesmo tempo. Para fazer isso, Lily simplesmente vá até aqui e crie um vínculo para cada chave Dessa forma, você poderá criar sistemas que reconheçam se você está pressionando várias teclas ao mesmo tempo e, assim, acionar uma combinação específica de teclas, certo? Isso é realmente tudo com esse único truque. KeyBindhok. 72. Entrada do gamepad: Tudo bem, agora que você sabe como usar a entrada do teclado, é hora de mostrar como usar os game pads Eu criei uma minibiblioteca chamada spring. Eu vou dar para você agora mesmo. Então, basta copiar lily o arquivo que você verá agora e colá-lo aqui no JavaScript. Nossa, sem mais nem menos Então, todo esse texto é uma biblioteca de gamepad chamada spring. Os principais recursos dessa biblioteca são a capacidade de rastrear o estado de cada botão. Então, quando ele sobe e desce, você pode transformá-lo em um clique e enviá-lo para um gancho de clientes, exatamente como mantrap Segundo recurso, você pode rastrear o estado dos análogos. Então, o eixo Y e o X se tornam quatro variáveis e também os gatilhos Finalmente, você também pode acionar a vibração. E não só isso, você também pode controlar a intensidade da vibração. Então você já pode imaginar tantas coisas que agora você pode fazer, e agora deixe-me mostrar como usá-las. 73. Botão para cima/para baixo: Antes de fazer qualquer outra coisa, precisamos testar se o game pad está funcionando corretamente. Portanto, certifique-se de instalar os drivers do seu sistema para que ele funcione. Além disso, lembre-se de ativá-lo. Então, basta pressionar normalmente esse botão aqui. Dez, agora está realmente ligado. Portanto, acesse este site aqui e, se você ver as informações aparecendo aqui , elas podem estar funcionando corretamente. Então, tente mover todos os botões, pressione. Às vezes, ele não será calibrado corretamente. Então, como você pode ver, você pode ver algumas pequenas oscilações nesses números, especialmente se o controle for antigo Mas, na maioria das vezes, você vê todos esses números reagindo corretamente. Seu controlador é praticamente utilizável para isso. Ok, agora que estamos aqui, direto no código, role para baixo até ler este comentário naquele evento com o botão esquerdo pressionado. Tudo bem, aqui funciona exatamente como uma ratoeira. Você acabou de copiar o conteúdo entre esses dois comentários aqui. E você pode reconhecer que só precisamos nomear um gancho personalizado. Esse caso será chamado de jump. E então o número do índice. Portanto, o índice é exatamente o número que identifica o botão que você precisa mapear E para extrair esse número e usá-lo, a ferramenta que mostrei aqui. Então, por exemplo, agora, para o botão A, você pode ver que B zero reage significa que esse é realmente o número zero Podemos usar isso como uma informação aqui. O índice zero será o botão A. Ele enviará um clique para o gancho chamado jump quando pressionarmos A para baixo. Digamos que também queiramos fazer isso quando o A for lançado. Então, nesse caso, vamos rolar até aqui, abotoar um Bens. E a mesma coisa. Você pode reconhecer novamente os mesmos comentários aqui. Isso vai ser um obstáculo. O índice é zero. Então, A vai usar o mesmo gancho ou solta de salto. Vamos testar isso. Link de salto. OK. E o mesmo para o lançamento. Então D. Tudo bem, vamos apertar isso. Então, agora, quando eu pressiono, A passa por um clique para baixo. Quando eu o soltar, você deve pressionar para cima. Quem. É assim que é fácil mapear os eventos de alta e baixa por meio de cada botão que pode ser pressionado. 74. Análogos e gatilhos: Sim. Antes de dizer qualquer coisa, deixe-me te mostrar uma coisa. Se já testarmos essa passagem, você notará uma coisa: todas essas variáveis já são pré-geradas Esses já são feitos pelo Javascript. Os eixos X e Y, esses dois são o manípulo esquerdo. Os eixos X dois e Y são para o manípulo direito. E, finalmente, as variáveis esquerda e direita do gatilho são os dois gatilhos quando você as move lentamente para baixo. Então, todas essas seis variáveis geralmente já são geradas por qualquer controlador. Nós sempre vamos 0-1. Eles apenas os imprimem em tempo real. Ok. Agora, esses na parte superior são os dois gatilhos Como você pode ver, meu gatilho esquerdo está um pouco quebrado, então ele diz apenas um pequeno caminho o tempo todo. Mas está tudo bem. Mova o gatilho direito. Você vê esse número se movendo. Esse é o gatilho certo. Isso vai 0-1. E é dinâmico. Não é só um interruptor. mesmo para o gatilho esquerdo. Tudo bem, então eu vou passar para o manípulo esquerdo Ok, então é X e Y. Como você pode ver, é extremamente reativo E, finalmente, o manípulo direito. Tudo bem. Assim mesmo. Então, para recapitular, essas seis variáveis estão prontas e atualizadas o tempo todo, e você só precisa usá-las se quiser 75. Alternativa de vibração: Para mim, para controlar a vibração, mude a variável de alternância, que é pré-gerada, para um ou zero. Deixe-me te mostrar. Então, se você colocar isso suavemente onde, após 1 segundo, mudarmos para um exatamente 200 milissegundos depois, voltaremos a zero O resultado, como você pode imaginar, é que você tem um pequeno impulso de vibração Então, deixe-me te mostrar. Você ouve isso de novo. Então, passamos 1 segundo. A vibração permanece por 200 milissegundos e depois volta a zero, tudo controlado por essa única variável, Tuggle Agora, você já pode imaginar isso. Você pode criar vibrações automáticas sempre que estiver em um ambiente perigoso. Uma ideia pode ser compor algum tipo de ritmo, combinando várias vidas ou vidas, combinando várias vidas ou vidas, e então você meio que faz com que se tornem macros E então você pode simplesmente usá-los dentro dos botões com muita facilidade, assim. Por exemplo, criamos um chamado batimento cardíaco curto como esse, imaginando algo assim E sempre que você clicar no botão, ele também acionará aquele ritmo específico de vibração, apenas desse jeito. 76. Intensidade da vibração: Segundo, para poder controlar a intensidade da vibração, você precisa ajustar duas variáveis que são pré-geradas e ir para 0-1, magnitude fraca e, em seguida, magnitude forte Essas duas variáveis precisam fundamentalmente ficar meio próximas uma da outra de acordo com o que você deseja Então, se você quiser uma vibração realmente precisa, como você pode ver, quando eu pressiono A para baixo, ela vai para 0,85 por uma semana e é muito forte, que é o máximo. Então, quando eu solto A, agora estamos na liberação de salto, ele vai definir fraco para 0,45 e forte escolher 0,6, o que vai dar uma vibração mais leve Agora deixe-me mostrar o que está acontecendo. Vamos aqui, como vimos uma supressão A. Viu o que aconteceu? Ele fez uma vibração precisa, como você pode ver, A aqui, 0,80 51, e então eu o solto Muito leve. 0,45 e 0,6. Agora vou colocar o microfone exatamente no controlador. Tudo bem. Ok, isso foi difícil. Eu finalmente liberei. Como você pode ver, é muito sutil. Posso garantir que, embora a vibração fraca seja fraca, digamos que você ainda possa senti-la, e esse é um novo nível de expressão para seu jogo. Isso é tudo o que você precisa fazer e saber para controlar o feedback tátil do seu jogo e do Twine Eu sei que é incrível ser capaz fazer isso, mas agora você pode. 77. Maximizar a matemática: Tudo bem, agora deixe-me mostrar algumas coisas que você precisa saber para maximizar sua capacidade de gerenciar números Antes de tudo, basta criar um número simples apenas neste teste de conjunto 1,75 por enquanto Então, vamos supor que você queira ter a máxima certeza de que esse número será arredondado para o número inteiro mais próximo. Tudo o que você precisa fazer é encapsular esse número em uma boa rodada como Agora, como sabemos que o número mais próximo é Q, devemos apenas ver Q. Uau. É assim que funciona. Se tivermos 1,4, obviamente estamos mais perto de um agora. Logicamente, vemos apenas um. Em vez disso, vamos supor que você queira calcular o número absoluto, altere isso com ABS desta forma. E agora ele removerá automaticamente o pecado e fará com que ele se torne um número absoluto como este. E, finalmente, se você quiser saber se um número está acima ou abaixo de zero, encapsulamos a impressão em uma macro senoidal Portanto, agora o teste normalmente será de -2,45. Mas deixe-me te mostrar. Então, agora vemos menos um Esse número, essa variável está abaixo de zero. Se considerarmos isso positivo, ele se tornará apenas um. Portanto, você pode usar isso para divergir lógicas de maneiras diferentes se um número for acima ou menor que zero E outro truque muito útil é poder fixar uma série de números em um andar específico de seus brinquedos E queremos ter certeza de que teremos apenas cinco no máximo possível. Portanto, temos os números de 1 a 5 e apenas um será automaticamente trazido de volta para cinco no máximo. Condição de teste. E dizemos que se o teste estiver acima de cinco , obviamente nos dará cinco. Já em todos os outros casos, simplesmente retornaremos sozinhos. Então, em todos os outros casos, sabemos que seria cinco até um. Exatamente desse jeito. Assim, posso fazer isso o tempo todo que quiser, mas sempre serão cinco no máximo com segurança. Sem isso, deixe-me mostrar o que vai acontecer. Seja livre para ir acima de cinco. Mas com esse truque, reduzimos para cinco no máximo. Agora é só ir um pouco mais longe. Crie um número maluco como esse. Então, um a 10.000, dividido por um a 10.000. Então, em teoria, começaremos a obter números com grandes pontos decimais E queremos que você tenha um sistema que exiba talvez os dois primeiros pontos após o zero. Nós encapsulamos tudo isso, toda a geração variável dentro de um belo micro chamado floor Tudo bem, então primeiro de tudo, inserimos todo esse cara dentro do chão assim Então precisamos multiplicá-lo por 100 e depois dividi-lo por 100 novamente, sem mais nem menos Deixe-me mostrar o que está acontecendo. Telhado. No momento, temos apenas duas posições após o máximo zero para decidir quantos pontos decimais você deseja Depois do zero, você adiciona ou remove um zero desses dois números. Então, por exemplo, temos 1010, então é apenas 10, o que significa apenas uma posição depois de zero, desse jeito Você também pode simplificar isso apenas alterando esses dois para uma variável temporária. Então, os decimais definem aqui os decimais com a potência de dez. Esse número aqui é onde decidimos quantas posições queremos permitir que o número tenha. Então, agora, teremos apenas um decimal após o zero Vamos verificar. Exatamente desse jeito. Cinco posições. Basta atingir esse número para cinco, assim. Tudo bem. E, finalmente, deixe-me mostrar como controlar a bateria na rede aleatória de números. Então, agora, como você pode ver, você tem apenas uma sequência de números aleatórios de 1 a 10, aparecendo neste gancho cada meio segundo, sem mais nem Você sabe, apenas números aleatórios, aparecendo assim. Então, se você notar que toda vez que eu testo o jogo, ele mostra uma sequência diferente de números. Portanto, a sequência é sempre diferente toda vez que eu testo. Como você pode ver, o primeiro número é seis e depois muda novamente. Sempre diferente, certo? Portanto, em alguns casos, isso pode ser ideal porque significa que todos os números aleatórios do seu jogo serão exclusivos para cada jogador. Por outro lado, se você conceder uma experiência consistente a cada jogador, poderá gerar o chamado sed. Basta ir aqui e usar no início do jogo apenas uma vez, Seed, e depois digitar uma string. Então, vamos chamar isso de olá. Agora posso garantir que toda vez que eu jogo essa sequência aleatória. Como você pode ver 410, cinco, seis, se eu testar novamente, será novamente o mesmo Em alguns casos, para criar um jogo mais justo e que não altere muito a dificuldade dos jogadores, você pode usar uma semente para garantir consistência. Quando a ideia de conceder uma experiência única poderia ser vincular essa semente ao nome do personagem. 78. Rodapé do cabeçalho: A primeira coisa que precisamos ser capazes de usar para ter um código geral mais limpo é o cabeçalho e o mais livre Essas duas são basicamente duas passagens especiais que exibirão seu conteúdo toda vez que você entrar em uma nova passagem no Para fazer isso, basta criar duas novas passagens. Não precisamos renomeá-los. Basta aplicar um cabeçalho de tag. E depois o rodapé para o outro assim. Futer. Dentro deste sapato, podemos simplesmente colocar um código. Então, por exemplo, no cabeçalho, colocamos o dinheiro definido, como oito mais um. Dentro do rodapé, colocamos uma impressão para ver o novo valor como esse, colocamos algum espaço, apenas quebramos a linha Este sapato estará literalmente no topo e no fundo de cada passagem. Portanto, você precisa ter cuidado com o espaçamento. Agora é só pré-visualizar o teste. Tudo bem. Então, vemos o número um. Tudo bem, você vê o que está acontecendo. Toda vez que eu vou e volto, o código monetário definido é executado novamente e, consequentemente, vemos um número cada vez maior. Assim, você pode reimaginar todas as maneiras pelas quais isso pode ser usado. Fundamentalmente, permite que você automatize o código redundante, coloque-o de uma forma mais limpa, e essa pode ser uma forma e essa pode ser 79. Condições iniciais: Existe uma maneira de definir as condições iniciais do seu jogo. Não importa de qual passagem você comece, crie uma nova passagem e marque-a como uma startup como essa. Mesmo quando você aplica várias passagens, esses códigos são executados logo no início do jogo, quando você Portanto, isso pode ser extremamente útil para sessões de depuração. Portanto, você pode simplesmente definir condições personalizadas diretamente de uma passagem como essa e testar diretamente de uma passagem na depuração inicial Defina energia 0100. E agora, se fizermos uma prévia da sala um, você pode ver que temos o Energy Set 100 e dizer: o que aconteceria se fizéssemos uma prévia da Introdução Vamos experimentá-lo. Novamente, isso ocorre porque a startup está sendo executada logo no início. 80. Ignorar o código e comentários: Em vez de excluir isso ou simplesmente colocá-lo em uma passagem separada que você não usa, uma maneira é simplesmente ignorá-lo usando a macro Ignorar Então você vai aqui, Ignore, e dentro desses colchetes, colocamos o código que precisamos ignorar Dessa forma, quando você percorrer essa passagem, ela a ignorará completamente. Então, como você pode ver, não há configuração aqui. E é isso. Em vez disso, às vezes, quando você constrói sistemas realmente complexos, você pode fazer anotações apenas para lembrar o que eles fazem, certo, porque você pode perder o controle. Então, para fazer isso, vá para onde quiser na passagem. Clique neste botão aqui. E então você pode simplesmente fazer anotações. Isso significa X, Y e Z. Assim, você pode digitar parágrafos inteiros do que essa seção específica do código 81. Espalhando: Fundamentalmente, no momento, temos apenas uma matriz definida como teste que contém as primeiras sete letras do alfabeto, desse jeito Se quisermos imprimir uma letra aleatória dessa matriz, como você pode imaginar, podemos usar qualquer uma delas. Mas então, como podemos dizer a qualquer um deles que considere cada valor individual disso? Bem, coloque três pontos no início da variável assim Esses três pontos são chamados espalhador e distribuem a matriz em valores individuais Consequentemente, agora funcionará. Deixe-me te mostrar. Nós, você sabe, vemos o comportamento que queremos. Então, estamos imprimindo qualquer uma dessas letras aleatoriamente. E agora vamos complicar um pouco mais. Em vez disso, vamos usar um índice personalizado. Vá aqui, defina uma segunda variável chamada índice, escolha um número aleatório por enquanto Assim mesmo. Um, dois, sete. Tudo bem. Então, em vez de um, nós o alteramos com uma nova macro chamada Nth, assim E no início, colocamos apenas o índice e, em seguida, a matriz espalhada assim O que vai acontecer agora é que fundamentalmente, temos exatamente o mesmo comportamento usar qualquer um deles Deixe-me te mostrar. Com a diferença que temos agora, a capacidade de usar um índice controlável personalizado Portanto, isso será extremamente útil quando você quiser controlar, na verdade, com mais precisão, o índice. Então, aqui, imagine que você define uma variável como fonte de índice. Dessa forma, você basicamente poderá divergir frases ou estatísticas inteiras diretamente em pontos específicos com muita facilidade com o sistema 82. Para loops: Ok, agora que você pode distribuir valores um após o outro a partir de uma matriz, vou mostrar como processar cada valor em uma matriz individualmente. Então, vamos supor que temos, novamente, uma variável aqui. Vamos chamá-lo de bolso a matriz, digamos que queremos dividir pela metade todos esses números individualmente e depois trazê-los de volta ao bolso Bem, para fazer isso, crie uma matriz temporária. Coloque o bolso dois, dois, uma matriz vazia por enquanto, sem mais nem menos. Usamos a nova macro chamada quatro. E a forma como funciona é que precisamos criar uma variável temporária que será usada como índice para cada índice. E aqui nós apenas espalhamos a matriz original. Então, basta um bolso assim. O que acabamos de escrever significa colocar cada valor em um bolso dentro do colchete para que possamos fazer onde quisermos Assim, podemos imprimir cada valor individualmente. Por exemplo, basta dizer: Este é o seu número da sorte e, em seguida, trazemos o índice assim. Welly imprima para cada valor único esta frase com cada valor da matriz, desse jeito Esse é o uso mais simples disso. Mas vamos supor que mudássemos o valor. Definimos humildemente uma nova matriz, bolso dois, que originalmente estava vazia, duas em si mais uma nova matriz contendo índice dividido por dois Então, o que vai acontecer é que agora, para cada valor no compartimento original, vamos dividir cada um deles por dois e trazê-los de volta para o compartimento dois. E, finalmente, podemos colocar o bolso um, o bolso dois. Então, traga de volta os valores para o bolso um. E, finalmente, podemos simplesmente imprimir a coisa toda. Vamos ver esses valores divididos por. Telhado. Como você pode ver agora, estamos vendo o novo bolso um depois de repetirmos cada valor único para ser dividido por dois 83. Como fazer sandbox: Às vezes, talvez você precise testar novas ideias de código antes de implementá-las no jogo real. Uma maneira de fazer isso localmente é dedicar-se de passagem a isso Assim, você pode chamar a caixa dez, testar todas as suas coisas e, finalmente, implementá-la nas passagens reais Mas às vezes isso não será possível porque entrará em conflito com o CSS ou o Javascript. Então você pode simplesmente dedicar todo o projeto ao sandbox, então você pode ir até aqui. E reivindique aqui apenas um projeto como este. Dessa forma, isso não interferirá no seu projeto principal. Mas uma coisa pode ser um pouco confusa para você, talvez seja o fato de que, depois de terminar o teste, talvez seja necessário encontrar uma maneira de copiar o código que finalmente funcionou no jogo. Então, em teoria, você precisará copiá-lo daqui, depois voltar para a lista, entrar novamente no jogo e, finalmente, colar o código aqui, que não é o melhor processo, certo? Então, uma maneira de evitar esse processo de ida e volta é simplesmente abrir uma instância de fio completamente separada Para fazer isso, pelo menos no Windows, basta abrir o menu Classificar e literalmente reabrir o Twine pela segunda vez, assim E depois de alguns segundos. Então agora eu tenho que abrir de forma independente. Ao fazer isso, tome cuidado para não abrir o mesmo projeto nas duas versões. No momento, eu tenho um, abra aqui, mas aqui eu posso abrir qualquer outro projeto, então eu posso abrir o projeto sandbox aqui Agora eu posso simplesmente copiar e colar o código We que tenho aqui, no projeto real, até o fim 84. Maximize as condições: Se você quiser tornar suas condições de IF mais complexas, uma coisa que você pode fazer é adicionar mais verificações antes de realmente entregar o resultado Então, agora temos o dinheiro sendo definido como um, e isso nos dará o resultado bingo se for maior que zero. Então, vamos adicionar uma nova condição, que será obrigatória. Acabamos de digitar e é menor que 1,5. Então, agora ele só nos dará bingo quando for maior que zero, mas também menor que 1,5. Agora vemos bingo porque é um. Assim que forem dois, não veremos mais porque é verdade que dois é maior que zero, mas não é verdade que seja menor que 1,5. É assim que funciona. Então, se você tiver várias condições, mas apenas uma delas será suficiente , mude com ou. Então, agora, se satisfizermos qualquer um desses dois, veremos isso imediatamente de qualquer maneira, Bingo, porque está satisfazendo pelo menos um deles E você pode especificar quantas quiser. Você pode até mesmo verificar todas as variáveis, não necessariamente todas da mesma forma, então suponha que o dinheiro seja uma string, e queremos acionar o bingo, somente se um caractere específico ou palavra específica estiver contido nessa string para digitalizá-la automaticamente. Podemos simplesmente usar contains. E aqui nós apenas digitamos o que acionará o resultado. Portanto, pode ser até mesmo um único caractere ou uma palavra inteira. Se essa string contiver apenas um H, ela acionará o resultado. Uau. Assim que eles o mudarem para um caractere que não existe na string, por exemplo, Z, não veremos mais o Bingo porque agora ele está escaneando a coisa toda em busca de partidas. Ele também funciona muito bem com matrizes. Então, vamos supor que o dinheiro fosse na verdade uma matriz. Assim que o conteúdo for transformado em algo que corresponda totalmente a um dos elementos dessa matriz, ele acionará, novamente, Bingo. Então, vamos tentar com o número um. Portanto, se o dinheiro contiver um nessa matriz, ele acionará o Bingo. Vamos tentar. Ok, e mais um, se ele contiver Pacman, novamente, veremos Bingo 85. Número para corda e vice-versa: Não, às vezes você pode precisar converter uma variável numérica em uma variável de string. Existem algumas macros que você só pode usar se uma variável for uma string como essa, substring, que pode ser extremamente útil para cortar uma string específica de um Ou também aparar. Para poder fazer isso, defina uma primeira variável, Moni como uma, para convertê-la em uma string, defina novamente, muitas Mas então nós o encapsulamos dentro do SDR. Então, o que acontece é que veremos Moni ser primeiro um número e, após os segundos, ela se tornará uma string. Isso mesmo. Tudo bem, um, dois, três Tudo bem, puf, sem mais nem menos. Agora virou uma corda. E você também pode fazer o contrário. Então, se primeiro fosse uma string, podemos transformá-la em um número para poder usar um pouco de matemática nisso, certo? Basta alterar STR com Num. Então, agora o que acontece é o oposto. Então, vamos aqui. Então agora é uma string e depois se torna um número. Puf. 86. Clonagem de referências: Agora deixe-me mostrar algo realmente interessante. Se criarmos uma nova variável chamada energia e a definirmos como 100 , se criarmos uma segunda variável chamada alvo, podemos clonar os valores de energia automaticamente apenas definindo a meta para a própria energia Se imprimirmos o alvo, ele mostrará o valor da energia. Exatamente desse jeito. Então, 100. Mas você precisa se lembrar de uma coisa. Ao fazer isso, ao clonar uma variável, haverá duas coisas separadas Como você pode ver agora, temos energia alvo, ambas com 100, que significa que se fizermos qualquer alteração subsequente na energia após a clonagem, por exemplo, 50, se imprimirmos o alvo, alvo ainda estará com o valor mais antigo Então, no momento, ainda vemos 100 porque o alvo não foi atualizado, enquanto a energia, como você pode ver, agora eles têm dois valores diferentes. O truque secreto para poder ainda informar Target sobre as mudanças que fazemos na energia, mesmo após a clonagem, é apenas encapsular o nome completo da fonte entre dois códigos, assim Então, o alvo agora se tornou a energia da corda com $1. E, consequentemente, quando fazemos mudanças subsequentes na energia, então ela se tornou 50 agora e imprimimos o alvo, deixe-me mostrar o que aconteceu. Uau. Agora vemos 50, que é o valor atualizado da energia. Deixe-me te mostrar aqui. O alvo, em teoria, nunca se tornou um número. Acabou de se tornar a referência, o link direto com a energia. Apenas com um truque, você pode fazer coisas incríveis. Por exemplo, você pode usá-lo para sistemas bancários onde você pode criar matrizes complexas que contêm vários valores e, em seguida, referenciar todos esses bancos com uma única variável que eles podem chamar de alvo ou alvo ativo Isso poupará milhares de linhas de código porque você pode simplesmente compactar coisas complexas com essa solução simples E, finalmente, você pode usar a impressão para fazer alterações diretas na energia. Nós apenas encapsulamos a energia definida em 50 dentro de uma impressão como essa, e então mudamos a energia para um alvo como E então encapsulamos qualquer coisa que não seja uma variável entre aspas, assim Então isso, isso se torna aspas, também o parêntese, certo Além disso, precisamos ter certeza de que também temos os espaços. Então, isso terá um espaço, certo. Exatamente desse jeito. E então, entre todos esses elementos, precisamos colocar mais, mais mais. Agora, o que vai acontecer é que vamos mudar diretamente o valor real da energia, usando apenas o nome do espaço reservado, que é alvo, porque isso idealmente, em um jogo real, será algo relativo Essa será uma solução para alterar os valores reais da fonte do valor importante. Deixe-me mostrar o que acabou de acontecer. A energia agora é 50, e fizemos isso diretamente da impressão usando o alvo. Então, o alvo agora representa energia diretamente. Portanto, não é apenas um clone, mas um link direto com a energia E você pode alterar os valores de origem de uma variável apenas com essa técnica. 87. Macros personalizadas: Vamos supor que isso seja algo que reutilizamos várias vezes, talvez muitas vezes no jogo Então, queremos que você o comprima em uma única palavra. Para fazer isso, precisamos usar algo chamado macros personalizadas. Conjunto, pinça, duas macros. Tenha cuidado porque agora vamos ver muitos , crie dois parênteses Lá dentro, digitamos dados como esses. Então, aqui dentro, colocamos apenas colchetes tubulares. Em seguida, você sai desse primeiro parêntese e digita mais dois colchetes Tudo bem. Adivinha o que? Agora, aqui dentro, você pode colocar onde quiser compactar nesta única palavra Lc Deixe-me mostrar em tela cheia, e o jeito é exatamente esse. Você digita dois parênteses, digita o nome da macro castm Assim mesmo. Então, fundamentalmente, isso aqui representa isso para o resto do jogo Então, para usá-lo, use isso em vez daquilo. Então imagine usar isso em pedaços muito grandes de código que provavelmente serão assim, certo? Muito maior. Então, defina o teste 1.000. Ligamos para nossa pinça após o teste, assim. Então, agora, se imprimirmos o teste, deve ser 100 porque o grampo agora está funcionando Então, vamos até aqui. Teste de impressão. Caramba, é isso mesmo. 88. Máquina de escrever: Então, deixe-me mostrar como fazer o fio com efeito de máquina de escrever Copie o documento chamado máquina de escrever e cole todo esse código aqui Como você pode ver, deixei alguns comentários, você entende perfeitamente como funciona. Você pode mudar o estilo de tudo a partir daqui. Então, agora não vai ser nenhum, mas você pode tirar com desfoque ou onde quiser Vamos para a tela cheia. Deixe-me mostrar o que está acontecendo aqui. O conteúdo desta máquina de escrever precisa ser alterado a partir daqui Seu texto personalizado fica entre esses dois códigos desse jeito. Deixe-me dar uma prévia disso. Então, está digitando isso. Você também pode notar que a velocidade de digitação não é apenas plana Há uma pequena variação na velocidade de cada personagem. Isso é algo que eu coloquei de propósito nesse algoritmo. Se você for até aqui, há um comentário por velocidade granular por caractere Aqui. Esses números são literalmente a velocidade de cada caractere. No momento, vai de um milissegundo para 60. Bem, você pode mudar isso. Você tem um efeito mais lento. Por exemplo, de 100 a 200 milissegundos, talvez 50, obviamente, a digitação será mais lenta No geral, uma característica final de tudo isso é que, se formos até o final, você verá outro comentário, insira o evento de digitação de postagem aqui Isso vai ser muito poderoso, porque se você inserir onde quiser nesse espaço, poderá fazer algo acontecer somente quando essa digitação for concluída Então, exatamente depois de terminar, digamos que mostramos um gancho. Fora de tudo isso, colocamos um gancho. Então, aqui, gancho um, e então dizemos terminado. Então, agora, se visualizarmos isso, veremos como concluído somente quando estiver pronto. Viu o que tinha acabado de acontecer? Então essa é a beleza de tudo isso. E, obviamente, como você pode ver, isso é um código muito grande, então você pode simplesmente compactá-lo em uma macro personalizada. Agora que você sabe como fazer isso, você pode realmente copiar tudo isso e compactá-lo em uma única palavra E se você está se perguntando como alterar o conteúdo dinamicamente, você pode realmente fazer isso apenas usando um mapa de dados ou TH. Onde queremos? Basta alterá-lo aqui. Então, defina o texto da máquina de escrever uma segunda variável para que possamos usar como índice, certo? Então, pode ser, digamos, texto, índice, por exemplo, de, e aqui, basta criar seu mapa de dados com pares de valores. Essa é uma solução para tornar isso dinâmico. Ou você pode usar o NTH como eu disse, NTH, essa é a solução Então, literalmente, não há limite. 89. Exibição (macros personalizadas 2): Uma alternativa válida ao uso de macros personalizadas, C apenas dedica uma passagem à máquina de escrever Nós o chamamos de teste semelhante. Recorte e cole na máquina de escrever e, em primeiro lugar, você poderá liberar sua passagem principal do antigo trecho de Você ainda pode usar a máquina de escrever nesta passagem, usando uma macro fantástica chamada display type display Em seguida, nomeie exatamente a passagem que você deseja hospedar nessa passagem, e ela acionará automaticamente seu código. Apenas com esse truque, será realmente o mesmo que se o código estivesse aqui em primeiro lugar. Deixe-me mostrar. Assim mesmo. Você pode se tornar ainda mais poderoso simplesmente fazendo com que isso se torne uma variável, para que você possa usar a mesma tela, talvez dentro de um bom gancho como este. Assim, você pode executá-la novamente com essa variável atualizada com um novo nome e Lully reutilizá-la quantas vezes quiser, para exibir Ao combinar macros personalizadas com exibição, você pode ter um código geral mais limpo, obviamente 90. Faça um cronômetro!: O que acontece às vezes é que você precisa ser capaz de medir tempo absoluto em seu jogo ou realmente exibir algum tipo de cronômetro em tempo real Para fazer isso, precisamos ter algum tipo de relógio que apenas acumule números ao longo do tempo Em primeiro lugar, vamos chamar isso de tempo bruto. Basta ir aqui. Hora crua, mastigue oito mais um. E então colocamos isso dentro do ruído ao vivo. Em teoria, isso acabará sendo 1 segundo. Então esse vai ser o relógio. Mas, por enquanto, vamos fazer isso muito rápido para que possamos experimentar isso muito rápido. Então, vamos encapsular tudo isso dentro de um live. Então, a primeira coisa que vai acontecer é que o tempo, o tempo bruto, vai aumentar. Então, vamos também criar variáveis, uma para os segundos e outra para os minutos. Defina segundos, dois, tempo bruto. E a seguir estão as novas operações chamadas modulo exatamente assim. Módulo 60 Então, quando você usa o módulo fundamentalmente, você restringe esse número a esse intervalo, o que significa que mesmo que esse número aumente acima de 60, ele reiniciará automaticamente de 0 a Esse é o truque. Você redimensiona automaticamente um número acumulado em um intervalo específico que Esse é exatamente o comportamento que queremos para o segundo. Então, vai de 0 a 59. Depois, basta criar os minutos. Os minutos, fundamentalmente, terão o mesmo comportamento Chamamos a nova variável de minutos. Tho. Desta vez, usamos o tempo bruto dividido por 60 a a cada 60 segundos, vamos criar um minuto. Mas, para evitar problemas, obviamente, precisamos arredondar esse número. Nós encapsulamos essa divisão dentro de um belo piso. Basta olhar para isso, certo. E então só precisamos imprimir minutos mais segundos. Acabamos de converter essas duas cordas e agora poderemos ter algum espaço para entender completamente o que está acontecendo Tudo bem. Então, vemos os segundos ocorrendo exatamente como deveriam, e estamos contando os minutos. Então, se você quiser ir um pouco mais do que isso, você pode fazer o seguinte. Deixe-me te mostrar uma coisa. Se você ver agora, quando temos menos de dez anos, temos apenas um personagem, e isso cria uma pequena mudança para frente e para trás na coisa toda, o que pode ser irritante, certo? Para usar uma maneira de corrigir isso usando uma técnica chamada espaçamento mono Altere, em primeiro lugar, dentro da impressão o nome dessas duas variáveis adicionando dois. Então, minutos dois e segundos. Em seguida, criamos algum espaço aqui e inserimos um conjunto de verificação adicional de acordo com a condição. Se os segundos forem menores que dez, então ele tem apenas um caractere, nós o convertemos em uma string. Então SDR e aqui dentro das aspas, nós apenas digitamos zero e a própria variável. Então, segundos, sem mais nem menos. Já em todos os outros casos, segundos , copiamos tudo e podemos aplicar a mesma coisa aos minutos, certo? Agora, em teoria, deveríamos ter o cronômetro perfeitamente espaçado em mono. Vamos tentar. Puf. Você vê? Sem salto. 91. Salve o progresso do carregamento: se você quiser salvar e carregar estados anteriores do seu jogo, use essa nova macro chamada salvar jogo. Então, acabamos de criar um novo botão. No interior, usamos o save game. E aqui você só precisa especificar uma ou duas coisas. Em primeiro lugar, o nome do slot pode ser o nome do jogador ou apenas uma letra como essa ou um número onde você quiser. Então, basta chamá-lo de jogador um. Então você pode simplesmente usá-lo assim. Ou você pode especificar a segunda sequência com uma indicação contextual de onde você salvou no jogo Então, por exemplo, estamos no primeiro e, em seguida, criamos um segundo botão para carregar nesse local mais tarde no jogo. Então, apenas alteramos a macro para carregar, também o botão, e removemos isso. Então, só queremos carregar esse slot. Na outra passagem, coloquei uma macro final aqui, jogos salvos, que imprimirá automaticamente todos os slots usados atualmente com seus próprios nomes. Assim, você pode consultar quais lotes são gratuitos, quais lotes estão sendo usados. Você pode salvar quantos lotes quiser. O único limite é a memória do navegador. Vá aqui, teste. Ok, então agora temos esse número um. Temos todos esses lotes sendo usados. Número dois, vamos fazer esse aumento. Então, por exemplo, agora economizamos. Economizamos enquanto o dinheiro está em três e também fizemos cinco voltas, o que significa que já fomos e voltamos cinco vezes. Então, salve. Então continuamos com nosso jogo. Como você pode ver, nosso slot já está sendo usado. O primeiro jogador já está sendo salvo com o Forest One. Tudo bem, então continuamos, continuamos até que queiramos que você restaure um estado anterior do jogo Tudo o que precisamos fazer é pressionar carregar e instantaneamente voltamos para três, e os termos voltaram para cinco. Portanto, o slot também lembrará o número exato de vezes que visitamos cada passagem. Então, é muito preciso. Tenha cuidado, pois se você limpar os cookies do seu navegador, perderá também todos os slots de salvamento que ocupou. Isso não é verdade caso você lance o jogo completamente offline. Então, nesse caso, você está seguro, mas tenha cuidado caso jogue totalmente online. E, finalmente, algo que eu recomendo fortemente é realmente integrar uma verificação dupla que confirme que o jogador realmente salvou com sucesso, pois há casos específicos em que algo pode dar errado e o navegador pode ter problemas para salvar o jogo Então, nesse caso, queremos que o jogador saiba sobre esse incidente. Então, para fazer isso, basta integrar o save em um if como esse, colocar Lully, tudo isso em uma condição if Como resultado, caso ele salve o jogo corretamente, apenas exibimos alguma mensagem de confirmação salva. Caso contrário, retornaremos a mensagem de erro. Então Lully apenas digite, Oh, não. Eu recomendo fortemente que você sempre integre os salvamentos em algum tipo de caso como esse. Então, agora, se testarmos e economizarmos. Nossa, nesse caso, você acabou de trazer de volta uma boa verdade, que significa que foi salva corretamente Então, agora, se voltarmos aqui, ainda teremos um jogo salvo corretamente, e pronto. 92. Punchos musicais: Tudo bem, então vamos falar sobre ferrões de áudio. Fundamentalmente, quando você toca uma primeira faixa em barbante como essa, vamos chamá-la de faixa A. E então você quer fazer a transição para uma próxima faixa completa, porque talvez algo tenha mudado no jogo e você queira enfatizar o fato de ter entrado em um estado diferente no Queremos acionar imediatamente uma faixa diferente. Vamos chamá-la de faixa B assim. Normalmente, como você pode ver, há uma mudança instantânea porque você não tem como fazer a transição sem problemas. Sim, você pode usar algum tipo de cross fades para torná-lo um pouco mais suave, mas nunca será exatamente tão suave quanto você deseja, a menos que você use algo chamado Stingers são exatamente uma peça de áudio que você toca simultaneamente no final da faixa A , dessa forma, para ter uma transição mais suave para a Faixa B. Então é exatamente aí que você simplesmente incorpora Assim que você souber que vamos entrar na faixa B, começamos a acionar o stinger que tocará ao mesmo tempo Agora, existem dois tipos principais de ferrões. Existem os não musicais e os musicais. Os stingers não musicais são muito fáceis de integrar. Você só precisa integrar algum tipo de som “oh na hora de acionar o botão para ir para a faixa B, e pode ser o que você quiser. Pode ser como um som de shooh ou um clique ou algum tipo de ruído que enfatize o fato de que vamos entrar em um próximo estado do jogo Isso é muito fácil de fazer. Em vez disso, é muito diferente se quisermos fazer com que o stinger realmente combine musicalmente com a Se você aprender a fazer isso, poderá fazer o que quiser para tornar sua experiência extremamente mais interessante. Portanto, o primeiro passo para tornar isso possível é preparar os loops Então você precisa preparar o laço principal e o ferrão. Esses dois precisam começar exatamente no início da barra da barra de música. 90% da música toca em quatro batidas por compasso. Então é assim. Um, dois, três, quatro, um, dois, três, quatro, o tempo todo, assim. Fundamentalmente, queremos que os loops comecem exatamente em um Portanto, precisamos que o áudio comece imediatamente, assim . Isso é muito importante. A segunda coisa é que o loop principal não precisa ser extremamente longo. Então, idealmente, 30 a 40 segundos é o ponto ideal. Tente torná-lo o mais curto possível para que você possa reativá-lo. Portanto, você não precisa durar 30 minutos. Caso contrário, o sistema começará a se espalhar por todo o lado. Vamos aqui, primeiro de tudo, o loop principal no qual vamos integrar o stinger Tudo bem, e então reinicie. Então, agora, deixe-me ouvir esse ferrão. Solo, vamos embora. Tudo bem, mais uma vez. Vamos. Então você tem uma ideia do que vamos fazer. Vamos integrar um sistema que acionará essa peça de áudio, não apenas quando quisermos, mas também exatamente no momento certo com uma das barras dessa faixa principal. Portanto, não começará aleatoriamente. Isso não interromperá a faixa principal de repente. Ele só fará a transição a tempo com a barra. próximo passo é calcular exatamente a duração de uma batida da música do loop. Se você já conhece alguns softwares como QBs ou o Ableton Live FL Studio, você já sabe como fazer isso Mas caso não o faça, basta usar essa ferramenta aqui chamada tune bat.com Lyser Dragon e soltar o loop no espaço Espere alguns segundos e ele lhe dirá instantaneamente o BPM desse loop Então eu sei que, pessoalmente, quando eu criei esse loop estava em 180 BPM, então eu vou usar isso Mas desde que forneça um número par como esse, que é exatamente a metade. Nesse caso, 90. É perfeito. Portanto, você pode simplesmente usar isso ou dobrar, caso queira uma medida mais rápida. Mas, fundamentalmente, essa é a maneira mais fácil de fazer isso. Com esse conhecimento, precisamos calcular a duração absoluta de uma única batida. Nesse caso, eu sei que fiz o loop em 100 BPM, que significa que 60 segundos são em 1 minuto Podemos simplesmente dividir 60 pelo BPM que você vê, 180, e obtemos duração absoluta e os segundos de uma única batida Esse número é extremamente importante para que esse sistema funcione. Copie os primeiros dez dígitos para um, três, nove, dez. Haverá o suficiente. Ok, primeiro de tudo, basta criar um botão de ruído chamado play. E aqui tocamos a faixa principal. Então, basta rastrear. Sabemos disso neste momento. Loop principal, toque quando possível. Então, imediatamente depois de começarmos a fazer o relógio musical, comece com a faixa principal juntos. Então, imediatamente depois de começarmos um bom show. E aqui, vamos usar o número que calculamos. Se você se lembra, foi 0,10 três, então segundos. Realmente importante. Essa é a duração de uma única batida. Então, ele vai fazer um, dois, três, quatro, um, dois, três, quatro. Podemos usar um operador de módulo. O conjunto supera 28 mais um. Faça mais dois parênteses como esse. Aqui, do lado de fora, colocamos um bom ModuFour. Então, vamos ter quatro números. Isso é exatamente o que queremos. E, finalmente, vamos compensar isso. Criamos uma segunda variável, set beat duas batidas mais uma Apenas para exibir exatamente um, dois, três, quatro, mas do ponto de vista da eficiência, você pode simplesmente evitar essa etapa, mas para deixá-la mais clara por enquanto, vamos apenas compensá-la Tudo bem, agora só para verificar o que temos, imprimir, bater dois, ver o que tem até agora. Pronto? Vá. Você vê o que está acontecendo? Esse número aqui está exatamente na hora certa, música. Por que você não? Por que você não? Por que você não faz isso em quatro? Exatamente na hora certa. Continue. Continue. Então, como você pode imaginar, podemos usar o fato de que agora o Twine está perfeitamente ciente da hora da música para acionar, para sincronizar perfeitamente outra peça de áudio para sair dessa Essa é a beleza dos cantores musicais, e agora estamos prontos para a segunda etapa A melhor maneira de integrar o stinger agora é criar, antes de tudo, um bom botão Então, aqui, fazemos com que a faixa principal desapareça assim em cerca de , digamos, 0,5 segundos, até zero, assim Essa é a questão. Imediatamente depois de recebermos um gatilho , o ferrão chamou stinger, uma jogada como essa Neste momento, vai interromper a música aleatoriamente. Então não é isso que queremos. Para fazer o stinger entrar exatamente no início de qualquer barra do loop principal, basta acioná-lo exatamente quando o beat two estiver em um. Esse é o caminho. Então, para criar um sistema que espera automaticamente que esse número chegue, use um evento. Então , vamos até aqui. Quando Bs é um, seja, exatamente o início de uma nova barra, acionamos esse evento dessa forma. Quando pressionamos, apenas diremos ao evento que comece a ficar atento e espere automaticamente que o evento chegue, e só então ele fará esse evento ocorra automaticamente. Deixe-me mostrar o que temos até agora. Tudo bem, prato. Agora vou apertar o botão Encerrar. Tenha cuidado. Tudo bem, certo, certo. Estamos começando a chegar lá. Mas, antes de tudo, para torná-lo mais satisfatório, podemos colocar um som adicional em camadas no exato momento em que pressionamos Então, exatamente quando clicamos, queremos que alguns cliques coloquem camadas e ocultem ainda mais a transição Então, usamos apenas Click e também door. Experimente agora. Pronto? Vá. Você notou isso? Quando eu clico, ele também aciona um som adicional para ocultar a transição. Vamos fazer isso de novo. Não, oh, tudo bem. Tudo bem. Você provavelmente percebe que ainda há um problema. Se eu pressionar acidentalmente e quando já estiver em um, isso meio que interromperá a música. Portanto, queremos que você adicione uma verificação adicional para garantir que ela só seja acionada quando uma nem mesmo for inserida. Então, para fazer isso, insira fundamentalmente o primeiro evento dentro de outro evento que vai esperar pelo número quatro desta vez Assim, acabamos de adicionar um novo colchete, então dois dançam um dentro do outro Dessa forma, certifique-se de que ele acionará um quando estiver novo e não quando já estiver iniciado. Agora, fundamentalmente, mesmo que eu clique e exiba uma, ela aguardará todo o resto da barra para acionar o ferrão Então, vamos adicionar um comentário aqui. Isso evita o acionamento no meio. Isso é o que ele faz. Agora é só testar com todas essas correções. Agora vou pressioná-lo de propósito para mostrar que ele ainda não interromperá a música, mas esperará o resto da barra antes de entrar no stinger. Deixe-me te mostrar. Viu o que aconteceu? Tudo bem. Você sabe E você pode tornar isso ainda melhor simplesmente colocando um som adicional quando o ferrão real é acionado Tudo bem. Sim, este é meu presente para você. Norbalytwine, não seria possível fazer isso Mas agora você sabe como fazer isso. 93. Mudanças de monitor (digitando o sistema de som): Tudo bem, então deixe-me mostrar outra coisa que é interessante Suponha que temos essa caixa de entrada aqui. E queremos que você tenha uma maneira de atribuir sons do teclado sempre que clicarmos em qualquer tecla do teclado. Certo. Então, agora está completamente silencioso, o que é chato. Então, vamos torná-lo mais ao vivo usando o som. O primeiro passo é preparar vários sons muito curtos. São 16 variações do mesmo tipo de som. Deixe-me jogá-los apenas uma vez em sequência. Vamos. Tudo bem, mais uma vez. R. Então, esses são os 16 sons que vamos integrar em nosso jogo. Então, em teoria, uma maneira de fazer isso é obviamente instalar o áudio Hall e a ratoeira da biblioteca de áudio Então, isso já está no Javascript. E crie um vínculo para cada pressionamento de tecla possível e, em seguida, vincule-o a um som em um evento, em um gancho Mas isso, como você pode ouvir, pode ser muito demorado. E também não resolve o problema de que se usarmos a caixa de entrada Harwey, ela meio que ignorará temporariamente a entrada lida pela ratoeira entrada lida pela Portanto, mesmo fazendo isso, ele ainda não será capaz de acionar os ganchos conectados à ratoeira Portanto, precisamos usar uma abordagem diferente. A maneira de resolver esse problema é o fato que, quando digitamos alguma coisa aqui, você percebe aqui o que está acontecendo? A frase variável muda assim que digitamos alguma coisa. Então, está mudando. Podemos usar isso a nosso favor. Crie um sistema que acione sons sempre que essa variável mudar O primeiro passo é passar por algum tipo de relógio que monitorará a variável da frase a qualquer momento. Visto aqui, passe, como você pode ver, a cada 0,15 segundos. Vamos transformar a frase dois em uma frase. Então, estamos literalmente clonando a frase em uma cópia dela mesma. Isso funciona como um monitor. Esse número aqui muda de acordo com o uso que você fará desse sistema. Para digitar sons muito rápidos e sons curtos, 0,15 é o ponto ideal que eu pessoalmente encontrei Mas, obviamente, ajuste isso ao seu gosto quando estiver usando isso para etapas, sons, por exemplo, ou situações semelhantes A consequência é que agora com isso em vigor, sempre que digitamos algo novo. Teremos um clone da frase aqui que segue adiante, mas apenas com um pequeno atraso A frase é um pouco mais lenta. Graças a isso, podemos literalmente saber agora quando frase mudou em comparação com uma versão ligeiramente anterior de si mesma. Para a segunda etapa, copie exatamente o conteúdo desse gancho aqui. Digite o som. Então, basta congelar esse quadro, copiar exatamente o que você vê aqui. A forma como funciona é que você verá apenas um evento, em primeiro lugar, que é monitorar sempre que frase se torna diferente da frase. Isso é realmente o que isso significa. Isso não significa que, sempre que uma frase, você se torna diferente. Então não é mais o mesmo, acione o conteúdo desse evento, ou seja, como você pode reconhecer apenas o truque de um único tiro, você reproduz um som aleatório da playlist codificada da máquina de escrever aqui, que acabei de definir já nos Aqui, deixe-me mostrar que você tem aqui a definição da playlist quando iniciamos a máquina de escrever Eu só contém já os 16 sons que eu já defini mesmo aqui em toda a passagem da faixa. Já sabemos que aguente isso neste momento. E também, ajustei o volume da máquina de escrever aqui, 0,6. Então eu disse, vamos voltar para a passagem principal. Então, finalmente, o truque final é executar novamente esse gancho, que ele recarregue o evento e volte imediatamente para que ele recarregue o evento e volte imediatamente a ficar online para estar ciente de qualquer outra tecla que pressionarmos Você sabe, uma dica final, que você coloca essa reprise dentro de um pequeno atraso Porque, fundamentalmente, esse truque final permite filtrar alguns gatilhos extras que podem ser irritantes E dessa forma, a reprodução ficará muito limpa e precisa Agora, deixe-me mostrar o resultado final. Então, jogamos All right. Então você pode ver, é extremamente preciso agora. Essa é a beleza disso. Uau. 94. Considerações finais de exportação: Tudo bem, então vamos supor que seu jogo esteja finalmente pronto para ser lançado Quando esse momento chegar, você precisará decidir de que forma lançará o jogo. Há dois caminhos principais. Você pode lançar o jogo totalmente online desta forma online ou totalmente offline. A principal diferença entre os dois é que, se você ficar totalmente online, seu jogo será totalmente representado por um link que as pessoas simplesmente acessarão e executarão o jogo no próprio navegador. Já se você ficar totalmente offline, será mais parecido com um jogo Steam que as pessoas baixam totalmente em suas próprias máquinas. Em seguida, execute localmente na própria máquina. Então, parece um arquivo que eles executam localmente usando o desempenho real de sua máquina. Geralmente, eu recomendo ficar off-line porque oferece a experiência mais reativa Portanto, você não tem absolutamente nenhum problema com a reprodução de mídias, imagens, vídeos e áudios ao mesmo tempo Você pode ficar muito louco com elementos de ação, sem problema algum. Por outro lado, se você estiver online para esse tipo de jogo, isso vai demorar um pouco mais porque você não sabe se as pessoas terão problemas com a Internet. Se o seu jogo tem muitas mídias e você é forçado a ficar totalmente online, então, nesse caso, otimize seu jogo o máximo possível Portanto, torne os arquivos o mais pequenos possível para que possam ser baixados com menos dados em todos os dispositivos nos quais você os reproduz. A razão pela qual eu prefiro geralmente estar offline é que, na verdade, isso torna o fato de as pessoas baixarem o arquivo executável local um pouco mais pessoal. Essa será uma consideração que você precisa levar em consideração. Por outro lado, se eles tiverem apenas um link, eles ainda permanecerão no navegador. Eles podem se distrair. Então, se você quiser que o jogo seja o mais reativo e envolvente possível, fique offline 95. Preparando o jogo: Exporte o jogo de forma prática. Antes de fazermos isso, vamos explorar essas três passagens. Acabei de preparar a mini demonstração que contém texto e áudio ao mesmo tempo. Tudo bem. Então, você vê que esse conjunto está mais próximo de um projeto real. Portanto, independentemente de você lançá-lo como um arquivo off-line ou totalmente on-line, você precisa alterar todas as suas referências de mídia com caminhos relativos. Certo. Então, se você explorou o capítulo sobre áudio, você já sabe sobre isso, certo? Mas caso você pule isso, deixe-me mostrar o que quero dizer Caso você use vídeos, arquivos de áudio com um caminho absoluto como esse, você precisa mudar absolutamente todos esses caras com PADs relativos Por exemplo, para este arquivo aqui, clique nele para mudar desse formato para um formato bem mais simples que começa com um ponto e uma barra invertida, e então fica assim Barra de áudio e, em seguida, o nome do arquivo real. Essa é a aparência de um caminho relativo, e você precisa seguir a etapa para todas as mídias que está usando, sejam vídeos, áudios, imagens, todas elas precisam estar em uma pasta simples chamada imagens de áudio e vídeo Então essa é a primeira coisa. Use caminhos relativos antes de exportar. E então você simplesmente sai daqui para a lista de todas as histórias, exporta, publica seu jogo aqui, constrói e depois publica no arquivo. E aqui, ele apenas converterá esse jogo em um arquivo HTML. Isso é basicamente o jogo inteiro compactado em um único arquivo Em seguida, basta entrar em uma pasta específica que você escolher e colocar o STML nessa pasta Em seguida, crie três pastas de acordo com qualquer mídia que você usa. E você coloca todos os arquivos que você usa nessas pastas. Tenha cuidado ao usar P threes e OGGs para áudio, JPEGs para imagens e MP quatros para vídeos Isso é tudo que você precisa usar. 96. Como exportar versões online: Para. Caso queira que o jogo esteja totalmente disponível online, você precisa renomear o HTML para indexar dessa forma Quando você termina com isso, então você tem todas as mídias aqui, o formato, você muda os caminhos, seus parentes Você precisa apenas compactar o índice e todas as mídias das pastas em um arquivo zip Então, basta clicar com o botão direito do mouse e usar qualquer programa que crie zips. Certifique-se de que seja um arquivo zip. Faça isso e depois comprima. Esse é o arquivo que vamos enviar para um site específico chamado HIO. Então, deixe-me te mostrar. Site totalmente gratuito, crie uma conta, aqui HIO, acesse seu painel e crie um novo produto. Criar. Damos um nome, por exemplo, Adventure one. As coisas mais importantes são as seguintes. Você vai aqui, tipo de projeto. Você escolhe o que será nesse caso, será um arquivo HTML. Então, fazemos isso e você seleciona se quer ser pago ou se vai ser um jogo grátis, o que você quiser. Por enquanto, basta ir até aqui, fazer upload de arquivos. Clique duas vezes no arquivo zip como este. Então você escolhe todas as outras coisas. Ele poderá ser reproduzido a partir do navegador. Então vamos até aqui. Queremos que o jogo esteja totalmente em tela cheia. Podemos verificar a compatibilidade com dispositivos móveis, mesmo que ela provavelmente quebre, pelo menos ela a tornará ligeiramente visível a partir do celular. Você vai até o fim. Você pode preencher todos os detalhes, pular todas essas partes por enquanto E, finalmente, apenas as seções de privacidade. Se você quiser que este jogo seja apenas não listado ou totalmente público, tudo o que você quiser Então, se você quiser apenas testá-lo, clique aqui, salve. OK. E então estamos prontos para testá-lo. Então vamos aqui, corremos. É isso mesmo. Como você provavelmente notou, nos primeiros segundos em que iniciamos o jogo, ele ainda estava usando o telefone padrão e o áudio não começou imediatamente. Isso porque o pré-carregamento estava ocorrendo. É por isso que, se você lançar o jogo online, incorpore algum tipo de tela de carregamento. Assim, você pode forçar o jogador a esperar alguns segundos com uma barra de carregamento. Dessa forma, em segundo plano, o jogo carregará todas as mídias e também todos os telefones Essa seria a maneira de evitar esse minibug no início. Tente otimizar ao máximo os tamanhos de todas as mídias Onde você terá um pré-carregamento muito rápido e será compatível com 99% de todos os dispositivos. 97. Importar fontes: Se você quer saber se existe uma maneira de usar automaticamente a fonte desejada na versão totalmente online, a resposta é sim. Para fazer isso, adicione essa linha aqui em nosso CSS. Copie e cole esse código aqui. É isso mesmo. Fundamentalmente, o que isso faz é apenas chamar a API dos telefones do Google e permitir que você use qualquer telefone desse site, altere esta seção exatamente com o nome da fonte Então você entra no telefone do Google. Você pesquisa qualquer telefone que eu queira usar. Então, neste caso, eu escolhi esse pixel de $0,05, copio o nome daqui e você cola nesta seção aqui e sirvo o mesmo nome exato segunda vez aqui em uma família de fontes como Quando você inicia o jogo online, ele também baixa e exibe a fonte personalizada real. É por isso que, logo no primeiro segundo, ele ainda estava usando o padrão, depois baixou e atualizou imediatamente todo o texto da história com o telefone apropriado Você também pode usar vários telefones . Essa é a sua escolha. 98. Como exportar versões offline: Se você quiser que seu jogo fique disponível offline, bem, a maneira mais fácil seria deixar seu arquivo de índice assim, onde você pode simplesmente renomeá-lo naquele momento, entregá-lo como um arquivo zip que contém as pastas brutas Mas, na verdade, a desvantagem disso é que as pessoas podem ver todo o conteúdo diretamente dessas pastas de origem Mas, em teoria, você poderia simplesmente entregar isso quando as pessoas simplesmente iniciassem esse arquivo e ele executado no navegador desta forma. Então, como você pode ver, está lá funcionando corretamente. Então essa será a primeira opção super rápida. Então, se você quiser criar essas pastas em um formato diferente que as pessoas não consigam acessar com tanta facilidade, basta usar o chamado wrapper Este é um aplicativo para Windows, mas também existem outros para Mac que fazem a mesma coisa. É chamado de wrapper HTML. Isso é chamado de WebTeecutable. Não o carregue e, em seguida, entre em uma boa caixa de areia aqui e instale-o Assim, pule todas as etapas. Você vai começar a partir daqui. Então, do jeito que funciona, clique aqui, Bros. Selecione a pasta que contém o jogo inteiro Não comprimido. Selecione a pasta. Tudo bem, então vamos para tela cheia. Deixe a maioria dessas coisas por padrão, mas isso permitirá que você personalize detalhadamente a aparência dos cinco executáveis finais Assim, você pode atribuir suas imagens personalizadas ao ícone, como você pode ver aqui. Mas se você quiser ficar simples, clique aqui configurações de janela, coisas clássicas. Por exemplo, você quer que o jogo seja janela redimensionável ou entre em tela cheia automaticamente Talvez, sim, queiramos que o jogo seja valorizável. Vamos aqui e, para exportar as configurações, você escolhe quantos sistemas operacionais essa única compilação será compatível. Então, talvez você queira um único arquivo para qualquer sistema. Então, basta marcar todas essas caixas. Obviamente, quanto mais verificações você ativar, maior será o arquivo. Então, talvez você queira fazer um especialista separado por sistema operacional. Então, neste caso, você só quer o Windows 64 e pronto. Então, aqui você pode verificar todas as mídias, pois você pode ver que elas estão sendo detectadas corretamente Em seguida, você pode escolher a pasta Yput. Então, digamos que eu vou entrar na área de trabalho. Final, sem mais nem menos. Selecione a pasta. Tudo bem. Você pode tentar reduzir o tamanho aumentando o controle deslizante, mas, por enquanto, vamos mantê-lo em zero, que tenhamos uma exportação muito rápida E, finalmente, você pode simplesmente confirmar tudo isso. Então você vai até aqui e exporta. A primeira vez que você fizer isso, demorará um pouco mais pois ele meio que baixará alguns recursos adicionais para poder fazer isso em primeiro lugar. Mas então, a partir da segunda exportação, será instantâneo. Como você pode ver, eu já baixei, então já está pronto. Então, basta verificar o que temos. Tudo bem, vamos aqui. Por fim, temos, novamente, a mesma pasta que contém a compilação para o Windows 64. Puf. Tudo bem. E o arquivo em si é esse cara aqui, jogo que você também pode renomear para Adventure one E, novamente, você pode personalizar o comportamento desse arquivo quando as pessoas clicam duas vezes e personalizam o ícone, etc Então, vamos começar isso. Puf. Tudo bem. Então, como você pode ver, podemos mover nosso jogo em tela cheia. Está tudo aí reativo, super reativo, pronto? Assim mesmo. Sim. Tudo bem. E caso as pessoas façam isso, como você pode ver as poses de áudio, elas entram automaticamente na pose, como sabemos, também podemos mudar esse comportamento. E é isso. Existem também embalagens diferentes que fazem esse processo de uma maneira um pouco diferente Mas essa é uma solução de fácil acesso. Aqui, não há como acessar as mídias reais. Portanto, seus arquivos reais estão na verdade, um pouco mais protegidos.